Lines Matching +full:host +full:- +full:only
1 // SPDX-License-Identifier: GPL-2.0+
3 * EHCI HCD (Host Controller Driver) for USB.
9 * Based on "ehci-ppc-of.c" by Valentine Barshak <vbarshak@ru.mvista.com>
10 * and "ehci-ppc-soc.c" by Stefan Roese <sr@denx.de>
11 * and "ohci-ppc-of.c" by Sylvain Munaut <tnt@246tNt.com>
23 * ehci_xilinx_port_handed_over - hand the port out if failed to enable it
24 * @hcd: Pointer to the usb_hcd device to which the host controller bound
27 * This function is used as a place to tell the user that the Xilinx USB host
28 * controller does support LS devices. And in an HS only configuration, it
32 * There are cases when the host controller fails to enable the port due to,
38 dev_warn(hcd->self.controller, "port %d cannot be enabled\n", portnum); in ehci_xilinx_port_handed_over()
39 if (hcd->has_tt) { in ehci_xilinx_port_handed_over()
40 dev_warn(hcd->self.controller, in ehci_xilinx_port_handed_over()
43 dev_warn(hcd->self.controller, in ehci_xilinx_port_handed_over()
46 dev_warn(hcd->self.controller, in ehci_xilinx_port_handed_over()
48 dev_warn(hcd->self.controller, in ehci_xilinx_port_handed_over()
49 "The USB host controller does not support full speed " in ehci_xilinx_port_handed_over()
51 dev_warn(hcd->self.controller, in ehci_xilinx_port_handed_over()
52 "You can reconfigure the host controller to have " in ehci_xilinx_port_handed_over()
108 * ehci_hcd_xilinx_of_probe - Probe method for the USB host controller
109 * @op: pointer to the platform_device bound to the host controller
112 * host controller. Because the Xilinx USB host controller can be configured
113 * as HS only or HS/FS only, it checks the configuration in the device tree
114 * entry, and sets an appropriate value for hcd->has_tt.
118 struct device_node *dn = op->dev.of_node; in ehci_hcd_xilinx_of_probe()
127 return -ENODEV; in ehci_hcd_xilinx_of_probe()
129 dev_dbg(&op->dev, "initializing XILINX-OF USB Controller\n"); in ehci_hcd_xilinx_of_probe()
135 hcd = usb_create_hcd(&ehci_xilinx_of_hc_driver, &op->dev, in ehci_hcd_xilinx_of_probe()
136 "XILINX-OF USB"); in ehci_hcd_xilinx_of_probe()
138 return -ENOMEM; in ehci_hcd_xilinx_of_probe()
140 hcd->rsrc_start = res.start; in ehci_hcd_xilinx_of_probe()
141 hcd->rsrc_len = resource_size(&res); in ehci_hcd_xilinx_of_probe()
145 dev_err(&op->dev, "%s: irq_of_parse_and_map failed\n", in ehci_hcd_xilinx_of_probe()
147 rv = -EBUSY; in ehci_hcd_xilinx_of_probe()
151 hcd->regs = devm_ioremap_resource(&op->dev, &res); in ehci_hcd_xilinx_of_probe()
152 if (IS_ERR(hcd->regs)) { in ehci_hcd_xilinx_of_probe()
153 rv = PTR_ERR(hcd->regs); in ehci_hcd_xilinx_of_probe()
159 /* This core always has big-endian register interface and uses in ehci_hcd_xilinx_of_probe()
160 * big-endian memory descriptors. in ehci_hcd_xilinx_of_probe()
162 ehci->big_endian_mmio = 1; in ehci_hcd_xilinx_of_probe()
163 ehci->big_endian_desc = 1; in ehci_hcd_xilinx_of_probe()
167 value = (int *)of_get_property(dn, "xlnx,support-usb-fs", NULL); in ehci_hcd_xilinx_of_probe()
169 ehci_dbg(ehci, "USB host controller supports FS devices\n"); in ehci_hcd_xilinx_of_probe()
170 hcd->has_tt = 1; in ehci_hcd_xilinx_of_probe()
173 "USB host controller is HS only\n"); in ehci_hcd_xilinx_of_probe()
174 hcd->has_tt = 0; in ehci_hcd_xilinx_of_probe()
179 ehci->caps = hcd->regs + 0x100; in ehci_hcd_xilinx_of_probe()
183 device_wakeup_enable(hcd->self.controller); in ehci_hcd_xilinx_of_probe()
194 * ehci_hcd_xilinx_of_remove - shutdown hcd and release resources
204 dev_dbg(&op->dev, "stopping XILINX-OF USB Controller\n"); in ehci_hcd_xilinx_of_remove()
214 {.compatible = "xlnx,xps-usb-host-1.00.a",},
224 .name = "xilinx-of-ehci",