5d0855ffcc7925694366c154b67eb33da02abebf
[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 EHCI_DESC_BIG_ENDIAN
120         bool
121
122 config EHCI_MMIO_BIG_ENDIAN
123         bool
124
125 config USB_EHCI_HCD
126         bool "EHCI HCD (USB 2.0) support"
127         default y if ARCH_MX5 || ARCH_MX6
128         depends on DM && OF_CONTROL
129         select USB_HOST
130         select EHCI_DESC_BIG_ENDIAN if SYS_BIG_ENDIAN
131         select EHCI_MMIO_BIG_ENDIAN if SYS_BIG_ENDIAN
132         ---help---
133           The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
134           "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
135           If your USB host controller supports USB 2.0, you will likely want to
136           configure this Host Controller Driver.
137
138           EHCI controllers are packaged with "companion" host controllers (OHCI
139           or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
140           will connect to EHCI if the device is high speed, otherwise they
141           connect to a companion controller.  If you configure EHCI, you should
142           probably configure the OHCI (for NEC and some other vendors) USB Host
143           Controller Driver or UHCI (for Via motherboards) Host Controller
144           Driver too.
145
146           You may want to read <file:Documentation/usb/ehci.txt>.
147
148 if USB_EHCI_HCD
149
150 config USB_EHCI_IS_TDI
151         bool
152
153 config USB_EHCI_ATMEL
154         bool  "Support for Atmel on-chip EHCI USB controller"
155         depends on ARCH_AT91
156         default y
157         ---help---
158           Enables support for the on-chip EHCI controller on Atmel chips.
159
160 config USB_EHCI_MARVELL
161         bool "Support for Marvell on-chip EHCI USB controller"
162         depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X
163         default y
164         select USB_EHCI_IS_TDI if !ARM64
165         ---help---
166           Enables support for the on-chip EHCI controller on MVEBU SoCs.
167
168 config USB_EHCI_MX5
169         bool "Support for i.MX5 on-chip EHCI USB controller"
170         depends on ARCH_MX5
171         help
172           Enables support for the on-chip EHCI controller on i.MX5 SoCs.
173
174 config USB_EHCI_MX6
175         bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller"
176         depends on ARCH_MX6 || ARCH_MX7ULP || ARCH_IMXRT
177         select EHCI_HCD_INIT_AFTER_RESET
178         default y
179         ---help---
180           Enables support for the on-chip EHCI controller on i.MX6 SoCs.
181
182 config USB_EHCI_MX7
183         bool "Support for i.MX7 on-chip EHCI USB controller"
184         depends on ARCH_MX7 || IMX8M
185         select EHCI_HCD_INIT_AFTER_RESET if ARCH_MX7
186         select PHY if IMX8M
187         select NOP_PHY if IMX8M
188         default y
189         ---help---
190           Enables support for the on-chip EHCI controller on i.MX7 SoCs.
191
192 config USB_EHCI_MXS
193         bool "Support for i.MX23/i.MX28 EHCI USB controller"
194         depends on ARCH_MX23 || ARCH_MX28
195         default y
196         select USB_EHCI_IS_TDI
197         help
198           Enables support for the on-chip EHCI controller on i.MX23 and
199           i.MX28 SoCs.
200
201 config USB_EHCI_OMAP
202         bool "Support for OMAP3+ on-chip EHCI USB controller"
203         depends on ARCH_OMAP2PLUS
204         select PHY
205         imply NOP_PHY
206         default y
207         ---help---
208           Enables support for the on-chip EHCI controller on OMAP3 and later
209           SoCs.
210
211 config USB_EHCI_VF
212         bool "Support for Vybrid on-chip EHCI USB controller"
213         depends on ARCH_VF610
214         default y
215         help
216           Enables support for the on-chip EHCI controller on Vybrid SoCs.
217
218 if USB_EHCI_MX6 || USB_EHCI_MX7
219
220 config MXC_USB_OTG_HACTIVE
221         bool "USB Power pin high active"
222         ---help---
223           Set the USB Power pin polarity to be high active (PWR_POL)
224
225 endif
226
227 config USB_EHCI_MSM
228         bool "Support for Qualcomm on-chip EHCI USB controller"
229         depends on DM_USB
230         select USB_ULPI_VIEWPORT
231         select MSM8916_USB_PHY
232         ---help---
233           Enables support for the on-chip EHCI controller on Qualcomm
234           Snapdragon SoCs.
235
236 config USB_EHCI_PCI
237         bool "Support for PCI-based EHCI USB controller"
238         default y if X86
239         help
240           Enables support for the PCI-based EHCI controller.
241
242 config USB_EHCI_TEGRA
243         bool "Support for NVIDIA Tegra on-chip EHCI USB controller"
244         depends on ARCH_TEGRA
245         select USB_EHCI_IS_TDI
246         ---help---
247           Enable support for Tegra on-chip EHCI USB controller
248
249 config USB_EHCI_ZYNQ
250         bool "Support for Xilinx Zynq on-chip EHCI USB controller"
251         default y if ARCH_ZYNQ
252         select USB_EHCI_IS_TDI
253         ---help---
254           Enable support for Zynq on-chip EHCI USB controller
255
256 config USB_EHCI_GENERIC
257         bool "Support for generic EHCI USB controller"
258         depends on DM_USB
259         default ARCH_SUNXI
260         ---help---
261           Enables support for generic EHCI controller.
262
263 config EHCI_HCD_INIT_AFTER_RESET
264         bool
265
266 config USB_EHCI_FSL
267         bool  "Support for FSL on-chip EHCI USB controller"
268         select EHCI_HCD_INIT_AFTER_RESET
269         ---help---
270           Enables support for the on-chip EHCI controller on FSL chips.
271 endif # USB_EHCI_HCD
272
273 config USB_OHCI_HCD
274         bool "OHCI HCD (USB 1.1) support"
275         depends on DM && OF_CONTROL
276         select USB_HOST
277         ---help---
278           The Open Host Controller Interface (OHCI) is a standard for accessing
279           USB 1.1 host controller hardware.  It does more in hardware than Intel's
280           UHCI specification.  If your USB host controller follows the OHCI spec,
281           say Y.  On most non-x86 systems, and on x86 hardware that's not using a
282           USB controller from Intel or VIA, this is appropriate.  If your host
283           controller doesn't use PCI, this is probably appropriate.  For a PCI
284           based system where you're not sure, the "lspci -v" entry will list the
285           right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
286
287 if USB_OHCI_HCD
288
289 config USB_OHCI_PCI
290         bool "Support for PCI-based OHCI USB controller"
291         depends on PCI
292         help
293           Enables support for the PCI-based OHCI controller.
294
295 config USB_OHCI_GENERIC
296         bool "Support for generic OHCI USB controller"
297         default ARCH_SUNXI
298         ---help---
299           Enables support for generic OHCI controller.
300
301 config USB_OHCI_DA8XX
302         bool "Support for da850 OHCI USB controller"
303         help
304           Enable support for the da850 USB controller.
305
306 endif # USB_OHCI_HCD
307
308 config USB_UHCI_HCD
309         bool "UHCI HCD (most Intel and VIA) support"
310         select USB_HOST
311         ---help---
312           The Universal Host Controller Interface is a standard by Intel for
313           accessing the USB hardware in the PC (which is also called the USB
314           host controller). If your USB host controller conforms to this
315           standard, you may want to say Y, but see below. All recent boards
316           with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
317           i810, i820) conform to this standard. Also all VIA PCI chipsets
318           (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
319           133) and LEON/GRLIB SoCs with the GRUSBHC controller.
320           If unsure, say Y.
321
322 if USB_UHCI_HCD
323
324 endif # USB_UHCI_HCD
325
326 config USB_DWC2
327         bool "DesignWare USB2 Core support"
328         depends on DM && OF_CONTROL
329         select USB_HOST
330         ---help---
331           The DesignWare USB 2.0 controller is compliant with the
332           USB-Implementers Forum (USB-IF) USB 2.0 specifications.
333           Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps)
334           operation is compliant to the controller Supplement. If you want to
335           enable this controller in host mode, say Y.
336
337 if USB_DWC2
338 config USB_DWC2_BUFFER_SIZE
339         int "Data buffer size in kB"
340         default 64
341         ---help---
342           By default 64 kB buffer is used but if amount of RAM avaialble on
343           the target is not enough to accommodate allocation of buffer of
344           that size it is possible to shrink it. Smaller sizes should be fine
345           because larger transactions could be split in smaller ones.
346
347 endif # USB_DWC2
348
349 config USB_R8A66597_HCD
350         bool "Renesas R8A66597 USB Core support"
351         depends on DM && OF_CONTROL
352         select USB_HOST
353         ---help---
354           This enables support for the on-chip Renesas R8A66597 USB 2.0
355           controller, present in various RZ and SH SoCs.