Home
last modified time | relevance | path

Searched full:ehci (Results 1 – 25 of 384) sorted by relevance

12345678910>>...16

/linux-6.12.1/drivers/usb/host/
Dehci-hcd.c3 * Enhanced Host Controller Interface (EHCI) driver for USB.
44 * EHCI hc_driver implementation ... experimental, incomplete.
58 #define DRIVER_DESC "USB 2.0 'Enhanced' Host Controller (EHCI) Driver"
98 #include "ehci.h"
111 static unsigned ehci_moschip_read_frame_index(struct ehci_hcd *ehci) in ehci_moschip_read_frame_index() argument
115 uf = ehci_readl(ehci, &ehci->regs->frame_index); in ehci_moschip_read_frame_index()
117 uf = ehci_readl(ehci, &ehci->regs->frame_index); in ehci_moschip_read_frame_index()
121 static inline unsigned ehci_read_frame_index(struct ehci_hcd *ehci) in ehci_read_frame_index() argument
123 if (ehci->frame_index_bug) in ehci_read_frame_index()
124 return ehci_moschip_read_frame_index(ehci); in ehci_read_frame_index()
[all …]
Dehci-hub.c6 /* this file is part of ehci-hcd.c */
11 * EHCI Root Hub ... the nonsharable stuff
22 static void unlink_empty_async_suspended(struct ehci_hcd *ehci);
33 static void ehci_handover_companion_ports(struct ehci_hcd *ehci) in ehci_handover_companion_ports() argument
39 struct usb_hcd *hcd = ehci_to_hcd(ehci); in ehci_handover_companion_ports()
41 if (!ehci->owned_ports) in ehci_handover_companion_ports()
55 port = HCS_N_PORTS(ehci->hcs_params); in ehci_handover_companion_ports()
57 if (test_bit(port, &ehci->owned_ports)) { in ehci_handover_companion_ports()
58 reg = &ehci->regs->port_status[port]; in ehci_handover_companion_ports()
59 status = ehci_readl(ehci, reg) & ~PORT_RWC_BITS; in ehci_handover_companion_ports()
[all …]
Dehci-timer.c6 /* This file is part of ehci-hcd.c */
11 static void ehci_set_command_bit(struct ehci_hcd *ehci, u32 bit) in ehci_set_command_bit() argument
13 ehci->command |= bit; in ehci_set_command_bit()
14 ehci_writel(ehci, ehci->command, &ehci->regs->command); in ehci_set_command_bit()
17 ehci_readl(ehci, &ehci->regs->command); in ehci_set_command_bit()
21 static void ehci_clear_command_bit(struct ehci_hcd *ehci, u32 bit) in ehci_clear_command_bit() argument
23 ehci->command &= ~bit; in ehci_clear_command_bit()
24 ehci_writel(ehci, ehci->command, &ehci->regs->command); in ehci_clear_command_bit()
27 ehci_readl(ehci, &ehci->regs->command); in ehci_clear_command_bit()
33 * EHCI timer support... Now using hrtimers.
[all …]
Dehci-mem.c6 /* this file is part of ehci-hcd.c */
25 static inline void ehci_qtd_init(struct ehci_hcd *ehci, struct ehci_qtd *qtd, in ehci_qtd_init() argument
30 qtd->hw_token = cpu_to_hc32(ehci, QTD_STS_HALT); in ehci_qtd_init()
31 qtd->hw_next = EHCI_LIST_END(ehci); in ehci_qtd_init()
32 qtd->hw_alt_next = EHCI_LIST_END(ehci); in ehci_qtd_init()
36 static struct ehci_qtd *ehci_qtd_alloc (struct ehci_hcd *ehci, gfp_t flags) in ehci_qtd_alloc() argument
41 qtd = dma_pool_alloc (ehci->qtd_pool, flags, &dma); in ehci_qtd_alloc()
43 ehci_qtd_init(ehci, qtd, dma); in ehci_qtd_alloc()
48 static inline void ehci_qtd_free (struct ehci_hcd *ehci, struct ehci_qtd *qtd) in ehci_qtd_free() argument
50 dma_pool_free (ehci->qtd_pool, qtd, qtd->qtd_dma); in ehci_qtd_free()
[all …]
Dehci-sched.c7 /* this file is part of ehci-hcd.c */
12 * EHCI scheduled transaction support: interrupt, iso, split iso
13 * These are called "periodic" transactions in the EHCI spec.
32 periodic_next_shadow(struct ehci_hcd *ehci, union ehci_shadow *periodic, in periodic_next_shadow() argument
35 switch (hc32_to_cpu(ehci, tag)) { in periodic_next_shadow()
49 shadow_next_periodic(struct ehci_hcd *ehci, union ehci_shadow *periodic, in shadow_next_periodic() argument
52 switch (hc32_to_cpu(ehci, tag)) { in shadow_next_periodic()
62 /* caller must hold ehci->lock */
63 static void periodic_unlink(struct ehci_hcd *ehci, unsigned frame, void *ptr) in periodic_unlink() argument
65 union ehci_shadow *prev_p = &ehci->pshadow[frame]; in periodic_unlink()
[all …]
Dehci-dbg.c6 /* this file is part of ehci-hcd.c */
13 * see EHCI spec, Table 2-4 for each value
15 static void dbg_hcs_params(struct ehci_hcd *ehci, char *label) in dbg_hcs_params() argument
17 u32 params = ehci_readl(ehci, &ehci->caps->hcs_params); in dbg_hcs_params()
19 ehci_dbg(ehci, in dbg_hcs_params()
29 /* Port routing, per EHCI 0.95 Spec, Section 2.2.5 */ in dbg_hcs_params()
37 byte = readb(&ehci->caps->portroute[(i >> 1)]); in dbg_hcs_params()
42 ehci_dbg(ehci, "%s portroute %s\n", label, buf); in dbg_hcs_params()
49 * see EHCI Spec, Table 2-5 for each value
51 static void dbg_hcc_params(struct ehci_hcd *ehci, char *label) in dbg_hcc_params() argument
[all …]
Dehci-fsl.c28 #include "ehci.h"
29 #include "ehci-fsl.h"
31 #define DRIVER_DESC "Freescale EHCI Host controller driver"
32 #define DRV_NAME "fsl-ehci"
147 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in fsl_ehci_drv_probe() local
150 dev_dbg(&pdev->dev, "hcd=0x%p ehci=0x%p, phy=0x%p\n", in fsl_ehci_drv_probe()
151 hcd, ehci, hcd->usb_phy); in fsl_ehci_drv_probe()
155 &ehci_to_hcd(ehci)->self); in fsl_ehci_drv_probe()
196 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup_phy() local
206 portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]); in ehci_fsl_setup_phy()
[all …]
Dehci-pci.c3 * EHCI HCD (Host Controller Driver) PCI Bus Glue.
14 #include "ehci.h"
17 #define DRIVER_DESC "EHCI PCI platform driver"
19 static const char hcd_name[] = "ehci-pci";
36 * This is the list of PCI IDs for the devices that have EHCI USB class and
63 static int ehci_pci_reinit(struct ehci_hcd *ehci, struct pci_dev *pdev) in ehci_pci_reinit() argument
68 * (currently just BIOS handoff) allowed starting with EHCI 0.96 in ehci_pci_reinit()
74 ehci_dbg(ehci, "MWI active\n"); in ehci_pci_reinit()
82 ehci_writel(ehci, INTEL_QUARK_X1000_EHCI_MAX_THRESHOLD, in ehci_pci_reinit()
83 ehci->regs->intel_quark_x1000_insnreg01); in ehci_pci_reinit()
[all …]
Dehci-sysfs.c6 /* this file is part of ehci-hcd.c */
14 struct ehci_hcd *ehci; in companion_show() local
19 ehci = hcd_to_ehci(dev_get_drvdata(dev)); in companion_show()
20 nports = HCS_N_PORTS(ehci->hcs_params); in companion_show()
23 if (test_bit(index, &ehci->companion_ports)) { in companion_show()
35 * return control of the port to the EHCI controller.
41 struct ehci_hcd *ehci; in companion_store() local
44 ehci = hcd_to_ehci(dev_get_drvdata(dev)); in companion_store()
50 new_owner = 0; /* Owned by EHCI */ in companion_store()
52 if (portnum <= 0 || portnum > HCS_N_PORTS(ehci->hcs_params)) in companion_store()
[all …]
Dehci-q.c6 /* this file is part of ehci-hcd.c */
11 * EHCI hardware queue manipulation ... the core. QH/QTD manipulation.
20 * an ongoing challenge. That's in "ehci-sched.c".
33 qtd_fill(struct ehci_hcd *ehci, struct ehci_qtd *qtd, dma_addr_t buf, in qtd_fill() argument
41 qtd->hw_buf[0] = cpu_to_hc32(ehci, (u32)addr); in qtd_fill()
42 qtd->hw_buf_hi[0] = cpu_to_hc32(ehci, (u32)(addr >> 32)); in qtd_fill()
53 qtd->hw_buf[i] = cpu_to_hc32(ehci, (u32)addr); in qtd_fill()
54 qtd->hw_buf_hi[i] = cpu_to_hc32(ehci, in qtd_fill()
67 qtd->hw_token = cpu_to_hc32(ehci, (count << 16) | token); in qtd_fill()
76 qh_update (struct ehci_hcd *ehci, struct ehci_qh *qh, struct ehci_qtd *qtd) in qh_update() argument
[all …]
Dehci-brcm.c15 #include "ehci.h"
27 static inline void ehci_brcm_wait_for_sof(struct ehci_hcd *ehci, u32 delay) in ehci_brcm_wait_for_sof() argument
29 u32 frame_idx = ehci_readl(ehci, &ehci->regs->frame_index); in ehci_brcm_wait_for_sof()
34 res = readl_relaxed_poll_timeout(&ehci->regs->frame_index, val, in ehci_brcm_wait_for_sof()
37 ehci_err(ehci, "Error waiting for SOF\n"); in ehci_brcm_wait_for_sof()
43 * The EHCI controller has a bug where it can violate the SOF
60 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_brcm_hub_control() local
61 int ports = HCS_N_PORTS(ehci->hcs_params); in ehci_brcm_hub_control()
70 status_reg = &ehci->regs->port_status[temp]; in ehci_brcm_hub_control()
78 ehci->reset_done[wIndex-1] && in ehci_brcm_hub_control()
[all …]
Dehci-platform.c3 * Generic platform ehci driver
12 * Derived from the EHCI-PCI driver
39 #include "ehci.h"
41 #define DRIVER_DESC "EHCI generic platform driver"
60 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_platform_reset() local
63 ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug; in ehci_platform_reset()
71 ehci->caps = hcd->regs + pdata->caps_offset; in ehci_platform_reset()
77 ehci->need_io_watchdog = 0; in ehci_platform_reset()
79 if (of_device_is_compatible(pdev->dev.of_node, "brcm,xgs-iproc-ehci")) in ehci_platform_reset()
80 ehci_writel(ehci, BCM_USB_FIFO_THRESHOLD, in ehci_platform_reset()
[all …]
Dehci.h9 /* definitions used for the EHCI driver */
92 * ehci-timer.c) in parallel with this list.
270 static inline struct usb_hcd *ehci_to_hcd(struct ehci_hcd *ehci) in ehci_to_hcd() argument
272 return container_of((void *) ehci, struct usb_hcd, hcd_priv); in ehci_to_hcd()
281 #define QTD_NEXT(ehci, dma) cpu_to_hc32(ehci, (u32)dma) argument
284 * EHCI Specification 0.95 Section 3.5
292 /* first part defined by EHCI spec */
293 __hc32 hw_next; /* see EHCI 3.5.1 */
294 __hc32 hw_alt_next; /* see EHCI 3.5.2 */
295 __hc32 hw_token; /* see EHCI 3.5.3 */
[all …]
DKconfig128 Enables support for XHCI, EHCI and OHCI host controllers
132 modules will be called ohci-platform.ko, ehci-brcm.ko and
139 tristate "EHCI HCD (USB 2.0) support"
142 The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
147 EHCI controllers are packaged with "companion" host controllers (OHCI
149 will connect to EHCI if the device is high speed, otherwise they
150 connect to a companion controller. If you configure EHCI, you should
155 You may want to read <file:Documentation/usb/ehci.rst>.
158 module will be called ehci-hcd.
164 Some EHCI chips have vendor-specific extensions to integrate
[all …]
Dehci-ppc-of.c3 * EHCI HCD (Host Controller Driver) for USB.
5 * Bus Glue for PPC On-Chip EHCI driver on the of_platform bus
10 * Based on "ehci-ppc-soc.c" by Stefan Roese <sr@denx.de>
27 .product_desc = "OF EHCI",
98 struct ehci_hcd *ehci = NULL; in ehci_hcd_ppc_of_probe() local
135 ehci = hcd_to_ehci(hcd); in ehci_hcd_ppc_of_probe()
140 ehci->ohci_hcctrl_reg = in ehci_hcd_ppc_of_probe()
146 if (!ehci->ohci_hcctrl_reg) { in ehci_hcd_ppc_of_probe()
149 ehci->has_amcc_usb23 = 1; in ehci_hcd_ppc_of_probe()
155 ehci->big_endian_mmio = 1; in ehci_hcd_ppc_of_probe()
[all …]
Dehci-grlib.c3 * 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>
26 .product_desc = "GRLIB GRUSBHC EHCI",
76 struct ehci_hcd *ehci = NULL; in ehci_hcd_grlib_probe() local
85 dev_dbg(&op->dev, "initializing GRUSBHC EHCI USB Controller\n"); in ehci_hcd_grlib_probe()
94 "GRUSBHC EHCI USB"); 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()
[all …]
Dehci-mv.c20 #include "ehci.h"
30 /* Which mode does this ehci running OTG/Host ? */
70 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in mv_ehci_reset() local
75 dev_err(dev, "Can not find private ehci data\n"); in mv_ehci_reset()
86 status = ehci_readl(ehci, &ehci->regs->port_status[0]); in mv_ehci_reset()
88 ehci_writel(ehci, status, &ehci->regs->port_status[0]); in mv_ehci_reset()
90 ehci_writel(ehci, status, &ehci->regs->port_status[0]); in mv_ehci_reset()
107 struct ehci_hcd *ehci; in mv_ehci_probe() local
172 ehci = hcd_to_ehci(hcd); in mv_ehci_probe()
173 ehci->caps = (struct ehci_caps __iomem *) ehci_mv->cap_regs; in mv_ehci_probe()
[all …]
DMakefile37 obj-$(CONFIG_USB_EHCI_HCD) += ehci-hcd.o
38 obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o
39 obj-$(CONFIG_USB_EHCI_HCD_PLATFORM) += ehci-platform.o
40 obj-$(CONFIG_USB_EHCI_HCD_NPCM7XX) += ehci-npcm7xx.o
41 obj-$(CONFIG_USB_EHCI_HCD_OMAP) += ehci-omap.o
42 obj-$(CONFIG_USB_EHCI_HCD_ORION) += ehci-orion.o
43 obj-$(CONFIG_USB_EHCI_HCD_SPEAR) += ehci-spear.o
44 obj-$(CONFIG_USB_EHCI_HCD_STI) += ehci-st.o
45 obj-$(CONFIG_USB_EHCI_EXYNOS) += ehci-exynos.o
46 obj-$(CONFIG_USB_EHCI_HCD_AT91) += ehci-atmel.o
[all …]
Dehci-xilinx-of.c3 * EHCI HCD (Host Controller Driver) for USB.
5 * Bus Glue for Xilinx EHCI core on the of_platform bus
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>
62 .product_desc = "OF EHCI",
122 struct ehci_hcd *ehci; in ehci_hcd_xilinx_of_probe() local
159 ehci = hcd_to_ehci(hcd); in ehci_hcd_xilinx_of_probe()
164 ehci->big_endian_mmio = 1; in ehci_hcd_xilinx_of_probe()
165 ehci->big_endian_desc = 1; in ehci_hcd_xilinx_of_probe()
171 ehci_dbg(ehci, "USB host controller supports FS devices\n"); in ehci_hcd_xilinx_of_probe()
[all …]
Dehci-ps3.c3 * PS3 EHCI Host Controller driver
12 static void ps3_ehci_setup_insnreg(struct ehci_hcd *ehci) in ps3_ehci_setup_insnreg() argument
22 /* PS3 EHCI HC errata fix 316 - The PS3 EHCI HC will reset its in ps3_ehci_setup_insnreg()
31 writel_be(0x01000020, (void __iomem *)ehci->regs + in ps3_ehci_setup_insnreg()
36 writel_be(0x00000001, (void __iomem *)ehci->regs + in ps3_ehci_setup_insnreg()
43 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ps3_ehci_hc_reset() local
45 ehci->big_endian_mmio = 1; in ps3_ehci_hc_reset()
46 ehci->caps = hcd->regs; in ps3_ehci_hc_reset()
52 ps3_ehci_setup_insnreg(ehci); in ps3_ehci_hc_reset()
59 .product_desc = "PS3 EHCI Host Controller",
[all …]
/linux-6.12.1/Documentation/devicetree/bindings/usb/
Dgeneric-ehci.yaml4 $id: http://devicetree.org/schemas/usb/generic-ehci.yaml#
7 title: USB EHCI Controller
19 const: ibm,usb-ehci-440epx
30 - allwinner,sun4i-a10-ehci
31 - allwinner,sun50i-a64-ehci
32 - allwinner,sun50i-h6-ehci
33 - allwinner,sun50i-h616-ehci
34 - allwinner,sun5i-a13-ehci
35 - allwinner,sun6i-a31-ehci
36 - allwinner,sun7i-a20-ehci
[all …]
/linux-6.12.1/drivers/usb/chipidea/
Dhost.c18 #include "../host/ehci.h"
39 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_ci_portpower() local
40 struct ehci_ci_priv *priv = (struct ehci_ci_priv *)ehci->priv; in ehci_ci_portpower()
44 int port = HCS_N_PORTS(ehci->hcs_params); in ehci_ci_portpower()
87 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_ci_reset() local
94 ehci->need_io_watchdog = 0; in ehci_ci_reset()
122 struct ehci_hcd *ehci; in host_start() local
148 ehci = hcd_to_ehci(hcd); in host_start()
149 ehci->caps = ci->hw_bank.cap; in host_start()
150 ehci->has_hostpc = ci->hw_bank.lpm; in host_start()
[all …]
Dci_hdrc_tegra.c22 #include "../host/ehci.h"
77 .compatible = "nvidia,tegra20-ehci",
80 .compatible = "nvidia,tegra30-ehci",
108 dev_err(dev, "can't get ehci reset: %pe\n", rst); in tegra_usb_reset_controller()
156 struct ehci_hcd *ehci; in tegra_usb_notify_event() local
161 ehci = hcd_to_ehci(ci->hcd); in tegra_usb_notify_event()
162 ehci->has_tdi_phy_lpm = false; in tegra_usb_notify_event()
163 ehci_writel(ehci, usb->soc->txfifothresh << 16, in tegra_usb_notify_event()
164 &ehci->regs->txfill_tuning); in tegra_usb_notify_event()
172 static int tegra_usb_internal_port_reset(struct ehci_hcd *ehci, in tegra_usb_internal_port_reset() argument
[all …]
/linux-6.12.1/Documentation/usb/
Dehci.rst2 EHCI driver
7 The EHCI driver is used to talk to high speed USB 2.0 devices using
19 into an EHCI controller, they are given to a USB 1.1 "companion"
22 interact with the EHCI controller through a "Transaction Translator"
27 of EHCI from (in alphabetical order): Intel, NEC, Philips, and VIA.
28 Other EHCI implementations are becoming available from other vendors;
38 Note that USB 2.0 support involves more than just EHCI. It requires
68 since EHCI represents these with a different data structure. So for now,
79 The EHCI root hub code hands off USB 1.1 devices to its companion
82 just because the EHCI driver is also present.
[all …]
/linux-6.12.1/Documentation/devicetree/bindings/mfd/
Domap-usb-host.txt18 "ehci-phy",
19 "ehci-tll",
20 "ehci-hsic",
66 The OMAP HS USB Host subsystem contains EHCI and OHCI controllers.
67 See Documentation/devicetree/bindings/usb/generic-ehci.yaml and
87 usbhsehci: ehci@4a064c00 {
88 compatible = "ti,ehci-omap";
96 port1-mode = "ehci-phy";
97 port2-mode = "ehci-tll";
98 port3-mode = "ehci-phy";

12345678910>>...16