2 # USB Host Controller Drivers
4 comment "USB Host Controller Drivers"
10 Enable access to USB (Universal Serial Bus) host devices so that
11 SPL can load U-Boot from a connected USB peripheral, such as a USB
12 flash stick. While USB takes a little longer to start up than most
13 buses, it is very flexible since many different types of storage
14 device can be attached.
17 bool "Support USB host drivers"
20 For detailed help see USB_HOST Kconfig symbol. This option enables
21 the drivers in drivers/usb/host as part of an SPL build.
24 bool "xHCI HCD (USB 3.0) support"
25 depends on DM && OF_CONTROL
28 The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
29 "SuperSpeed" host controller hardware.
34 bool "DesignWare USB3 DRD Core Support"
36 Say Y or if your system has a Dual Role SuperSpeed
37 USB controller based on the DesignWare USB3 IP Core.
39 config USB_XHCI_DWC3_OF_SIMPLE
40 bool "DesignWare USB3 DRD Generic OF Simple Glue Layer"
44 Support USB2/3 functionality in simple SoC integrations with
45 USB controller based on the DesignWare USB3 IP Core.
47 config USB_XHCI_EXYNOS
48 bool "Support for Samsung Exynos5 family on-chip xHCI USB controller"
49 depends on ARCH_EXYNOS5
52 Enables support for he on-chip xHCI controller on Samsung Exynos5
56 bool "Support for MediaTek on-chip xHCI USB controller"
57 depends on ARCH_MEDIATEK || SOC_MT7621
59 Enables support for the on-chip xHCI controller on MediaTek SoCs.
62 bool "MVEBU USB 3.0 support"
67 Choose this option to add support for USB 3.0 driver on mvebu
68 SoCs, which includes Armada8K, Armada3700 and other Armada
71 config USB_XHCI_OCTEON
72 bool "Support for Marvell Octeon family on-chip xHCI USB controller"
73 depends on ARCH_OCTEON
76 Enables support for the on-chip xHCI controller on Marvell Octeon
77 family SoCs. This is a driver for the dwc3 to provide the glue logic
78 to configure the controller.
81 bool "Support for TI OMAP family xHCI USB controller"
82 depends on ARCH_OMAP2PLUS
84 Enables support for the on-chip xHCI controller found on some TI SoC
85 families. Note that some families have multiple contollers while
86 others only have something such as DesignWare-based controllers.
87 Consult the SoC documentation to determine if this option applies
91 bool "Support for PCI-based xHCI USB controller"
92 depends on DM_USB && PCI
95 Enables support for the PCI-based xHCI controller.
98 bool "Renesas RCar USB 3.0 support"
100 depends on ARCH_RMOBILE
102 Choose this option to add support for USB 3.0 driver on Renesas
106 bool "Support for STMicroelectronics STiH407 family on-chip xHCI USB controller"
110 Enables support for the on-chip xHCI controller on STMicroelectronics
111 STiH407 family SoCs. This is a driver for the dwc3 to provide the glue logic
112 to configure the controller.
114 config USB_XHCI_DRA7XX_INDEX
115 int "DRA7XX xHCI USB index"
120 Select the DRA7XX xHCI USB index.
121 Current supported values: 0, 1.
124 bool "Support for NXP Layerscape on-chip xHCI USB controller"
125 default y if ARCH_LS1021A || FSL_LSCH3 || FSL_LSCH2
126 depends on !SPL_NO_USB
128 Enables support for the on-chip xHCI controller on NXP Layerscape SoCs.
131 bool "Broadcom USB3 Host XHCI controller"
134 USB controller based on the Broadcom USB3 IP Core.
135 Supports USB2/3 functionality.
139 config EHCI_DESC_BIG_ENDIAN
142 config EHCI_MMIO_BIG_ENDIAN
146 bool "EHCI HCD (USB 2.0) support"
147 default y if ARCH_MX5 || ARCH_MX6
148 depends on DM && OF_CONTROL
150 select EHCI_DESC_BIG_ENDIAN if SYS_BIG_ENDIAN
151 select EHCI_MMIO_BIG_ENDIAN if SYS_BIG_ENDIAN
153 The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
154 "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
155 If your USB host controller supports USB 2.0, you will likely want to
156 configure this Host Controller Driver.
158 EHCI controllers are packaged with "companion" host controllers (OHCI
159 or UHCI) to handle USB 1.1 devices connected to root hub ports. Ports
160 will connect to EHCI if the device is high speed, otherwise they
161 connect to a companion controller. If you configure EHCI, you should
162 probably configure the OHCI (for NEC and some other vendors) USB Host
163 Controller Driver or UHCI (for Via motherboards) Host Controller
166 You may want to read <file:Documentation/usb/ehci.txt>.
170 config USB_EHCI_IS_TDI
173 config USB_EHCI_ATMEL
174 bool "Support for Atmel on-chip EHCI USB controller"
178 Enables support for the on-chip EHCI controller on Atmel chips.
180 config USB_EHCI_EXYNOS
181 bool "Support for Samsung Exynos EHCI USB controller"
182 depends on ARCH_EXYNOS
185 Enables support for the on-chip EHCI controller on Samsung Exynos
188 config USB_EHCI_MARVELL
189 bool "Support for Marvell on-chip EHCI USB controller"
190 depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X
192 select USB_EHCI_IS_TDI if !ARM64
193 select USB_EHCI_IS_TDI if ALLEYCAT_5
195 Enables support for the on-chip EHCI controller on MVEBU SoCs.
198 bool "Support for i.MX5 on-chip EHCI USB controller"
201 Enables support for the on-chip EHCI controller on i.MX5 SoCs.
204 bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller"
205 depends on ARCH_MX6 || ARCH_MX7ULP || ARCH_IMXRT
206 select EHCI_HCD_INIT_AFTER_RESET
209 Enables support for the on-chip EHCI controller on i.MX6 SoCs.
212 bool "Support for i.MX7 on-chip EHCI USB controller"
213 depends on ARCH_MX7 || IMX8M || IMX93
214 select EHCI_HCD_INIT_AFTER_RESET if ARCH_MX7
215 select PHY if IMX8M || IMX93
216 select NOP_PHY if IMX8M || IMX93
219 Enables support for the on-chip EHCI controller on i.MX7 SoCs.
222 bool "Support for i.MX23/i.MX28 EHCI USB controller"
223 depends on ARCH_MX23 || ARCH_MX28
225 select USB_EHCI_IS_TDI
227 Enables support for the on-chip EHCI controller on i.MX23 and
231 bool "Support for Nuvoton NPCM on-chip EHCI USB controller"
234 Enables support for the on-chip EHCI controller on
238 bool "Support for OMAP3+ on-chip EHCI USB controller"
239 depends on ARCH_OMAP2PLUS
244 Enables support for the on-chip EHCI controller on OMAP3 and later
248 bool "Support for Vybrid on-chip EHCI USB controller"
249 depends on ARCH_VF610
252 Enables support for the on-chip EHCI controller on Vybrid SoCs.
254 if USB_EHCI_MX6 || USB_EHCI_MX7
256 config MXC_USB_OTG_HACTIVE
257 bool "USB Power pin high active"
259 Set the USB Power pin polarity to be high active (PWR_POL)
264 bool "Support for Qualcomm on-chip EHCI USB controller"
266 select USB_ULPI_VIEWPORT
267 select MSM8916_USB_PHY
269 Enables support for the on-chip EHCI controller on Qualcomm
273 bool "Support for PCI-based EHCI USB controller"
276 Enables support for the PCI-based EHCI controller.
278 config USB_EHCI_TEGRA
279 bool "Support for NVIDIA Tegra on-chip EHCI USB controller"
280 depends on ARCH_TEGRA
281 select USB_EHCI_IS_TDI
283 Enable support for Tegra on-chip EHCI USB controller
286 bool "Support for Xilinx Zynq on-chip EHCI USB controller"
287 default y if ARCH_ZYNQ
288 select USB_EHCI_IS_TDI
290 Enable support for Zynq on-chip EHCI USB controller
292 config USB_EHCI_GENERIC
293 bool "Support for generic EHCI USB controller"
297 Enables support for generic EHCI controller.
299 config EHCI_HCD_INIT_AFTER_RESET
303 bool "Support for FSL on-chip EHCI USB controller"
304 select EHCI_HCD_INIT_AFTER_RESET
305 select SYS_FSL_USB_INTERNAL_UTMI_PHY if MPC85xx && \
306 !(ARCH_B4860 || ARCH_B4420 || ARCH_P4080 || ARCH_P1020 || ARCH_P2020)
308 Enables support for the on-chip EHCI controller on FSL chips.
310 config SYS_FSL_USB_INTERNAL_UTMI_PHY
312 depends on USB_EHCI_FSL
314 config USB_EHCI_TXFIFO_THRESH
316 depends on USB_EHCI_TEGRA
319 This parameter affects a TXFILLTUNING field that controls how much
320 data is sent to the latency fifo before it is sent to the wire.
321 Without this parameter, the default (2) causes occasional Data Buffer
322 Errors in OUT packets depending on the buffer address and size.
329 config SYS_USB_OHCI_CPU_INIT
333 bool "OHCI HCD (USB 1.1) support"
334 depends on DM && OF_CONTROL
338 The Open Host Controller Interface (OHCI) is a standard for accessing
339 USB 1.1 host controller hardware. It does more in hardware than Intel's
340 UHCI specification. If your USB host controller follows the OHCI spec,
341 say Y. On most non-x86 systems, and on x86 hardware that's not using a
342 USB controller from Intel or VIA, this is appropriate. If your host
343 controller doesn't use PCI, this is probably appropriate. For a PCI
344 based system where you're not sure, the "lspci -v" entry will list the
345 right "prog-if" for your USB controller(s): EHCI, OHCI, or UHCI.
350 bool "Support for PCI-based OHCI USB controller"
353 Enables support for the PCI-based OHCI controller.
355 config USB_OHCI_GENERIC
356 bool "Support for generic OHCI USB controller"
359 Enables support for generic OHCI controller.
361 config USB_OHCI_DA8XX
362 bool "Support for da850 OHCI USB controller"
364 Enable support for the da850 USB controller.
367 bool "Support for Nuvoton NPCM on-chip OHCI USB controller"
370 Enables support for the on-chip OHCI controller on
375 config SYS_USB_OHCI_SLOT_NAME
376 string "Display name for the OHCI controller"
377 depends on USB_OHCI_NEW && !DM_USB
379 config SYS_OHCI_SWAP_REG_ACCESS
380 bool "Perform byte swapping on OHCI controller register accesses"
381 depends on USB_OHCI_NEW
384 bool "UHCI HCD (most Intel and VIA) support"
387 The Universal Host Controller Interface is a standard by Intel for
388 accessing the USB hardware in the PC (which is also called the USB
389 host controller). If your USB host controller conforms to this
390 standard, you may want to say Y, but see below. All recent boards
391 with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
392 i810, i820) conform to this standard. Also all VIA PCI chipsets
393 (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
394 133) and LEON/GRLIB SoCs with the GRUSBHC controller.
402 bool "DesignWare USB2 Core support"
403 depends on DM && OF_CONTROL
406 The DesignWare USB 2.0 controller is compliant with the
407 USB-Implementers Forum (USB-IF) USB 2.0 specifications.
408 Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps)
409 operation is compliant to the controller Supplement. If you want to
410 enable this controller in host mode, say Y.
413 config USB_DWC2_BUFFER_SIZE
414 int "Data buffer size in kB"
417 By default 64 kB buffer is used but if amount of RAM avaialble on
418 the target is not enough to accommodate allocation of buffer of
419 that size it is possible to shrink it. Smaller sizes should be fine
420 because larger transactions could be split in smaller ones.
424 config USB_R8A66597_HCD
425 bool "Renesas R8A66597 USB Core support"
426 depends on DM && OF_CONTROL
429 This enables support for the on-chip Renesas R8A66597 USB 2.0
430 controller, present in various RZ and SH SoCs.
433 bool "AT91 OHCI USB support"
435 select SYS_USB_OHCI_CPU_INIT
439 prompt "Clock for OHCI"
442 config USB_ATMEL_CLK_SEL_PLLB
445 config USB_ATMEL_CLK_SEL_UPLL
450 config USB_OHCI_LPC32XX
451 bool "LPC32xx USB OHCI support"
452 depends on ARCH_LPC32XX
453 select SYS_USB_OHCI_CPU_INIT
456 config USB_MAX_CONTROLLER_COUNT
457 int "Maximum number of USB host controllers"
458 depends on USB_EHCI_FSL || USB_XHCI_FSL || \
459 (SPL_USB_HOST && !DM_SPL_USB) || (USB_HOST && !DM_USB)