Lines Matching +full:usb +full:- +full:ehci

1 // SPDX-License-Identifier: GPL-2.0+
3 * Driver for Aeroflex Gaisler GRLIB GRUSBHC EHCI host controller
9 * Based on ehci-ppc-of.c which is:
11 * and in turn based on "ehci-ppc-soc.c" by Stefan Roese <sr@denx.de>
12 * and "ohci-ppc-of.c" by Sylvain Munaut <tnt@246tNt.com>
26 .product_desc = "GRLIB GRUSBHC EHCI",
74 struct device_node *dn = op->dev.of_node; in ehci_hcd_grlib_probe()
76 struct ehci_hcd *ehci = NULL; in ehci_hcd_grlib_probe() local
83 return -ENODEV; in ehci_hcd_grlib_probe()
85 dev_dbg(&op->dev, "initializing GRUSBHC EHCI USB Controller\n"); in ehci_hcd_grlib_probe()
92 op->dev.dma_mask = &op->dev.coherent_dma_mask; in ehci_hcd_grlib_probe()
93 hcd = usb_create_hcd(&ehci_grlib_hc_driver, &op->dev, in ehci_hcd_grlib_probe()
94 "GRUSBHC EHCI USB"); in ehci_hcd_grlib_probe()
96 return -ENOMEM; in ehci_hcd_grlib_probe()
98 hcd->rsrc_start = res.start; in ehci_hcd_grlib_probe()
99 hcd->rsrc_len = resource_size(&res); in ehci_hcd_grlib_probe()
103 dev_err(&op->dev, "%s: irq_of_parse_and_map failed\n", in ehci_hcd_grlib_probe()
105 rv = -EBUSY; in ehci_hcd_grlib_probe()
109 hcd->regs = devm_ioremap_resource(&op->dev, &res); in ehci_hcd_grlib_probe()
110 if (IS_ERR(hcd->regs)) { in ehci_hcd_grlib_probe()
111 rv = PTR_ERR(hcd->regs); in ehci_hcd_grlib_probe()
115 ehci = hcd_to_ehci(hcd); in ehci_hcd_grlib_probe()
117 ehci->caps = hcd->regs; in ehci_hcd_grlib_probe()
120 hc_capbase = ehci_readl(ehci, &ehci->caps->hc_capbase); in ehci_hcd_grlib_probe()
121 if (HC_VERSION(ehci, hc_capbase) != GRUSBHC_HCIVERSION) { in ehci_hcd_grlib_probe()
122 ehci->big_endian_mmio = 1; in ehci_hcd_grlib_probe()
123 ehci->big_endian_desc = 1; in ehci_hcd_grlib_probe()
124 ehci->big_endian_capbase = 1; in ehci_hcd_grlib_probe()
131 device_wakeup_enable(hcd->self.controller); in ehci_hcd_grlib_probe()
147 dev_dbg(&op->dev, "stopping GRLIB GRUSBHC EHCI USB Controller\n"); in ehci_hcd_grlib_remove()
151 irq_dispose_mapping(hcd->irq); in ehci_hcd_grlib_remove()
174 .name = "grlib-ehci",