Lines Matching refs:ehci_mv
45 static int mv_ehci_enable(struct ehci_hcd_mv *ehci_mv) in mv_ehci_enable() argument
49 retval = clk_prepare_enable(ehci_mv->clk); in mv_ehci_enable()
53 retval = phy_init(ehci_mv->phy); in mv_ehci_enable()
55 clk_disable_unprepare(ehci_mv->clk); in mv_ehci_enable()
60 static void mv_ehci_disable(struct ehci_hcd_mv *ehci_mv) in mv_ehci_disable() argument
62 phy_exit(ehci_mv->phy); in mv_ehci_disable()
63 clk_disable_unprepare(ehci_mv->clk); in mv_ehci_disable()
69 struct ehci_hcd_mv *ehci_mv = hcd_to_ehci_hcd_mv(hcd); in mv_ehci_reset() local
74 if (ehci_mv == NULL) { in mv_ehci_reset()
108 struct ehci_hcd_mv *ehci_mv; in mv_ehci_probe() local
122 ehci_mv = hcd_to_ehci_hcd_mv(hcd); in mv_ehci_probe()
124 ehci_mv->mode = MV_USB_MODE_HOST; in mv_ehci_probe()
126 ehci_mv->mode = pdata->mode; in mv_ehci_probe()
127 ehci_mv->set_vbus = pdata->set_vbus; in mv_ehci_probe()
130 ehci_mv->phy = devm_phy_optional_get(&pdev->dev, "usb"); in mv_ehci_probe()
131 if (IS_ERR(ehci_mv->phy)) { in mv_ehci_probe()
132 retval = PTR_ERR(ehci_mv->phy); in mv_ehci_probe()
138 ehci_mv->clk = devm_clk_get(&pdev->dev, NULL); in mv_ehci_probe()
139 if (IS_ERR(ehci_mv->clk)) { in mv_ehci_probe()
141 retval = PTR_ERR(ehci_mv->clk); in mv_ehci_probe()
146 ehci_mv->base = devm_ioremap_resource(&pdev->dev, r); in mv_ehci_probe()
147 if (IS_ERR(ehci_mv->base)) { in mv_ehci_probe()
148 retval = PTR_ERR(ehci_mv->base); in mv_ehci_probe()
152 retval = mv_ehci_enable(ehci_mv); in mv_ehci_probe()
158 ehci_mv->cap_regs = in mv_ehci_probe()
159 (void __iomem *) ((unsigned long) ehci_mv->base + U2x_CAPREGS_OFFSET); in mv_ehci_probe()
160 offset = readl(ehci_mv->cap_regs) & CAPLENGTH_MASK; in mv_ehci_probe()
161 ehci_mv->op_regs = in mv_ehci_probe()
162 (void __iomem *) ((unsigned long) ehci_mv->cap_regs + offset); in mv_ehci_probe()
166 hcd->regs = ehci_mv->op_regs; in mv_ehci_probe()
174 ehci->caps = (struct ehci_caps __iomem *) ehci_mv->cap_regs; in mv_ehci_probe()
176 if (ehci_mv->mode == MV_USB_MODE_OTG) { in mv_ehci_probe()
177 ehci_mv->otg = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2); in mv_ehci_probe()
178 if (IS_ERR(ehci_mv->otg)) { in mv_ehci_probe()
179 retval = PTR_ERR(ehci_mv->otg); in mv_ehci_probe()
190 retval = otg_set_host(ehci_mv->otg->otg, &hcd->self); in mv_ehci_probe()
198 mv_ehci_disable(ehci_mv); in mv_ehci_probe()
200 if (ehci_mv->set_vbus) in mv_ehci_probe()
201 ehci_mv->set_vbus(1); in mv_ehci_probe()
223 ehci_mv->mode == MV_USB_MODE_OTG ? "OTG" : "Host"); in mv_ehci_probe()
228 if (ehci_mv->set_vbus) in mv_ehci_probe()
229 ehci_mv->set_vbus(0); in mv_ehci_probe()
231 mv_ehci_disable(ehci_mv); in mv_ehci_probe()
241 struct ehci_hcd_mv *ehci_mv = hcd_to_ehci_hcd_mv(hcd); in mv_ehci_remove() local
246 if (!IS_ERR_OR_NULL(ehci_mv->otg)) in mv_ehci_remove()
247 otg_set_host(ehci_mv->otg->otg, NULL); in mv_ehci_remove()
249 if (ehci_mv->mode == MV_USB_MODE_HOST) { in mv_ehci_remove()
250 if (ehci_mv->set_vbus) in mv_ehci_remove()
251 ehci_mv->set_vbus(0); in mv_ehci_remove()
253 mv_ehci_disable(ehci_mv); in mv_ehci_remove()