Lines Matching +full:dev +full:- +full:ctrl

1 // SPDX-License-Identifier: GPL-2.0+
16 #include <usb/ehci-ci.h>
25 struct ehci_ctrl ctrl; /* Needed by EHCI */ member
31 static int msm_init_after_reset(struct ehci_ctrl *dev) in msm_init_after_reset() argument
33 struct msm_ehci_priv *p = container_of(dev, struct msm_ehci_priv, ctrl); in msm_init_after_reset()
34 struct usb_ehci *ehci = p->ehci; in msm_init_after_reset()
36 generic_phy_reset(&p->phy); in msm_init_after_reset()
39 writel(CM_HOST, &ehci->usbmode); in msm_init_after_reset()
48 static int ehci_usb_probe(struct udevice *dev) in ehci_usb_probe() argument
50 struct msm_ehci_priv *p = dev_get_priv(dev); in ehci_usb_probe()
51 struct usb_ehci *ehci = p->ehci; in ehci_usb_probe()
52 struct usb_platdata *plat = dev_get_platdata(dev); in ehci_usb_probe()
57 hccr = (struct ehci_hccr *)((phys_addr_t)&ehci->caplength); in ehci_usb_probe()
59 HC_LENGTH(ehci_readl(&(hccr)->cr_capbase))); in ehci_usb_probe()
61 ret = ehci_setup_phy(dev, &p->phy, 0); in ehci_usb_probe()
65 ret = board_usb_init(0, plat->init_type); in ehci_usb_probe()
69 return ehci_register(dev, hccr, hcor, &msm_ehci_ops, 0, in ehci_usb_probe()
70 plat->init_type); in ehci_usb_probe()
73 static int ehci_usb_remove(struct udevice *dev) in ehci_usb_remove() argument
75 struct msm_ehci_priv *p = dev_get_priv(dev); in ehci_usb_remove()
76 struct usb_ehci *ehci = p->ehci; in ehci_usb_remove()
79 ret = ehci_deregister(dev); in ehci_usb_remove()
84 clrbits_le32(&ehci->usbcmd, CMD_RUN); in ehci_usb_remove()
86 ret = ehci_shutdown_phy(dev, &p->phy); in ehci_usb_remove()
95 setbits_le32(&ehci->usbcmd, CMD_RESET); in ehci_usb_remove()
98 if (wait_for_bit_le32(&ehci->usbcmd, CMD_RESET, false, 30, false)) { in ehci_usb_remove()
100 return -ETIMEDOUT; in ehci_usb_remove()
106 static int ehci_usb_ofdata_to_platdata(struct udevice *dev) in ehci_usb_ofdata_to_platdata() argument
108 struct msm_ehci_priv *priv = dev_get_priv(dev); in ehci_usb_ofdata_to_platdata()
110 priv->ulpi_vp.port_num = 0; in ehci_usb_ofdata_to_platdata()
111 priv->ehci = (void *)devfdt_get_addr(dev); in ehci_usb_ofdata_to_platdata()
113 if (priv->ehci == (void *)FDT_ADDR_T_NONE) in ehci_usb_ofdata_to_platdata()
114 return -EINVAL; in ehci_usb_ofdata_to_platdata()
119 priv->ulpi_vp.viewport_addr = (phys_addr_t)&priv->ehci->ulpi_viewpoint; in ehci_usb_ofdata_to_platdata()
128 void ci_init_after_reset(struct ehci_ctrl *ctrl) in ci_init_after_reset() argument
130 struct msm_ehci_priv *p = ctrl->priv; in ci_init_after_reset()
132 generic_phy_reset(&p->phy); in ci_init_after_reset()
137 { .compatible = "qcom,ehci-host", },