Merge tag 'u-boot-imx-20211020' of https://source.denx.de/u-boot/custodians/u-boot-imx
[platform/kernel/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
10 config USB_XHCI_HCD
11         bool "xHCI HCD (USB 3.0) support"
12         depends on DM && OF_CONTROL
13         select USB_HOST
14         ---help---
15           The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
16           "SuperSpeed" host controller hardware.
17
18 if USB_XHCI_HCD
19
20 config USB_XHCI_DWC3
21         bool "DesignWare USB3 DRD Core Support"
22         help
23           Say Y or if your system has a Dual Role SuperSpeed
24           USB controller based on the DesignWare USB3 IP Core.
25
26 config USB_XHCI_DWC3_OF_SIMPLE
27         bool "DesignWare USB3 DRD Generic OF Simple Glue Layer"
28         depends on DM_USB
29         default y if ARCH_ROCKCHIP
30         default y if DRA7XX
31         help
32           Support USB2/3 functionality in simple SoC integrations with
33           USB controller based on the DesignWare USB3 IP Core.
34
35 config USB_XHCI_MTK
36         bool "Support for MediaTek on-chip xHCI USB controller"
37         depends on ARCH_MEDIATEK
38         help
39           Enables support for the on-chip xHCI controller on MediaTek SoCs.
40
41 config USB_XHCI_MVEBU
42         bool "MVEBU USB 3.0 support"
43         default y
44         depends on ARCH_MVEBU
45         select DM_REGULATOR
46         help
47           Choose this option to add support for USB 3.0 driver on mvebu
48           SoCs, which includes Armada8K, Armada3700 and other Armada
49           family SoCs.
50
51 config USB_XHCI_OCTEON
52         bool "Support for Marvell Octeon family on-chip xHCI USB controller"
53         depends on ARCH_OCTEON
54         default y
55         help
56           Enables support for the on-chip xHCI controller on Marvell Octeon
57           family SoCs. This is a driver for the dwc3 to provide the glue logic
58           to configure the controller.
59
60 config USB_XHCI_OMAP
61         bool "Support for TI OMAP family xHCI USB controller"
62         depends on ARCH_OMAP2PLUS
63         help
64           Enables support for the on-chip xHCI controller found on some TI SoC
65           families.  Note that some families have multiple contollers while
66           others only have something such as DesignWare-based controllers.
67           Consult the SoC documentation to determine if this option applies
68           to your hardware.
69
70 config USB_XHCI_PCI
71         bool "Support for PCI-based xHCI USB controller"
72         depends on DM_USB
73         default y if X86
74         help
75           Enables support for the PCI-based xHCI controller.
76
77 config USB_XHCI_RCAR
78         bool "Renesas RCar USB 3.0 support"
79         default y
80         depends on ARCH_RMOBILE
81         help
82           Choose this option to add support for USB 3.0 driver on Renesas
83           RCar Gen3 SoCs.
84
85 config USB_XHCI_STI
86         bool "Support for STMicroelectronics STiH407 family on-chip xHCI USB controller"
87         depends on ARCH_STI
88         default y
89         help
90           Enables support for the on-chip xHCI controller on STMicroelectronics
91           STiH407 family SoCs. This is a driver for the dwc3 to provide the glue logic
92           to configure the controller.
93
94 config USB_XHCI_DRA7XX_INDEX
95         int "DRA7XX xHCI USB index"
96         range 0 1
97         default 0
98         depends on DRA7XX
99         help
100           Select the DRA7XX xHCI USB index.
101           Current supported values: 0, 1.
102
103 config USB_XHCI_FSL
104         bool "Support for NXP Layerscape on-chip xHCI USB controller"
105         default y if ARCH_LS1021A || FSL_LSCH3 || FSL_LSCH2
106         depends on !SPL_NO_USB
107         help
108           Enables support for the on-chip xHCI controller on NXP Layerscape SoCs.
109
110 config USB_XHCI_BRCM
111         bool "Broadcom USB3 Host XHCI controller"
112         depends on DM_USB
113         help
114           USB controller based on the Broadcom USB3 IP Core.
115           Supports USB2/3 functionality.
116
117 endif # USB_XHCI_HCD
118
119 config USB_EHCI_HCD
120         bool "EHCI HCD (USB 2.0) support"
121         default y if ARCH_MX5 || ARCH_MX6
122         depends on DM && OF_CONTROL
123         select USB_HOST
124         ---help---
125           The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
126           "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
127           If your USB host controller supports USB 2.0, you will likely want to
128           configure this Host Controller Driver.
129
130           EHCI controllers are packaged with "companion" host controllers (OHCI
131           or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
132           will connect to EHCI if the device is high speed, otherwise they
133           connect to a companion controller.  If you configure EHCI, you should
134           probably configure the OHCI (for NEC and some other vendors) USB Host
135           Controller Driver or UHCI (for Via motherboards) Host Controller
136           Driver too.
137
138           You may want to read <file:Documentation/usb/ehci.txt>.
139
140 if USB_EHCI_HCD
141
142 config USB_EHCI_IS_TDI
143         bool
144
145 config USB_EHCI_ATMEL
146         bool  "Support for Atmel on-chip EHCI USB controller"
147         depends on ARCH_AT91
148         default y
149         ---help---
150           Enables support for the on-chip EHCI controller on Atmel chips.
151
152 config USB_EHCI_MARVELL
153         bool "Support for Marvell on-chip EHCI USB controller"
154         depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X
155         default y
156         select USB_EHCI_IS_TDI if !ARM64
157         ---help---
158           Enables support for the on-chip EHCI controller on MVEBU SoCs.
159
160 config USB_EHCI_MX5
161         bool "Support for i.MX5 on-chip EHCI USB controller"
162         depends on ARCH_MX5
163         help
164           Enables support for the on-chip EHCI controller on i.MX5 SoCs.
165
166 config USB_EHCI_MX6
167         bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller"
168         depends on ARCH_MX6 || ARCH_MX7ULP || ARCH_IMXRT
169         default y
170         ---help---
171           Enables support for the on-chip EHCI controller on i.MX6 SoCs.
172
173 config USB_EHCI_MX7
174         bool "Support for i.MX7 on-chip EHCI USB controller"
175         depends on ARCH_MX7 || IMX8M
176         select PHY if IMX8M
177         select NOP_PHY if IMX8M
178         default y
179         ---help---
180           Enables support for the on-chip EHCI controller on i.MX7 SoCs.
181
182 config USB_EHCI_MXS
183         bool "Support for i.MX23 EHCI USB controller"
184         depends on ARCH_MX23
185         default y
186         select USB_EHCI_IS_TDI
187         help
188           Enables support for the on-chip EHCI controller on i.MX23 SoCs.
189
190 config USB_EHCI_OMAP
191         bool "Support for OMAP3+ on-chip EHCI USB controller"
192         depends on ARCH_OMAP2PLUS
193         default y
194         ---help---
195           Enables support for the on-chip EHCI controller on OMAP3 and later
196           SoCs.
197
198 if USB_EHCI_OMAP
199
200 config HAS_OMAP_EHCI_PHY1_RESET_GPIO
201         bool "PHY #1 requires a GPIO hold to it in RESET while PHY settles"
202         help
203           Enable this to be able to configure the GPIO number used to hold the
204           PHY in RESET for enough time until the PHY is settled and ready.
205
206 config OMAP_EHCI_PHY1_RESET_GPIO
207         int "GPIO number to hold PHY #1 in RESET"
208         depends on HAS_OMAP_EHCI_PHY1_RESET_GPIO
209
210 config HAS_OMAP_EHCI_PHY2_RESET_GPIO
211         bool "PHY #2 requires a GPIO hold to it in RESET while PHY settles"
212         help
213           Enable this to be able to configure the GPIO number used to hold the
214           PHY in RESET for enough time until the PHY is settled and ready.
215
216 config OMAP_EHCI_PHY2_RESET_GPIO
217         int "GPIO number to hold PHY #2 in RESET"
218         depends on HAS_OMAP_EHCI_PHY2_RESET_GPIO
219
220 config HAS_OMAP_EHCI_PHY3_RESET_GPIO
221         bool "PHY #3 requires a GPIO hold to it in RESET while PHY settles"
222         help
223           Enable this to be able to configure the GPIO number used to hold the
224           PHY in RESET for enough time until the PHY is settled and ready.
225
226 config OMAP_EHCI_PHY3_RESET_GPIO
227         int "GPIO number to hold PHY #3 in RESET"
228         depends on HAS_OMAP_EHCI_PHY3_RESET_GPIO
229
230 endif
231
232 config USB_EHCI_VF
233         bool "Support for Vybrid on-chip EHCI USB controller"
234         depends on ARCH_VF610
235         default y
236         help
237           Enables support for the on-chip EHCI controller on Vybrid SoCs.
238
239 if USB_EHCI_MX6 || USB_EHCI_MX7
240
241 config MXC_USB_OTG_HACTIVE
242         bool "USB Power pin high active"
243         ---help---
244           Set the USB Power pin polarity to be high active (PWR_POL)
245
246 endif
247
248 config USB_EHCI_MSM
249         bool "Support for Qualcomm on-chip EHCI USB controller"
250         depends on DM_USB
251         select USB_ULPI_VIEWPORT
252         select MSM8916_USB_PHY
253         ---help---
254           Enables support for the on-chip EHCI controller on Qualcomm
255           Snapdragon SoCs.
256
257 config USB_EHCI_PCI
258         bool "Support for PCI-based EHCI USB controller"
259         default y if X86
260         help
261           Enables support for the PCI-based EHCI controller.
262
263 config USB_EHCI_TEGRA
264         bool "Support for NVIDIA Tegra on-chip EHCI USB controller"
265         depends on ARCH_TEGRA
266         select USB_EHCI_IS_TDI
267         ---help---
268           Enable support for Tegra on-chip EHCI USB controller
269
270 config USB_EHCI_ZYNQ
271         bool "Support for Xilinx Zynq on-chip EHCI USB controller"
272         default y if ARCH_ZYNQ
273         select USB_EHCI_IS_TDI
274         ---help---
275           Enable support for Zynq on-chip EHCI USB controller
276
277 config USB_EHCI_GENERIC
278         bool "Support for generic EHCI USB controller"
279         depends on DM_USB
280         default ARCH_SUNXI
281         ---help---
282           Enables support for generic EHCI controller.
283
284 config USB_EHCI_FSL
285         bool  "Support for FSL on-chip EHCI USB controller"
286         select  CONFIG_EHCI_HCD_INIT_AFTER_RESET
287         ---help---
288           Enables support for the on-chip EHCI controller on FSL chips.
289 endif # USB_EHCI_HCD
290
291 config USB_OHCI_HCD
292         bool "OHCI HCD (USB 1.1) support"
293         depends on DM && OF_CONTROL
294         select USB_HOST
295         ---help---
296           The Open Host Controller Interface (OHCI) is a standard for accessing
297           USB 1.1 host controller hardware.  It does more in hardware than Intel's
298           UHCI specification.  If your USB host controller follows the OHCI spec,
299           say Y.  On most non-x86 systems, and on x86 hardware that's not using a
300           USB controller from Intel or VIA, this is appropriate.  If your host
301           controller doesn't use PCI, this is probably appropriate.  For a PCI
302           based system where you're not sure, the "lspci -v" entry will list the
303           right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
304
305 if USB_OHCI_HCD
306
307 config USB_OHCI_PCI
308         bool "Support for PCI-based OHCI USB controller"
309         depends on PCI
310         help
311           Enables support for the PCI-based OHCI controller.
312
313 config USB_OHCI_GENERIC
314         bool "Support for generic OHCI USB controller"
315         default ARCH_SUNXI
316         ---help---
317           Enables support for generic OHCI controller.
318
319 config USB_OHCI_DA8XX
320         bool "Support for da850 OHCI USB controller"
321         help
322           Enable support for the da850 USB controller.
323
324 endif # USB_OHCI_HCD
325
326 config USB_UHCI_HCD
327         bool "UHCI HCD (most Intel and VIA) support"
328         select USB_HOST
329         ---help---
330           The Universal Host Controller Interface is a standard by Intel for
331           accessing the USB hardware in the PC (which is also called the USB
332           host controller). If your USB host controller conforms to this
333           standard, you may want to say Y, but see below. All recent boards
334           with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
335           i810, i820) conform to this standard. Also all VIA PCI chipsets
336           (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
337           133) and LEON/GRLIB SoCs with the GRUSBHC controller.
338           If unsure, say Y.
339
340 if USB_UHCI_HCD
341
342 endif # USB_UHCI_HCD
343
344 config USB_DWC2
345         bool "DesignWare USB2 Core support"
346         depends on DM && OF_CONTROL
347         select USB_HOST
348         ---help---
349           The DesignWare USB 2.0 controller is compliant with the
350           USB-Implementers Forum (USB-IF) USB 2.0 specifications.
351           Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps)
352           operation is compliant to the controller Supplement. If you want to
353           enable this controller in host mode, say Y.
354
355 if USB_DWC2
356 config USB_DWC2_BUFFER_SIZE
357         int "Data buffer size in kB"
358         default 64
359         ---help---
360           By default 64 kB buffer is used but if amount of RAM avaialble on
361           the target is not enough to accommodate allocation of buffer of
362           that size it is possible to shrink it. Smaller sizes should be fine
363           because larger transactions could be split in smaller ones.
364
365 endif # USB_DWC2
366
367 config USB_R8A66597_HCD
368         bool "Renesas R8A66597 USB Core support"
369         depends on DM && OF_CONTROL
370         select USB_HOST
371         ---help---
372           This enables support for the on-chip Renesas R8A66597 USB 2.0
373           controller, present in various RZ and SH SoCs.