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