Lines Matching refs:ehci
15 #include "ehci.h"
27 static inline void ehci_brcm_wait_for_sof(struct ehci_hcd *ehci, u32 delay)
29 u32 frame_idx = ehci_readl(ehci, &ehci->regs->frame_index);
34 res = readl_relaxed_poll_timeout(&ehci->regs->frame_index, val,
37 ehci_err(ehci, "Error waiting for SOF\n");
60 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
61 int ports = HCS_N_PORTS(ehci->hcs_params);
66 status_reg = &ehci->regs->port_status[(wIndex & 0xff) - 1];
74 ehci->reset_done[wIndex-1] &&
75 time_after_eq(jiffies, ehci->reset_done[wIndex-1]) &&
76 (ehci_readl(ehci, status_reg) & PORT_RESUME)) {
82 ehci_dbg(ehci, "SOF alignment workaround\n");
85 ehci_brcm_wait_for_sof(ehci, 5);
95 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
98 ehci->big_endian_mmio = 1;
100 ehci->caps = (void __iomem *)hcd->regs;
101 len = HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase));
102 ehci->regs = (void __iomem *)(hcd->regs + len);
105 ehci_writel(ehci, CMD_RESET, &ehci->regs->command);
113 ehci_writel(ehci, 0x00800040, &ehci->regs->port_status[0x10]);
114 ehci_writel(ehci, 0x00000001, &ehci->regs->port_status[0x12]);
216 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
229 ehci_writel(ehci, 0x00800040, &ehci->regs->port_status[0x10]);
230 ehci_writel(ehci, 0x00000001, &ehci->regs->port_status[0x12]);
245 { .compatible = "brcm,ehci-brcm-v2", },
246 { .compatible = "brcm,bcm7445-ehci", },
255 .name = "ehci-brcm",
277 MODULE_ALIAS("platform:ehci-brcm");