ehci-mx6: Update EHCI driver to support OTG0 on i.MX7ULP
[oweals/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_DRA7XX_INDEX
77         int "DRA7XX xHCI USB index"
78         range 0 1
79         default 0
80         depends on DRA7XX
81         help
82           Select the DRA7XX xHCI USB index.
83           Current supported values: 0, 1.
84
85 config USB_XHCI_FSL
86         bool "Support for NXP Layerscape on-chip xHCI USB controller"
87         default y if ARCH_LS1021A || FSL_LSCH3 || FSL_LSCH2
88         depends on !SPL_NO_USB
89         help
90           Enables support for the on-chip xHCI controller on NXP Layerscape SoCs.
91 endif # USB_XHCI_HCD
92
93 config USB_EHCI_HCD
94         bool "EHCI HCD (USB 2.0) support"
95         default y if ARCH_MX5 || ARCH_MX6
96         select USB_HOST
97         ---help---
98           The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
99           "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
100           If your USB host controller supports USB 2.0, you will likely want to
101           configure this Host Controller Driver.
102
103           EHCI controllers are packaged with "companion" host controllers (OHCI
104           or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
105           will connect to EHCI if the device is high speed, otherwise they
106           connect to a companion controller.  If you configure EHCI, you should
107           probably configure the OHCI (for NEC and some other vendors) USB Host
108           Controller Driver or UHCI (for Via motherboards) Host Controller
109           Driver too.
110
111           You may want to read <file:Documentation/usb/ehci.txt>.
112
113 if USB_EHCI_HCD
114
115 config USB_EHCI_ATMEL
116         bool  "Support for Atmel on-chip EHCI USB controller"
117         depends on ARCH_AT91
118         default y
119         ---help---
120           Enables support for the on-chip EHCI controller on Atmel chips.
121
122 config USB_EHCI_MARVELL
123         bool "Support for Marvell on-chip EHCI USB controller"
124         depends on ARCH_MVEBU || KIRKWOOD || ORION5X
125         default y
126         ---help---
127           Enables support for the on-chip EHCI controller on MVEBU SoCs.
128
129 config USB_EHCI_MX5
130         bool "Support for i.MX5 on-chip EHCI USB controller"
131         depends on ARCH_MX5
132         default n
133         help
134           Enables support for the on-chip EHCI controller on i.MX5 SoCs.
135
136 config USB_EHCI_MX6
137         bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller"
138         depends on ARCH_MX6 || ARCH_MX7ULP
139         default y
140         ---help---
141           Enables support for the on-chip EHCI controller on i.MX6 SoCs.
142
143 config USB_EHCI_MX7
144         bool "Support for i.MX7 on-chip EHCI USB controller"
145         depends on ARCH_MX7
146         default y
147         ---help---
148           Enables support for the on-chip EHCI controller on i.MX7 SoCs.
149
150 config USB_EHCI_OMAP
151         bool "Support for OMAP3+ on-chip EHCI USB controller"
152         depends on ARCH_OMAP2PLUS
153         default y
154         ---help---
155           Enables support for the on-chip EHCI controller on OMAP3 and later
156           SoCs.
157
158 config USB_EHCI_VF
159         bool "Support for Vybrid on-chip EHCI USB controller"
160         depends on ARCH_VF610
161         default y
162         help
163           Enables support for the on-chip EHCI controller on Vybrid SoCs.
164
165 if USB_EHCI_MX6 || USB_EHCI_MX7
166
167 config MXC_USB_OTG_HACTIVE
168         bool "USB Power pin high active"
169         ---help---
170           Set the USB Power pin polarity to be high active (PWR_POL)
171
172 endif
173
174 config USB_EHCI_MSM
175         bool "Support for Qualcomm on-chip EHCI USB controller"
176         depends on DM_USB
177         select USB_ULPI_VIEWPORT
178         select MSM8916_USB_PHY
179         default n
180         ---help---
181           Enables support for the on-chip EHCI controller on Qualcomm
182           Snapdragon SoCs.
183
184 config USB_EHCI_PCI
185         bool "Support for PCI-based EHCI USB controller"
186         default y if X86
187         help
188           Enables support for the PCI-based EHCI controller.
189
190 config USB_EHCI_TEGRA
191         bool "Support for NVIDIA Tegra on-chip EHCI USB controller"
192         depends on TEGRA
193         ---help---
194           Enable support for Tegra on-chip EHCI USB controller
195
196 config USB_EHCI_ZYNQ
197         bool "Support for Xilinx Zynq on-chip EHCI USB controller"
198         depends on ARCH_ZYNQ
199         default y
200         ---help---
201           Enable support for Zynq on-chip EHCI USB controller
202
203 config USB_EHCI_GENERIC
204         bool "Support for generic EHCI USB controller"
205         depends on OF_CONTROL
206         depends on DM_USB
207         default ARCH_SUNXI
208         default n
209         ---help---
210           Enables support for generic EHCI controller.
211
212 config USB_EHCI_FSL
213         bool  "Support for FSL on-chip EHCI USB controller"
214         default n
215         select  CONFIG_EHCI_HCD_INIT_AFTER_RESET
216         ---help---
217           Enables support for the on-chip EHCI controller on FSL chips.
218 endif # USB_EHCI_HCD
219
220 config USB_OHCI_HCD
221         bool "OHCI HCD (USB 1.1) support"
222         ---help---
223           The Open Host Controller Interface (OHCI) is a standard for accessing
224           USB 1.1 host controller hardware.  It does more in hardware than Intel's
225           UHCI specification.  If your USB host controller follows the OHCI spec,
226           say Y.  On most non-x86 systems, and on x86 hardware that's not using a
227           USB controller from Intel or VIA, this is appropriate.  If your host
228           controller doesn't use PCI, this is probably appropriate.  For a PCI
229           based system where you're not sure, the "lspci -v" entry will list the
230           right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
231
232 config USB_OHCI_PCI
233         bool "Support for PCI-based OHCI USB controller"
234         depends on DM_USB
235         default n
236         help
237           Enables support for the PCI-based OHCI controller.
238
239 if USB_OHCI_HCD
240
241 config USB_OHCI_GENERIC
242         bool "Support for generic OHCI USB controller"
243         depends on OF_CONTROL
244         depends on DM_USB
245         default ARCH_SUNXI
246         select USB_HOST
247         ---help---
248           Enables support for generic OHCI controller.
249
250 config USB_OHCI_DA8XX
251         bool "Support for da850 OHCI USB controller"
252         help
253           Enable support for the da850 USB controller.
254
255 endif # USB_OHCI_HCD
256
257 config USB_UHCI_HCD
258         bool "UHCI HCD (most Intel and VIA) support"
259         select USB_HOST
260         ---help---
261           The Universal Host Controller Interface is a standard by Intel for
262           accessing the USB hardware in the PC (which is also called the USB
263           host controller). If your USB host controller conforms to this
264           standard, you may want to say Y, but see below. All recent boards
265           with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
266           i810, i820) conform to this standard. Also all VIA PCI chipsets
267           (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
268           133) and LEON/GRLIB SoCs with the GRUSBHC controller.
269           If unsure, say Y.
270
271 if USB_UHCI_HCD
272
273 endif # USB_UHCI_HCD
274
275 config USB_DWC2
276         bool "DesignWare USB2 Core support"
277         select USB_HOST
278         ---help---
279           The DesignWare USB 2.0 controller is compliant with the
280           USB-Implementers Forum (USB-IF) USB 2.0 specifications.
281           Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps)
282           operation is compliant to the controller Supplement. If you want to
283           enable this controller in host mode, say Y.
284
285 if USB_DWC2
286 config USB_DWC2_BUFFER_SIZE
287         int "Data buffer size in kB"
288         default 64
289         ---help---
290           By default 64 kB buffer is used but if amount of RAM avaialble on
291           the target is not enough to accommodate allocation of buffer of
292           that size it is possible to shrink it. Smaller sizes should be fine
293           because larger transactions could be split in smaller ones.
294
295 endif # USB_DWC2
296
297 config USB_R8A66597_HCD
298         bool "Renesas R8A66597 USB Core support"
299         depends on OF_CONTROL
300         depends on DM_USB
301         select USB_HOST
302         ---help---
303           This enables support for the on-chip Renesas R8A66597 USB 2.0
304           controller, present in various RZ and SH SoCs.