Convert CONFIG_EHCI_DESC_BIG_ENDIAN et al to Kconfig
[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 USB_EHCI_FSL
264         bool  "Support for FSL on-chip EHCI USB controller"
265         select  CONFIG_EHCI_HCD_INIT_AFTER_RESET
266         ---help---
267           Enables support for the on-chip EHCI controller on FSL chips.
268 endif # USB_EHCI_HCD
269
270 config USB_OHCI_HCD
271         bool "OHCI HCD (USB 1.1) support"
272         depends on DM && OF_CONTROL
273         select USB_HOST
274         ---help---
275           The Open Host Controller Interface (OHCI) is a standard for accessing
276           USB 1.1 host controller hardware.  It does more in hardware than Intel's
277           UHCI specification.  If your USB host controller follows the OHCI spec,
278           say Y.  On most non-x86 systems, and on x86 hardware that's not using a
279           USB controller from Intel or VIA, this is appropriate.  If your host
280           controller doesn't use PCI, this is probably appropriate.  For a PCI
281           based system where you're not sure, the "lspci -v" entry will list the
282           right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
283
284 if USB_OHCI_HCD
285
286 config USB_OHCI_PCI
287         bool "Support for PCI-based OHCI USB controller"
288         depends on PCI
289         help
290           Enables support for the PCI-based OHCI controller.
291
292 config USB_OHCI_GENERIC
293         bool "Support for generic OHCI USB controller"
294         default ARCH_SUNXI
295         ---help---
296           Enables support for generic OHCI controller.
297
298 config USB_OHCI_DA8XX
299         bool "Support for da850 OHCI USB controller"
300         help
301           Enable support for the da850 USB controller.
302
303 endif # USB_OHCI_HCD
304
305 config USB_UHCI_HCD
306         bool "UHCI HCD (most Intel and VIA) support"
307         select USB_HOST
308         ---help---
309           The Universal Host Controller Interface is a standard by Intel for
310           accessing the USB hardware in the PC (which is also called the USB
311           host controller). If your USB host controller conforms to this
312           standard, you may want to say Y, but see below. All recent boards
313           with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
314           i810, i820) conform to this standard. Also all VIA PCI chipsets
315           (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
316           133) and LEON/GRLIB SoCs with the GRUSBHC controller.
317           If unsure, say Y.
318
319 if USB_UHCI_HCD
320
321 endif # USB_UHCI_HCD
322
323 config USB_DWC2
324         bool "DesignWare USB2 Core support"
325         depends on DM && OF_CONTROL
326         select USB_HOST
327         ---help---
328           The DesignWare USB 2.0 controller is compliant with the
329           USB-Implementers Forum (USB-IF) USB 2.0 specifications.
330           Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps)
331           operation is compliant to the controller Supplement. If you want to
332           enable this controller in host mode, say Y.
333
334 if USB_DWC2
335 config USB_DWC2_BUFFER_SIZE
336         int "Data buffer size in kB"
337         default 64
338         ---help---
339           By default 64 kB buffer is used but if amount of RAM avaialble on
340           the target is not enough to accommodate allocation of buffer of
341           that size it is possible to shrink it. Smaller sizes should be fine
342           because larger transactions could be split in smaller ones.
343
344 endif # USB_DWC2
345
346 config USB_R8A66597_HCD
347         bool "Renesas R8A66597 USB Core support"
348         depends on DM && OF_CONTROL
349         select USB_HOST
350         ---help---
351           This enables support for the on-chip Renesas R8A66597 USB 2.0
352           controller, present in various RZ and SH SoCs.