Lines Matching refs:ehci_mv
39 static void ehci_clock_enable(struct ehci_hcd_mv *ehci_mv) in ehci_clock_enable() argument
41 clk_prepare_enable(ehci_mv->clk); in ehci_clock_enable()
44 static void ehci_clock_disable(struct ehci_hcd_mv *ehci_mv) in ehci_clock_disable() argument
46 clk_disable_unprepare(ehci_mv->clk); in ehci_clock_disable()
49 static int mv_ehci_enable(struct ehci_hcd_mv *ehci_mv) in mv_ehci_enable() argument
53 ehci_clock_enable(ehci_mv); in mv_ehci_enable()
54 if (ehci_mv->pdata->phy_init) { in mv_ehci_enable()
55 retval = ehci_mv->pdata->phy_init(ehci_mv->phy_regs); in mv_ehci_enable()
63 static void mv_ehci_disable(struct ehci_hcd_mv *ehci_mv) in mv_ehci_disable() argument
65 if (ehci_mv->pdata->phy_deinit) in mv_ehci_disable()
66 ehci_mv->pdata->phy_deinit(ehci_mv->phy_regs); in mv_ehci_disable()
67 ehci_clock_disable(ehci_mv); in mv_ehci_disable()
73 struct ehci_hcd_mv *ehci_mv = dev_get_drvdata(dev); in mv_ehci_reset() local
76 if (ehci_mv == NULL) { in mv_ehci_reset()
137 struct ehci_hcd_mv *ehci_mv; in mv_ehci_probe() local
154 ehci_mv = devm_kzalloc(&pdev->dev, sizeof(*ehci_mv), GFP_KERNEL); in mv_ehci_probe()
155 if (ehci_mv == NULL) { in mv_ehci_probe()
160 platform_set_drvdata(pdev, ehci_mv); in mv_ehci_probe()
161 ehci_mv->pdata = pdata; in mv_ehci_probe()
162 ehci_mv->hcd = hcd; in mv_ehci_probe()
164 ehci_mv->clk = devm_clk_get(&pdev->dev, NULL); in mv_ehci_probe()
165 if (IS_ERR(ehci_mv->clk)) { in mv_ehci_probe()
167 retval = PTR_ERR(ehci_mv->clk); in mv_ehci_probe()
172 ehci_mv->phy_regs = devm_ioremap_resource(&pdev->dev, r); in mv_ehci_probe()
173 if (IS_ERR(ehci_mv->phy_regs)) { in mv_ehci_probe()
174 retval = PTR_ERR(ehci_mv->phy_regs); in mv_ehci_probe()
179 ehci_mv->cap_regs = devm_ioremap_resource(&pdev->dev, r); in mv_ehci_probe()
180 if (IS_ERR(ehci_mv->cap_regs)) { in mv_ehci_probe()
181 retval = PTR_ERR(ehci_mv->cap_regs); in mv_ehci_probe()
185 retval = mv_ehci_enable(ehci_mv); in mv_ehci_probe()
191 offset = readl(ehci_mv->cap_regs) & CAPLENGTH_MASK; in mv_ehci_probe()
192 ehci_mv->op_regs = in mv_ehci_probe()
193 (void __iomem *) ((unsigned long) ehci_mv->cap_regs + offset); in mv_ehci_probe()
197 hcd->regs = ehci_mv->op_regs; in mv_ehci_probe()
207 ehci->caps = (struct ehci_caps *) ehci_mv->cap_regs; in mv_ehci_probe()
209 ehci_mv->mode = pdata->mode; in mv_ehci_probe()
210 if (ehci_mv->mode == MV_USB_MODE_OTG) { in mv_ehci_probe()
211 ehci_mv->otg = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2); in mv_ehci_probe()
212 if (IS_ERR(ehci_mv->otg)) { in mv_ehci_probe()
213 retval = PTR_ERR(ehci_mv->otg); in mv_ehci_probe()
224 retval = otg_set_host(ehci_mv->otg->otg, &hcd->self); in mv_ehci_probe()
232 mv_ehci_disable(ehci_mv); in mv_ehci_probe()
247 pdata->private_init(ehci_mv->op_regs, ehci_mv->phy_regs); in mv_ehci_probe()
252 ehci_mv->mode == MV_USB_MODE_OTG ? "OTG" : "Host"); in mv_ehci_probe()
260 mv_ehci_disable(ehci_mv); in mv_ehci_probe()
269 struct ehci_hcd_mv *ehci_mv = platform_get_drvdata(pdev); in mv_ehci_remove() local
270 struct usb_hcd *hcd = ehci_mv->hcd; in mv_ehci_remove()
275 if (!IS_ERR_OR_NULL(ehci_mv->otg)) in mv_ehci_remove()
276 otg_set_host(ehci_mv->otg->otg, NULL); in mv_ehci_remove()
278 if (ehci_mv->mode == MV_USB_MODE_HOST) { in mv_ehci_remove()
279 if (ehci_mv->pdata->set_vbus) in mv_ehci_remove()
280 ehci_mv->pdata->set_vbus(0); in mv_ehci_remove()
282 mv_ehci_disable(ehci_mv); in mv_ehci_remove()
302 struct ehci_hcd_mv *ehci_mv = platform_get_drvdata(pdev); in mv_ehci_shutdown() local
303 struct usb_hcd *hcd = ehci_mv->hcd; in mv_ehci_shutdown()