Lines Matching refs:ehci
27 static inline void ehci_brcm_wait_for_sof(struct ehci_hcd *ehci, u32 delay) in ehci_brcm_wait_for_sof() argument
29 u32 frame_idx = ehci_readl(ehci, &ehci->regs->frame_index); in ehci_brcm_wait_for_sof()
34 res = readl_relaxed_poll_timeout(&ehci->regs->frame_index, val, in ehci_brcm_wait_for_sof()
37 ehci_err(ehci, "Error waiting for SOF\n"); in ehci_brcm_wait_for_sof()
60 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_brcm_hub_control() local
61 int ports = HCS_N_PORTS(ehci->hcs_params); in ehci_brcm_hub_control()
70 status_reg = &ehci->regs->port_status[temp]; in ehci_brcm_hub_control()
78 ehci->reset_done[wIndex-1] && in ehci_brcm_hub_control()
79 time_after_eq(jiffies, ehci->reset_done[wIndex-1]) && in ehci_brcm_hub_control()
80 (ehci_readl(ehci, status_reg) & PORT_RESUME)) { in ehci_brcm_hub_control()
86 ehci_dbg(ehci, "SOF alignment workaround\n"); in ehci_brcm_hub_control()
89 ehci_brcm_wait_for_sof(ehci, 5); in ehci_brcm_hub_control()
99 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_brcm_reset() local
102 ehci->big_endian_mmio = 1; in ehci_brcm_reset()
104 ehci->caps = (void __iomem *)hcd->regs; in ehci_brcm_reset()
105 len = HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase)); in ehci_brcm_reset()
106 ehci->regs = (void __iomem *)(hcd->regs + len); in ehci_brcm_reset()
109 ehci_writel(ehci, CMD_RESET, &ehci->regs->command); in ehci_brcm_reset()
116 ehci_writel(ehci, 0x00800040, &ehci->regs->brcm_insnreg[1]); in ehci_brcm_reset()
117 ehci_writel(ehci, 0x00000001, &ehci->regs->brcm_insnreg[3]); in ehci_brcm_reset()
219 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_brcm_resume() local
230 ehci_writel(ehci, 0x00800040, &ehci->regs->brcm_insnreg[1]); in ehci_brcm_resume()
231 ehci_writel(ehci, 0x00000001, &ehci->regs->brcm_insnreg[3]); in ehci_brcm_resume()