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