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);
145 ehci_mv->base = devm_platform_get_and_ioremap_resource(pdev, 0, &r);
146 if (IS_ERR(ehci_mv->base)) {
147 retval = PTR_ERR(ehci_mv->base);
151 retval = mv_ehci_enable(ehci_mv);
157 ehci_mv->cap_regs =
158 (void __iomem *) ((unsigned long) ehci_mv->base + U2x_CAPREGS_OFFSET);
159 offset = readl(ehci_mv->cap_regs) & CAPLENGTH_MASK;
160 ehci_mv->op_regs =
161 (void __iomem *) ((unsigned long) ehci_mv->cap_regs + offset);
165 hcd->regs = ehci_mv->op_regs;
173 ehci->caps = (struct ehci_caps __iomem *) ehci_mv->cap_regs;
175 if (ehci_mv->mode == MV_USB_MODE_OTG) {
176 ehci_mv->otg = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2);
177 if (IS_ERR(ehci_mv->otg)) {
178 retval = PTR_ERR(ehci_mv->otg);
189 retval = otg_set_host(ehci_mv->otg->otg, &hcd->self);
197 mv_ehci_disable(ehci_mv);
199 if (ehci_mv->set_vbus)
200 ehci_mv->set_vbus(1);
222 ehci_mv->mode == MV_USB_MODE_OTG ? "OTG" : "Host");
227 if (ehci_mv->set_vbus)
228 ehci_mv->set_vbus(0);
230 mv_ehci_disable(ehci_mv);
240 struct ehci_hcd_mv *ehci_mv = hcd_to_ehci_hcd_mv(hcd);
245 if (!IS_ERR_OR_NULL(ehci_mv->otg))
246 otg_set_host(ehci_mv->otg->otg, NULL);
248 if (ehci_mv->mode == MV_USB_MODE_HOST) {
249 if (ehci_mv->set_vbus)
250 ehci_mv->set_vbus(0);
252 mv_ehci_disable(ehci_mv);