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"
42 default y if ARCH_ROCKCHIP
45 Support USB2/3 functionality in simple SoC integrations with
46 USB controller based on the DesignWare USB3 IP Core.
48 config USB_XHCI_EXYNOS
49 bool "Support for Samsung Exynos5 family on-chip xHCI USB controller"
50 depends on ARCH_EXYNOS5
53 Enables support for he on-chip xHCI controller on Samsung Exynos5
57 bool "Support for MediaTek on-chip xHCI USB controller"
58 depends on ARCH_MEDIATEK || SOC_MT7621
60 Enables support for the on-chip xHCI controller on MediaTek SoCs.
63 bool "MVEBU USB 3.0 support"
68 Choose this option to add support for USB 3.0 driver on mvebu
69 SoCs, which includes Armada8K, Armada3700 and other Armada
72 config USB_XHCI_OCTEON
73 bool "Support for Marvell Octeon family on-chip xHCI USB controller"
74 depends on ARCH_OCTEON
77 Enables support for the on-chip xHCI controller on Marvell Octeon
78 family SoCs. This is a driver for the dwc3 to provide the glue logic
79 to configure the controller.
82 bool "Support for TI OMAP family xHCI USB controller"
83 depends on ARCH_OMAP2PLUS
85 Enables support for the on-chip xHCI controller found on some TI SoC
86 families. Note that some families have multiple contollers while
87 others only have something such as DesignWare-based controllers.
88 Consult the SoC documentation to determine if this option applies
92 bool "Support for PCI-based xHCI USB controller"
96 Enables support for the PCI-based xHCI controller.
99 bool "Renesas RCar USB 3.0 support"
101 depends on ARCH_RMOBILE
103 Choose this option to add support for USB 3.0 driver on Renesas
107 bool "Support for STMicroelectronics STiH407 family on-chip xHCI USB controller"
111 Enables support for the on-chip xHCI controller on STMicroelectronics
112 STiH407 family SoCs. This is a driver for the dwc3 to provide the glue logic
113 to configure the controller.
115 config USB_XHCI_DRA7XX_INDEX
116 int "DRA7XX xHCI USB index"
121 Select the DRA7XX xHCI USB index.
122 Current supported values: 0, 1.
125 bool "Support for NXP Layerscape on-chip xHCI USB controller"
126 default y if ARCH_LS1021A || FSL_LSCH3 || FSL_LSCH2
127 depends on !SPL_NO_USB
129 Enables support for the on-chip xHCI controller on NXP Layerscape SoCs.
132 bool "Broadcom USB3 Host XHCI controller"
135 USB controller based on the Broadcom USB3 IP Core.
136 Supports USB2/3 functionality.
140 config EHCI_DESC_BIG_ENDIAN
143 config EHCI_MMIO_BIG_ENDIAN
147 bool "EHCI HCD (USB 2.0) support"
148 default y if ARCH_MX5 || ARCH_MX6
149 depends on DM && OF_CONTROL
151 select EHCI_DESC_BIG_ENDIAN if SYS_BIG_ENDIAN
152 select EHCI_MMIO_BIG_ENDIAN if SYS_BIG_ENDIAN
154 The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
155 "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
156 If your USB host controller supports USB 2.0, you will likely want to
157 configure this Host Controller Driver.
159 EHCI controllers are packaged with "companion" host controllers (OHCI
160 or UHCI) to handle USB 1.1 devices connected to root hub ports. Ports
161 will connect to EHCI if the device is high speed, otherwise they
162 connect to a companion controller. If you configure EHCI, you should
163 probably configure the OHCI (for NEC and some other vendors) USB Host
164 Controller Driver or UHCI (for Via motherboards) Host Controller
167 You may want to read <file:Documentation/usb/ehci.txt>.
171 config USB_EHCI_IS_TDI
174 config USB_EHCI_ATMEL
175 bool "Support for Atmel on-chip EHCI USB controller"
179 Enables support for the on-chip EHCI controller on Atmel chips.
181 config USB_EHCI_EXYNOS
182 bool "Support for Samsung Exynos EHCI USB controller"
183 depends on ARCH_EXYNOS
186 Enables support for the on-chip EHCI controller on Samsung Exynos
189 config USB_EHCI_MARVELL
190 bool "Support for Marvell on-chip EHCI USB controller"
191 depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X
193 select USB_EHCI_IS_TDI if !ARM64
194 select USB_EHCI_IS_TDI if ALLEYCAT_5
196 Enables support for the on-chip EHCI controller on MVEBU SoCs.
199 bool "Support for i.MX5 on-chip EHCI USB controller"
202 Enables support for the on-chip EHCI controller on i.MX5 SoCs.
205 bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller"
206 depends on ARCH_MX6 || ARCH_MX7ULP || ARCH_IMXRT
207 select EHCI_HCD_INIT_AFTER_RESET
210 Enables support for the on-chip EHCI controller on i.MX6 SoCs.
213 bool "Support for i.MX7 on-chip EHCI USB controller"
214 depends on ARCH_MX7 || IMX8M
215 select EHCI_HCD_INIT_AFTER_RESET if ARCH_MX7
217 select NOP_PHY if IMX8M
220 Enables support for the on-chip EHCI controller on i.MX7 SoCs.
223 bool "Support for i.MX23/i.MX28 EHCI USB controller"
224 depends on ARCH_MX23 || ARCH_MX28
226 select USB_EHCI_IS_TDI
228 Enables support for the on-chip EHCI controller on i.MX23 and
232 bool "Support for Nuvoton NPCM on-chip EHCI USB controller"
236 Enables support for the on-chip EHCI controller on
240 bool "Support for OMAP3+ on-chip EHCI USB controller"
241 depends on ARCH_OMAP2PLUS
246 Enables support for the on-chip EHCI controller on OMAP3 and later
250 bool "Support for Vybrid on-chip EHCI USB controller"
251 depends on ARCH_VF610
254 Enables support for the on-chip EHCI controller on Vybrid SoCs.
256 if USB_EHCI_MX6 || USB_EHCI_MX7
258 config MXC_USB_OTG_HACTIVE
259 bool "USB Power pin high active"
261 Set the USB Power pin polarity to be high active (PWR_POL)
266 bool "Support for Qualcomm on-chip EHCI USB controller"
268 select USB_ULPI_VIEWPORT
269 select MSM8916_USB_PHY
271 Enables support for the on-chip EHCI controller on Qualcomm
275 bool "Support for PCI-based EHCI USB controller"
278 Enables support for the PCI-based EHCI controller.
280 config USB_EHCI_TEGRA
281 bool "Support for NVIDIA Tegra on-chip EHCI USB controller"
282 depends on ARCH_TEGRA
283 select USB_EHCI_IS_TDI
285 Enable support for Tegra on-chip EHCI USB controller
288 bool "Support for Xilinx Zynq on-chip EHCI USB controller"
289 default y if ARCH_ZYNQ
290 select USB_EHCI_IS_TDI
292 Enable support for Zynq on-chip EHCI USB controller
294 config USB_EHCI_GENERIC
295 bool "Support for generic EHCI USB controller"
299 Enables support for generic EHCI controller.
301 config EHCI_HCD_INIT_AFTER_RESET
305 bool "Support for FSL on-chip EHCI USB controller"
306 select EHCI_HCD_INIT_AFTER_RESET
307 select SYS_FSL_USB_INTERNAL_UTMI_PHY if MPC85xx && \
308 !(ARCH_B4860 || ARCH_B4420 || ARCH_P4080 || ARCH_P1020 || ARCH_P2020)
310 Enables support for the on-chip EHCI controller on FSL chips.
312 config SYS_FSL_USB_INTERNAL_UTMI_PHY
314 depends on USB_EHCI_FSL
316 config USB_EHCI_TXFIFO_THRESH
318 depends on USB_EHCI_TEGRA
321 This parameter affects a TXFILLTUNING field that controls how much
322 data is sent to the latency fifo before it is sent to the wire.
323 Without this parameter, the default (2) causes occasional Data Buffer
324 Errors in OUT packets depending on the buffer address and size.
331 config SYS_USB_OHCI_CPU_INIT
335 bool "OHCI HCD (USB 1.1) support"
336 depends on DM && OF_CONTROL
340 The Open Host Controller Interface (OHCI) is a standard for accessing
341 USB 1.1 host controller hardware. It does more in hardware than Intel's
342 UHCI specification. If your USB host controller follows the OHCI spec,
343 say Y. On most non-x86 systems, and on x86 hardware that's not using a
344 USB controller from Intel or VIA, this is appropriate. If your host
345 controller doesn't use PCI, this is probably appropriate. For a PCI
346 based system where you're not sure, the "lspci -v" entry will list the
347 right "prog-if" for your USB controller(s): EHCI, OHCI, or UHCI.
352 bool "Support for PCI-based OHCI USB controller"
355 Enables support for the PCI-based OHCI controller.
357 config USB_OHCI_GENERIC
358 bool "Support for generic OHCI USB controller"
361 Enables support for generic OHCI controller.
363 config USB_OHCI_DA8XX
364 bool "Support for da850 OHCI USB controller"
366 Enable support for the da850 USB controller.
369 bool "Support for Nuvoton NPCM on-chip OHCI USB controller"
373 Enables support for the on-chip OHCI controller on
378 config SYS_USB_OHCI_SLOT_NAME
379 string "Display name for the OHCI controller"
380 depends on USB_OHCI_NEW && !DM_USB
382 config SYS_OHCI_SWAP_REG_ACCESS
383 bool "Perform byte swapping on OHCI controller register accesses"
384 depends on USB_OHCI_NEW
387 bool "UHCI HCD (most Intel and VIA) support"
390 The Universal Host Controller Interface is a standard by Intel for
391 accessing the USB hardware in the PC (which is also called the USB
392 host controller). If your USB host controller conforms to this
393 standard, you may want to say Y, but see below. All recent boards
394 with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
395 i810, i820) conform to this standard. Also all VIA PCI chipsets
396 (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
397 133) and LEON/GRLIB SoCs with the GRUSBHC controller.
405 bool "DesignWare USB2 Core support"
406 depends on DM && OF_CONTROL
409 The DesignWare USB 2.0 controller is compliant with the
410 USB-Implementers Forum (USB-IF) USB 2.0 specifications.
411 Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps)
412 operation is compliant to the controller Supplement. If you want to
413 enable this controller in host mode, say Y.
416 config USB_DWC2_BUFFER_SIZE
417 int "Data buffer size in kB"
420 By default 64 kB buffer is used but if amount of RAM avaialble on
421 the target is not enough to accommodate allocation of buffer of
422 that size it is possible to shrink it. Smaller sizes should be fine
423 because larger transactions could be split in smaller ones.
427 config USB_R8A66597_HCD
428 bool "Renesas R8A66597 USB Core support"
429 depends on DM && OF_CONTROL
432 This enables support for the on-chip Renesas R8A66597 USB 2.0
433 controller, present in various RZ and SH SoCs.
436 bool "AT91 OHCI USB support"
438 select SYS_USB_OHCI_CPU_INIT
442 prompt "Clock for OHCI"
445 config USB_ATMEL_CLK_SEL_PLLB
448 config USB_ATMEL_CLK_SEL_UPLL
453 config USB_OHCI_LPC32XX
454 bool "LPC32xx USB OHCI support"
455 depends on ARCH_LPC32XX
456 select SYS_USB_OHCI_CPU_INIT
459 config USB_MAX_CONTROLLER_COUNT
460 int "Maximum number of USB host controllers"
461 depends on USB_EHCI_FSL || USB_XHCI_FSL || \
462 (SPL_USB_HOST && !DM_SPL_USB) || (USB_HOST && !DM_USB)