Lines Matching +full:generic +full:- +full:ohci
1 // SPDX-License-Identifier: GPL-1.0+
3 * OHCI HCD (Host Controller Driver) for USB.
6 * (C) Copyright 2000-2002 David Brownell <[email protected]>
7 * (C) Copyright 2002 Hewlett-Packard Company
17 #include <asm/mach-types.h>
21 #error "This file is SA-1111 bus glue. CONFIG_SA1111 must be defined."
46 unsigned long status = readl_relaxed(hcd->regs + USB_STATUS);
59 struct ohci_hcd *ohci = hcd_to_ohci(hcd); in ohci_sa1111_reset() local
61 ohci_hcd_init(ohci); in ohci_sa1111_reset()
62 return ohci_init(ohci); in ohci_sa1111_reset()
67 struct ohci_hcd *ohci = hcd_to_ohci(hcd); in ohci_sa1111_start() local
70 ret = ohci_run(ohci); in ohci_sa1111_start()
72 ohci_err(ohci, "can't start\n"); in ohci_sa1111_start()
80 .product_desc = "SA-1111 OHCI",
84 * generic hardware linkage
126 dev_dbg(&dev->dev, "starting SA-1111 OHCI USB Controller\n"); in sa1111_start_hc()
136 dev->mapbase + USB_RESET); in sa1111_start_hc()
145 writel_relaxed(usb_rst, dev->mapbase + USB_RESET); in sa1111_start_hc()
155 dev_dbg(&dev->dev, "stopping SA-1111 OHCI USB Controller\n"); in sa1111_stop_hc()
160 usb_rst = readl_relaxed(dev->mapbase + USB_RESET); in sa1111_stop_hc()
162 dev->mapbase + USB_RESET); in sa1111_stop_hc()
171 * ohci_hcd_sa1111_probe - initialize SA-1111-based HCDs
182 return -ENODEV; in ohci_hcd_sa1111_probe()
187 * SA-1111 bus code (which includes bug workarounds.) in ohci_hcd_sa1111_probe()
190 hcd = usb_create_hcd(&ohci_sa1111_hc_driver, &dev->dev, "sa1111"); in ohci_hcd_sa1111_probe()
192 return -ENOMEM; in ohci_hcd_sa1111_probe()
194 hcd->rsrc_start = dev->res.start; in ohci_hcd_sa1111_probe()
195 hcd->rsrc_len = resource_size(&dev->res); in ohci_hcd_sa1111_probe()
199 ret = irq ? : -ENXIO; in ohci_hcd_sa1111_probe()
204 * According to the "Intel StrongARM SA-1111 Microprocessor Companion in ohci_hcd_sa1111_probe()
210 * of several different (processor-relative) address bits. in ohci_hcd_sa1111_probe()
212 * Section 4.6 of the "Intel StrongARM SA-1111 Development Module in ohci_hcd_sa1111_probe()
214 * target of SA-1111 DMA (either SDRAM bank 0 on Assabet, or in ohci_hcd_sa1111_probe()
228 if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { in ohci_hcd_sa1111_probe()
229 dev_dbg(&dev->dev, "request_mem_region failed\n"); in ohci_hcd_sa1111_probe()
230 ret = -EBUSY; in ohci_hcd_sa1111_probe()
234 hcd->regs = dev->mapbase; in ohci_hcd_sa1111_probe()
242 device_wakeup_enable(hcd->self.controller); in ohci_hcd_sa1111_probe()
248 release_mem_region(hcd->rsrc_start, hcd->rsrc_len); in ohci_hcd_sa1111_probe()
255 * ohci_hcd_sa1111_remove - shutdown processing for SA-1111-based HCDs
267 release_mem_region(hcd->rsrc_start, hcd->rsrc_len); in ohci_hcd_sa1111_remove()
276 if (test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) { in ohci_hcd_sa1111_shutdown()
277 hcd->driver->shutdown(hcd); in ohci_hcd_sa1111_shutdown()
284 .name = "sa1111-ohci",