23 #include <linux/device.h>
29 #ifndef CONFIG_PNX8550
30 #error "This file is PNX8550 bus glue. CONFIG_PNX8550 must be defined."
88 hcd->rsrc_start = dev->
resource[0].start;
92 dev_err(&dev->
dev,
"request_mem_region [0x%08llx, 0x%08llx] "
93 "failed\n", hcd->rsrc_start, hcd->rsrc_len);
98 hcd->regs =
ioremap(hcd->rsrc_start, hcd->rsrc_len);
100 dev_err(&dev->
dev,
"ioremap [[0x%08llx, 0x%08llx] failed\n",
101 hcd->rsrc_start, hcd->rsrc_len);
106 pnx8550_start_hc(dev);
108 ohci_hcd_init(hcd_to_ohci(hcd));
114 pnx8550_stop_hc(dev);
140 pnx8550_stop_hc(dev);
149 ohci_pnx8550_start (
struct usb_hcd *hcd)
154 ohci_dbg (ohci,
"ohci_pnx8550_start, ohci:%p", ohci);
156 if ((ret = ohci_init(ohci)) < 0)
159 if ((ret = ohci_run (ohci)) < 0) {
160 dev_err(hcd->self.controller,
"can't start %s",
171 static const struct hc_driver ohci_pnx8550_hc_driver = {
172 .description = hcd_name,
173 .product_desc =
"PNX8550 OHCI",
174 .hcd_priv_size =
sizeof(
struct ohci_hcd),
180 .flags = HCD_USB11 | HCD_MEMORY,
185 .start = ohci_pnx8550_start,
191 .urb_enqueue = ohci_urb_enqueue,
192 .urb_dequeue = ohci_urb_dequeue,
193 .endpoint_disable = ohci_endpoint_disable,
198 .get_frame_number = ohci_get_frame,
203 .hub_status_data = ohci_hub_status_data,
204 .hub_control = ohci_hub_control,
206 .bus_suspend = ohci_bus_suspend,
207 .bus_resume = ohci_bus_resume,
227 struct usb_hcd *hcd = platform_get_drvdata(pdev);
237 .name =
"pnx8550-ohci",
240 .probe = ohci_hcd_pnx8550_drv_probe,
241 .remove = ohci_hcd_pnx8550_drv_remove,