Lines Matching full:ehci
15 #include <usb/ehci-ci.h>
21 #include "ehci.h"
31 struct ehci_ctrl ehci; member
39 static int ehci_fsl_init(struct ehci_fsl_priv *priv, struct usb_ehci *ehci,
42 static int ehci_fsl_init(int index, struct usb_ehci *ehci,
47 static int usb_phy_clk_valid(struct usb_ehci *ehci) in usb_phy_clk_valid() argument
49 if (!((in_be32(&ehci->control) & PHY_CLK_VALID) || in usb_phy_clk_valid()
50 in_be32(&ehci->prictrl))) { in usb_phy_clk_valid()
76 struct usb_ehci *ehci = NULL; in ehci_fsl_init_after_reset() local
78 ehci); in ehci_fsl_init_after_reset()
80 ehci = (struct usb_ehci *)lower_32_bits(priv->hcd_base); in ehci_fsl_init_after_reset()
82 ehci = (struct usb_ehci *)priv->hcd_base; in ehci_fsl_init_after_reset()
85 if (ehci_fsl_init(priv, ehci, priv->ehci.hccr, priv->ehci.hcor) < 0) in ehci_fsl_init_after_reset()
98 struct usb_ehci *ehci = NULL; in ehci_fsl_probe() local
103 * Get the base address for EHCI controller from the device node in ehci_fsl_probe()
107 debug("Can't get the EHCI register base address\n"); in ehci_fsl_probe()
111 ehci = (struct usb_ehci *)lower_32_bits(priv->hcd_base); in ehci_fsl_probe()
113 ehci = (struct usb_ehci *)priv->hcd_base; in ehci_fsl_probe()
115 hccr = (struct ehci_hccr *)(&ehci->caplength); in ehci_fsl_probe()
119 if (ehci_fsl_init(priv, ehci, hccr, hcor) < 0) in ehci_fsl_probe()
122 debug("ehci-fsl: init hccr %p and hcor %p hc_length %d\n", in ehci_fsl_probe()
150 * a new EHCI host controller.
152 * Excerpts from linux ehci fsl driver.
157 struct usb_ehci *ehci = NULL; in ehci_hcd_init() local
161 ehci = (struct usb_ehci *)CONFIG_SYS_FSL_USB1_ADDR; in ehci_hcd_init()
164 ehci = (struct usb_ehci *)CONFIG_SYS_FSL_USB2_ADDR; in ehci_hcd_init()
171 *hccr = (struct ehci_hccr *)((uint32_t)&ehci->caplength); in ehci_hcd_init()
175 return ehci_fsl_init(index, ehci, *hccr, *hcor); in ehci_hcd_init()
180 * the the EHCI host controller.
189 static int ehci_fsl_init(struct ehci_fsl_priv *priv, struct usb_ehci *ehci, in ehci_fsl_init() argument
192 static int ehci_fsl_init(int index, struct usb_ehci *ehci, in ehci_fsl_init()
217 setbits_le32(&ehci->usbmode, CM_HOST); in ehci_fsl_init()
219 out_be32(&ehci->snoop1, SNOOP_SIZE_2GB); in ehci_fsl_init()
220 out_be32(&ehci->snoop2, 0x80000000 | SNOOP_SIZE_2GB); in ehci_fsl_init()
251 clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, in ehci_fsl_init()
253 clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, in ehci_fsl_init()
258 clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, in ehci_fsl_init()
261 clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, in ehci_fsl_init()
263 clrsetbits_be32(&ehci->control, UTMI_PHY_EN | in ehci_fsl_init()
266 if (!usb_phy_clk_valid(ehci)) in ehci_fsl_init()
271 out_be32(&ehci->prictrl, 0x0000000c); in ehci_fsl_init()
272 out_be32(&ehci->age_cnt_limit, 0x00000040); in ehci_fsl_init()
273 out_be32(&ehci->sictrl, 0x00000001); in ehci_fsl_init()
275 in_le32(&ehci->usbmode); in ehci_fsl_init()
278 set_txfifothresh(ehci, TXFIFOTHRESH); in ehci_fsl_init()
298 static void set_txfifothresh(struct usb_ehci *ehci, u32 txfifo_thresh) in set_txfifothresh() argument
301 cmd = ehci_readl(&ehci->txfilltuning); in set_txfifothresh()
304 ehci_writel(&ehci->txfilltuning, cmd); in set_txfifothresh()