]> git.ipfire.org Git - thirdparty/u-boot.git/blob - drivers/usb/host/Kconfig
usb: ehci-mx6: Add i.MX93 support
[thirdparty/u-boot.git] / drivers / usb / host / Kconfig
1 #
2 # USB Host Controller Drivers
3 #
4 comment "USB Host Controller Drivers"
5
6 config USB_HOST
7 bool
8 select DM_USB
9 help
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.
15
16 config SPL_USB_HOST
17 bool "Support USB host drivers"
18 depends on SPL
19 help
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.
22
23 config USB_XHCI_HCD
24 bool "xHCI HCD (USB 3.0) support"
25 depends on DM && OF_CONTROL
26 select USB_HOST
27 ---help---
28 The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
29 "SuperSpeed" host controller hardware.
30
31 if USB_XHCI_HCD
32
33 config USB_XHCI_DWC3
34 bool "DesignWare USB3 DRD Core Support"
35 help
36 Say Y or if your system has a Dual Role SuperSpeed
37 USB controller based on the DesignWare USB3 IP Core.
38
39 config USB_XHCI_DWC3_OF_SIMPLE
40 bool "DesignWare USB3 DRD Generic OF Simple Glue Layer"
41 depends on DM_USB
42 default y if DRA7XX
43 help
44 Support USB2/3 functionality in simple SoC integrations with
45 USB controller based on the DesignWare USB3 IP Core.
46
47 config USB_XHCI_EXYNOS
48 bool "Support for Samsung Exynos5 family on-chip xHCI USB controller"
49 depends on ARCH_EXYNOS5
50 default y
51 help
52 Enables support for he on-chip xHCI controller on Samsung Exynos5
53 SoCs.
54
55 config USB_XHCI_MTK
56 bool "Support for MediaTek on-chip xHCI USB controller"
57 depends on ARCH_MEDIATEK || SOC_MT7621
58 help
59 Enables support for the on-chip xHCI controller on MediaTek SoCs.
60
61 config USB_XHCI_MVEBU
62 bool "MVEBU USB 3.0 support"
63 default y
64 depends on ARCH_MVEBU
65 select DM_REGULATOR
66 help
67 Choose this option to add support for USB 3.0 driver on mvebu
68 SoCs, which includes Armada8K, Armada3700 and other Armada
69 family SoCs.
70
71 config USB_XHCI_OCTEON
72 bool "Support for Marvell Octeon family on-chip xHCI USB controller"
73 depends on ARCH_OCTEON
74 default y
75 help
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.
79
80 config USB_XHCI_OMAP
81 bool "Support for TI OMAP family xHCI USB controller"
82 depends on ARCH_OMAP2PLUS
83 help
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
88 to your hardware.
89
90 config USB_XHCI_PCI
91 bool "Support for PCI-based xHCI USB controller"
92 depends on DM_USB && PCI
93 default y if X86
94 help
95 Enables support for the PCI-based xHCI controller.
96
97 config USB_XHCI_RCAR
98 bool "Renesas RCar USB 3.0 support"
99 default y
100 depends on ARCH_RMOBILE
101 help
102 Choose this option to add support for USB 3.0 driver on Renesas
103 RCar Gen3 SoCs.
104
105 config USB_XHCI_STI
106 bool "Support for STMicroelectronics STiH407 family on-chip xHCI USB controller"
107 depends on ARCH_STI
108 default y
109 help
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.
113
114 config USB_XHCI_DRA7XX_INDEX
115 int "DRA7XX xHCI USB index"
116 range 0 1
117 default 0
118 depends on DRA7XX
119 help
120 Select the DRA7XX xHCI USB index.
121 Current supported values: 0, 1.
122
123 config USB_XHCI_FSL
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
127 help
128 Enables support for the on-chip xHCI controller on NXP Layerscape SoCs.
129
130 config USB_XHCI_BRCM
131 bool "Broadcom USB3 Host XHCI controller"
132 depends on DM_USB
133 help
134 USB controller based on the Broadcom USB3 IP Core.
135 Supports USB2/3 functionality.
136
137 endif # USB_XHCI_HCD
138
139 config EHCI_DESC_BIG_ENDIAN
140 bool
141
142 config EHCI_MMIO_BIG_ENDIAN
143 bool
144
145 config USB_EHCI_HCD
146 bool "EHCI HCD (USB 2.0) support"
147 default y if ARCH_MX5 || ARCH_MX6
148 depends on DM && OF_CONTROL
149 select USB_HOST
150 select EHCI_DESC_BIG_ENDIAN if SYS_BIG_ENDIAN
151 select EHCI_MMIO_BIG_ENDIAN if SYS_BIG_ENDIAN
152 ---help---
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.
157
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
164 Driver too.
165
166 You may want to read <file:Documentation/usb/ehci.txt>.
167
168 if USB_EHCI_HCD
169
170 config USB_EHCI_IS_TDI
171 bool
172
173 config USB_EHCI_ATMEL
174 bool "Support for Atmel on-chip EHCI USB controller"
175 depends on ARCH_AT91
176 default y
177 ---help---
178 Enables support for the on-chip EHCI controller on Atmel chips.
179
180 config USB_EHCI_EXYNOS
181 bool "Support for Samsung Exynos EHCI USB controller"
182 depends on ARCH_EXYNOS
183 default y
184 ---help---
185 Enables support for the on-chip EHCI controller on Samsung Exynos
186 SoCs.
187
188 config USB_EHCI_MARVELL
189 bool "Support for Marvell on-chip EHCI USB controller"
190 depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X
191 default y
192 select USB_EHCI_IS_TDI if !ARM64
193 select USB_EHCI_IS_TDI if ALLEYCAT_5
194 ---help---
195 Enables support for the on-chip EHCI controller on MVEBU SoCs.
196
197 config USB_EHCI_MX5
198 bool "Support for i.MX5 on-chip EHCI USB controller"
199 depends on ARCH_MX5
200 help
201 Enables support for the on-chip EHCI controller on i.MX5 SoCs.
202
203 config USB_EHCI_MX6
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
207 default y
208 ---help---
209 Enables support for the on-chip EHCI controller on i.MX6 SoCs.
210
211 config USB_EHCI_MX7
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
217 default y
218 ---help---
219 Enables support for the on-chip EHCI controller on i.MX7 SoCs.
220
221 config USB_EHCI_MXS
222 bool "Support for i.MX23/i.MX28 EHCI USB controller"
223 depends on ARCH_MX23 || ARCH_MX28
224 default y
225 select USB_EHCI_IS_TDI
226 help
227 Enables support for the on-chip EHCI controller on i.MX23 and
228 i.MX28 SoCs.
229
230 config USB_EHCI_NPCM
231 bool "Support for Nuvoton NPCM on-chip EHCI USB controller"
232 depends on ARCH_NPCM
233 ---help---
234 Enables support for the on-chip EHCI controller on
235 Nuvoton NPCM chips.
236
237 config USB_EHCI_OMAP
238 bool "Support for OMAP3+ on-chip EHCI USB controller"
239 depends on ARCH_OMAP2PLUS
240 select PHY
241 imply NOP_PHY
242 default y
243 ---help---
244 Enables support for the on-chip EHCI controller on OMAP3 and later
245 SoCs.
246
247 config USB_EHCI_VF
248 bool "Support for Vybrid on-chip EHCI USB controller"
249 depends on ARCH_VF610
250 default y
251 help
252 Enables support for the on-chip EHCI controller on Vybrid SoCs.
253
254 if USB_EHCI_MX6 || USB_EHCI_MX7
255
256 config MXC_USB_OTG_HACTIVE
257 bool "USB Power pin high active"
258 ---help---
259 Set the USB Power pin polarity to be high active (PWR_POL)
260
261 endif
262
263 config USB_EHCI_MSM
264 bool "Support for Qualcomm on-chip EHCI USB controller"
265 depends on DM_USB
266 select USB_ULPI_VIEWPORT
267 select MSM8916_USB_PHY
268 ---help---
269 Enables support for the on-chip EHCI controller on Qualcomm
270 Snapdragon SoCs.
271
272 config USB_EHCI_PCI
273 bool "Support for PCI-based EHCI USB controller"
274 default y if X86
275 help
276 Enables support for the PCI-based EHCI controller.
277
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
282 ---help---
283 Enable support for Tegra on-chip EHCI USB controller
284
285 config USB_EHCI_ZYNQ
286 bool "Support for Xilinx Zynq on-chip EHCI USB controller"
287 default y if ARCH_ZYNQ
288 select USB_EHCI_IS_TDI
289 ---help---
290 Enable support for Zynq on-chip EHCI USB controller
291
292 config USB_EHCI_GENERIC
293 bool "Support for generic EHCI USB controller"
294 depends on DM_USB
295 default ARCH_SUNXI
296 ---help---
297 Enables support for generic EHCI controller.
298
299 config EHCI_HCD_INIT_AFTER_RESET
300 bool
301
302 config USB_EHCI_FSL
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)
307 ---help---
308 Enables support for the on-chip EHCI controller on FSL chips.
309
310 config SYS_FSL_USB_INTERNAL_UTMI_PHY
311 bool
312 depends on USB_EHCI_FSL
313
314 config USB_EHCI_TXFIFO_THRESH
315 hex
316 depends on USB_EHCI_TEGRA
317 default 0x10
318 help
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.
323
324 endif # USB_EHCI_HCD
325
326 config USB_OHCI_NEW
327 bool
328
329 config SYS_USB_OHCI_CPU_INIT
330 bool
331
332 config USB_OHCI_HCD
333 bool "OHCI HCD (USB 1.1) support"
334 depends on DM && OF_CONTROL
335 select USB_HOST
336 select USB_OHCI_NEW
337 ---help---
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.
346
347 if USB_OHCI_HCD
348
349 config USB_OHCI_PCI
350 bool "Support for PCI-based OHCI USB controller"
351 depends on PCI
352 help
353 Enables support for the PCI-based OHCI controller.
354
355 config USB_OHCI_GENERIC
356 bool "Support for generic OHCI USB controller"
357 default ARCH_SUNXI
358 ---help---
359 Enables support for generic OHCI controller.
360
361 config USB_OHCI_DA8XX
362 bool "Support for da850 OHCI USB controller"
363 help
364 Enable support for the da850 USB controller.
365
366 config USB_OHCI_NPCM
367 bool "Support for Nuvoton NPCM on-chip OHCI USB controller"
368 depends on ARCH_NPCM
369 ---help---
370 Enables support for the on-chip OHCI controller on
371 Nuvoton NPCM chips.
372
373 endif # USB_OHCI_HCD
374
375 config SYS_USB_OHCI_SLOT_NAME
376 string "Display name for the OHCI controller"
377 depends on USB_OHCI_NEW && !DM_USB
378
379 config SYS_OHCI_SWAP_REG_ACCESS
380 bool "Perform byte swapping on OHCI controller register accesses"
381 depends on USB_OHCI_NEW
382
383 config USB_UHCI_HCD
384 bool "UHCI HCD (most Intel and VIA) support"
385 select USB_HOST
386 ---help---
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.
395 If unsure, say Y.
396
397 if USB_UHCI_HCD
398
399 endif # USB_UHCI_HCD
400
401 config USB_DWC2
402 bool "DesignWare USB2 Core support"
403 depends on DM && OF_CONTROL
404 select USB_HOST
405 ---help---
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.
411
412 if USB_DWC2
413 config USB_DWC2_BUFFER_SIZE
414 int "Data buffer size in kB"
415 default 64
416 ---help---
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.
421
422 endif # USB_DWC2
423
424 config USB_R8A66597_HCD
425 bool "Renesas R8A66597 USB Core support"
426 depends on DM && OF_CONTROL
427 select USB_HOST
428 ---help---
429 This enables support for the on-chip Renesas R8A66597 USB 2.0
430 controller, present in various RZ and SH SoCs.
431
432 config USB_ATMEL
433 bool "AT91 OHCI USB support"
434 depends on ARCH_AT91
435 select SYS_USB_OHCI_CPU_INIT
436 select USB_OHCI_NEW
437
438 choice
439 prompt "Clock for OHCI"
440 depends on USB_ATMEL
441
442 config USB_ATMEL_CLK_SEL_PLLB
443 bool "PLLB"
444
445 config USB_ATMEL_CLK_SEL_UPLL
446 bool "UPLL"
447
448 endchoice
449
450 config USB_OHCI_LPC32XX
451 bool "LPC32xx USB OHCI support"
452 depends on ARCH_LPC32XX
453 select SYS_USB_OHCI_CPU_INIT
454 select USB_OHCI_NEW
455
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)
460 default 1