38 static int ohci_omap3_init(
struct usb_hcd *hcd)
40 dev_dbg(hcd->self.controller,
"starting OHCI controller\n");
42 return ohci_init(hcd_to_ohci(hcd));
47 static int ohci_omap3_start(
struct usb_hcd *hcd)
62 dev_err(hcd->self.controller,
"can't start\n");
71 static const struct hc_driver ohci_omap3_hc_driver = {
72 .description = hcd_name,
73 .product_desc =
"OMAP3 OHCI Host Controller",
74 .hcd_priv_size =
sizeof(
struct ohci_hcd),
80 .flags = HCD_USB11 | HCD_MEMORY,
85 .reset = ohci_omap3_init,
86 .start = ohci_omap3_start,
88 .shutdown = ohci_shutdown,
93 .urb_enqueue = ohci_urb_enqueue,
94 .urb_dequeue = ohci_urb_dequeue,
95 .endpoint_disable = ohci_endpoint_disable,
100 .get_frame_number = ohci_get_frame,
105 .hub_status_data = ohci_hub_status_data,
106 .hub_control = ohci_hub_control,
108 .bus_suspend = ohci_bus_suspend,
109 .bus_resume = ohci_bus_resume,
131 struct usb_hcd *hcd =
NULL;
141 dev_err(dev,
"Missing parent device\n");
147 dev_err(dev,
"OHCI irq failed\n");
154 dev_err(dev,
"UHH OHCI get resource failed\n");
160 dev_err(dev,
"UHH OHCI ioremap failed\n");
168 dev_err(dev,
"usb_create_hcd failed\n");
172 hcd->rsrc_start = res->
start;
173 hcd->rsrc_len = resource_size(res);
177 pm_runtime_get_sync(dev);
179 ohci_hcd_init(hcd_to_ohci(hcd));
183 dev_dbg(dev,
"failed to add hcd with err %d\n", ret);
190 pm_runtime_put_sync(dev);
219 pm_runtime_put_sync(dev);
220 pm_runtime_disable(dev);
229 if (hcd->driver->shutdown)
230 hcd->driver->shutdown(hcd);
234 .probe = ohci_hcd_omap3_probe,
236 .shutdown = ohci_hcd_omap3_shutdown,
238 .name =
"ohci-omap3",