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