xref: /linux/drivers/usb/host/Kconfig (revision bdaedca74d6293b6ac643a8ebe8231b52bf1171b)
1# SPDX-License-Identifier: GPL-2.0
2#
3# USB Host Controller Drivers
4#
5comment "USB Host Controller Drivers"
6
7config USB_C67X00_HCD
8	tristate "Cypress C67x00 HCD support"
9	depends on HAS_IOMEM
10	help
11	  The Cypress C67x00 (EZ-Host/EZ-OTG) chips are dual-role
12	  host/peripheral/OTG USB controllers.
13
14	  Enable this option to support this chip in host controller mode.
15	  If unsure, say N.
16
17	  To compile this driver as a module, choose M here: the
18	  module will be called c67x00.
19
20config USB_XHCI_HCD
21	tristate "xHCI HCD (USB 3.0) support"
22	depends on HAS_DMA && HAS_IOMEM
23	help
24	  The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
25	  "SuperSpeed" host controller hardware.
26
27	  To compile this driver as a module, choose M here: the
28	  module will be called xhci-hcd.
29
30if USB_XHCI_HCD
31config USB_XHCI_DBGCAP
32	bool "xHCI support for debug capability"
33	depends on TTY
34	help
35	  Say 'Y' to enable the support for the xHCI debug capability. Make
36	  sure that your xHCI host supports the extended debug capability and
37	  you want a TTY serial device based on the xHCI debug capability
38	  before enabling this option. If unsure, say 'N'.
39
40config USB_XHCI_PCI
41	tristate
42	depends on USB_PCI
43	depends on USB_XHCI_PCI_RENESAS || !USB_XHCI_PCI_RENESAS
44	default y
45
46config USB_XHCI_PCI_RENESAS
47	tristate "Support for additional Renesas xHCI controller with firmware"
48	help
49	  Say 'Y' to enable the support for the Renesas xHCI controller with
50	  firmware. Make sure you have the firwmare for the device and
51	  installed on your system for this device to work.
52	  If unsure, say 'N'.
53
54config USB_XHCI_PLATFORM
55	tristate "Generic xHCI driver for a platform device"
56	select USB_XHCI_RCAR if ARCH_RENESAS
57	help
58	  Adds an xHCI host driver for a generic platform device, which
59	  provides a memory space and an irq.
60	  It is also a prerequisite for platform specific drivers that
61	  implement some extra quirks.
62
63	  If unsure, say N.
64
65config USB_XHCI_HISTB
66	tristate "xHCI support for HiSilicon STB SoCs"
67	depends on USB_XHCI_PLATFORM && (ARCH_HISI || COMPILE_TEST)
68	help
69	  Say 'Y' to enable the support for the xHCI host controller
70	  found in HiSilicon STB SoCs.
71
72config USB_XHCI_MTK
73	tristate "xHCI support for MediaTek SoCs"
74	select MFD_SYSCON
75	depends on (MIPS && SOC_MT7621) || ARCH_MEDIATEK || COMPILE_TEST
76	help
77	  Say 'Y' to enable the support for the xHCI host controller
78	  found in MediaTek SoCs.
79	  If unsure, say N.
80
81config USB_XHCI_MVEBU
82	tristate "xHCI support for Marvell Armada 375/38x/37xx"
83	select USB_XHCI_PLATFORM
84	depends on HAS_IOMEM
85	depends on ARCH_MVEBU || COMPILE_TEST
86	help
87	  Say 'Y' to enable the support for the xHCI host controller
88	  found in Marvell Armada 375/38x/37xx ARM SOCs.
89
90config USB_XHCI_RCAR
91	tristate "xHCI support for Renesas R-Car SoCs"
92	depends on USB_XHCI_PLATFORM
93	depends on ARCH_RENESAS || COMPILE_TEST
94	help
95	  Say 'Y' to enable the support for the xHCI host controller
96	  found in Renesas R-Car ARM SoCs.
97
98config USB_XHCI_TEGRA
99	tristate "xHCI support for NVIDIA Tegra SoCs"
100	depends on PHY_TEGRA_XUSB
101	depends on RESET_CONTROLLER
102	select FW_LOADER
103	help
104	  Say 'Y' to enable the support for the xHCI host controller
105	  found in NVIDIA Tegra124 and later SoCs.
106
107endif # USB_XHCI_HCD
108
109config USB_EHCI_BRCMSTB
110       tristate
111
112config USB_BRCMSTB
113	tristate "Broadcom STB USB support"
114	depends on (ARCH_BRCMSTB && PHY_BRCM_USB) || COMPILE_TEST
115	select USB_OHCI_HCD_PLATFORM if USB_OHCI_HCD
116	select USB_EHCI_BRCMSTB if USB_EHCI_HCD
117	select USB_XHCI_PLATFORM if USB_XHCI_HCD
118	help
119	  Enables support for XHCI, EHCI and OHCI host controllers
120	  found in Broadcom STB SoC's.
121
122	  To compile these drivers as modules, choose M here: the
123	  modules will be called ohci-platform.ko, ehci-brcm.ko and
124	  xhci-plat-hcd.ko
125
126	  Disabling this will keep the controllers and corresponding
127	  PHYs powered down.
128
129config USB_EHCI_HCD
130	tristate "EHCI HCD (USB 2.0) support"
131	depends on HAS_DMA && HAS_IOMEM
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.rst>.
147
148	  To compile this driver as a module, choose M here: the
149	  module will be called ehci-hcd.
150
151config USB_EHCI_ROOT_HUB_TT
152	bool "Root Hub Transaction Translators"
153	depends on USB_EHCI_HCD
154	help
155	  Some EHCI chips have vendor-specific extensions to integrate
156	  transaction translators, so that no OHCI or UHCI companion
157	  controller is needed.  It's safe to say "y" even if your
158	  controller doesn't support this feature.
159
160	  This supports the EHCI implementation that's originally
161	  from ARC, and has since changed hands a few times.
162
163config USB_EHCI_TT_NEWSCHED
164	bool "Improved Transaction Translator scheduling"
165	depends on USB_EHCI_HCD
166	default y
167	help
168	  This changes the periodic scheduling code to fill more of the low
169	  and full speed bandwidth available from the Transaction Translator
170	  (TT) in USB 2.0 hubs.  Without this, only one transfer will be
171	  issued in each microframe, significantly reducing the number of
172	  periodic low/fullspeed transfers possible.
173
174	  If you have multiple periodic low/fullspeed devices connected to a
175	  highspeed USB hub which is connected to a highspeed USB Host
176	  Controller, and some of those devices will not work correctly
177	  (possibly due to "ENOSPC" or "-28" errors), say Y.  Conversely, if
178	  you have only one such device and it doesn't work, you could try
179	  saying N.
180
181	  If unsure, say Y.
182
183if USB_EHCI_HCD
184
185config USB_EHCI_PCI
186	tristate
187	depends on USB_PCI
188	default y
189
190config USB_EHCI_HCD_PMC_MSP
191	tristate "EHCI support for on-chip PMC MSP71xx USB controller"
192	depends on MSP_HAS_USB
193	select USB_EHCI_BIG_ENDIAN_DESC
194	select USB_EHCI_BIG_ENDIAN_MMIO
195	help
196		Enables support for the onchip USB controller on the PMC_MSP7100 Family SoC's.
197		If unsure, say N.
198
199config XPS_USB_HCD_XILINX
200	bool "Use Xilinx usb host EHCI controller core"
201	depends on (PPC32 || MICROBLAZE)
202	select USB_EHCI_BIG_ENDIAN_DESC
203	select USB_EHCI_BIG_ENDIAN_MMIO
204	help
205		Xilinx xps USB host controller core is EHCI compliant and has
206		transaction translator built-in. It can be configured to either
207		support both high speed and full speed devices, or high speed
208		devices only.
209
210config USB_EHCI_FSL
211	tristate "Support for Freescale on-chip EHCI USB controller"
212	select USB_EHCI_ROOT_HUB_TT
213	help
214	  Variation of ARC USB block used in some Freescale chips.
215
216config USB_EHCI_HCD_NPCM7XX
217	tristate "Support for Nuvoton NPCM7XX on-chip EHCI USB controller"
218	depends on (USB_EHCI_HCD && ARCH_NPCM7XX) || COMPILE_TEST
219	default y if (USB_EHCI_HCD && ARCH_NPCM7XX)
220	help
221	  Enables support for the on-chip EHCI controller on
222	  Nuvoton NPCM7XX chips.
223
224config USB_EHCI_HCD_OMAP
225	tristate "EHCI support for OMAP3 and later chips"
226	depends on ARCH_OMAP
227	depends on NOP_USB_XCEIV
228	default y
229	help
230	  Enables support for the on-chip EHCI controller on
231	  OMAP3 and later chips.
232
233config USB_EHCI_HCD_ORION
234	tristate  "Support for Marvell EBU on-chip EHCI USB controller"
235	depends on USB_EHCI_HCD && (PLAT_ORION || ARCH_MVEBU || COMPILE_TEST)
236	default y if (PLAT_ORION || ARCH_MVEBU)
237	help
238	  Enables support for the on-chip EHCI controller on Marvell's
239	  embedded ARM SoCs, including Orion, Kirkwood, Dove, Armada XP,
240	  Armada 370.  This is different from the EHCI implementation
241	  on Marvell's mobile PXA and MMP SoC, see "EHCI support for
242	  Marvell PXA/MMP USB controller" for those.
243
244config USB_EHCI_HCD_SPEAR
245	tristate "Support for ST SPEAr on-chip EHCI USB controller"
246	depends on USB_EHCI_HCD && (PLAT_SPEAR || COMPILE_TEST)
247	default y if PLAT_SPEAR
248	help
249	  Enables support for the on-chip EHCI controller on
250	  ST SPEAr chips.
251
252config USB_EHCI_HCD_STI
253	tristate "Support for ST STiHxxx on-chip EHCI USB controller"
254	depends on (ARCH_STI || COMPILE_TEST) && OF
255	select GENERIC_PHY
256	select USB_EHCI_HCD_PLATFORM
257	help
258	  Enable support for the on-chip EHCI controller found on
259	  STMicroelectronics consumer electronics SoC's.
260
261config USB_EHCI_HCD_AT91
262	tristate  "Support for Atmel on-chip EHCI USB controller"
263	depends on USB_EHCI_HCD && (ARCH_AT91 || COMPILE_TEST)
264	default y if ARCH_AT91
265	help
266	  Enables support for the on-chip EHCI controller on
267	  Atmel chips.
268
269config USB_EHCI_TEGRA
270	tristate "NVIDIA Tegra HCD support"
271	depends on ARCH_TEGRA
272	select USB_CHIPIDEA
273	select USB_CHIPIDEA_HOST
274	select USB_CHIPIDEA_TEGRA
275	select USB_GADGET
276	help
277	  This option is deprecated now and the driver was removed, use
278	  USB_CHIPIDEA_TEGRA instead.
279
280	  Enable support for the internal USB Host Controllers
281	  found in NVIDIA Tegra SoCs. The controllers are EHCI compliant.
282
283config USB_EHCI_HCD_PPC_OF
284	bool "EHCI support for PPC USB controller on OF platform bus"
285	depends on PPC
286	default y
287	help
288	  Enables support for the USB controller present on the PowerPC
289	  OpenFirmware platform bus.
290
291config USB_EHCI_SH
292	bool "EHCI support for SuperH USB controller"
293	depends on SUPERH || COMPILE_TEST
294	help
295	  Enables support for the on-chip EHCI controller on the SuperH.
296	  If you use the PCI EHCI controller, this option is not necessary.
297
298config USB_EHCI_EXYNOS
299	tristate "EHCI support for Samsung S5P/Exynos SoC Series"
300	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
301	help
302	  Enable support for the Samsung Exynos SOC's on-chip EHCI controller.
303
304config USB_EHCI_MV
305	tristate "EHCI support for Marvell PXA/MMP USB controller"
306	depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
307	select USB_EHCI_ROOT_HUB_TT
308	help
309	  Enables support for Marvell (including PXA and MMP series) on-chip
310	  USB SPH and OTG controller. SPH is a single port host, and it can
311	  only be EHCI host. OTG is controller that can switch to host mode.
312	  Note that this driver will not work on Marvell's other EHCI
313	  controller used by the EBU-type SoCs including Orion, Kirkwood,
314	  Dova, Armada 370 and Armada XP. See "Support for Marvell EBU
315	  on-chip EHCI USB controller" for those.
316
317config USB_CNS3XXX_EHCI
318	bool "Cavium CNS3XXX EHCI Module (DEPRECATED)"
319	depends on ARCH_CNS3XXX || COMPILE_TEST
320	select USB_EHCI_HCD_PLATFORM
321	help
322	  This option is deprecated now and the driver was removed, use
323	  USB_EHCI_HCD_PLATFORM instead.
324
325	  Enable support for the CNS3XXX SOC's on-chip EHCI controller.
326	  It is needed for high-speed (480Mbit/sec) USB 2.0 device
327	  support.
328
329config USB_EHCI_HCD_PLATFORM
330	tristate "Generic EHCI driver for a platform device"
331	help
332	  Adds an EHCI host driver for a generic platform device, which
333	  provides a memory space and an irq.
334
335	  If unsure, say N.
336
337config USB_OCTEON_EHCI
338	bool "Octeon on-chip EHCI support (DEPRECATED)"
339	depends on CAVIUM_OCTEON_SOC
340	select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
341	select USB_EHCI_HCD_PLATFORM
342	help
343	  This option is deprecated now and the driver was removed, use
344	  USB_EHCI_HCD_PLATFORM instead.
345
346	  Enable support for the Octeon II SOC's on-chip EHCI
347	  controller.  It is needed for high-speed (480Mbit/sec)
348	  USB 2.0 device support.  All CN6XXX based chips with USB are
349	  supported.
350
351endif # USB_EHCI_HCD
352
353config USB_OXU210HP_HCD
354	tristate "OXU210HP HCD support"
355	depends on HAS_IOMEM
356	help
357	  The OXU210HP is an USB host/OTG/device controller. Enable this
358	  option if your board has this chip. If unsure, say N.
359
360	  This driver does not support isochronous transfers and doesn't
361	  implement OTG nor USB device controllers.
362
363	  To compile this driver as a module, choose M here: the
364	  module will be called oxu210hp-hcd.
365
366config USB_ISP116X_HCD
367	tristate "ISP116X HCD support"
368	depends on HAS_IOMEM
369	help
370	  The ISP1160 and ISP1161 chips are USB host controllers. Enable this
371	  option if your board has this chip. If unsure, say N.
372
373	  This driver does not support isochronous transfers.
374
375	  To compile this driver as a module, choose M here: the
376	  module will be called isp116x-hcd.
377
378config USB_ISP1362_HCD
379	tristate "ISP1362 HCD support"
380	depends on HAS_IOMEM
381	depends on COMPILE_TEST # nothing uses this
382	help
383	  Supports the Philips ISP1362 chip as a host controller
384
385	  This driver does not support isochronous transfers.
386
387	  To compile this driver as a module, choose M here: the
388	  module will be called isp1362-hcd.
389
390config USB_FOTG210_HCD
391	tristate "FOTG210 HCD support"
392	depends on USB && HAS_DMA && HAS_IOMEM
393	help
394	  Faraday FOTG210 is an OTG controller which can be configured as
395	  an USB2.0 host. It is designed to meet USB2.0 EHCI specification
396	  with minor modification.
397
398	  To compile this driver as a module, choose M here: the
399	  module will be called fotg210-hcd.
400
401config USB_MAX3421_HCD
402	tristate "MAX3421 HCD (USB-over-SPI) support"
403	depends on USB && SPI
404	help
405	  The Maxim MAX3421E chip supports standard USB 2.0-compliant
406	  full-speed devices either in host or peripheral mode.  This
407	  driver supports the host-mode of the MAX3421E only.
408
409	  To compile this driver as a module, choose M here: the module will
410	  be called max3421-hcd.
411
412config USB_OHCI_HCD
413	tristate "OHCI HCD (USB 1.1) support"
414	depends on HAS_DMA && HAS_IOMEM
415	help
416	  The Open Host Controller Interface (OHCI) is a standard for accessing
417	  USB 1.1 host controller hardware.  It does more in hardware than Intel's
418	  UHCI specification.  If your USB host controller follows the OHCI spec,
419	  say Y.  On most non-x86 systems, and on x86 hardware that's not using a
420	  USB controller from Intel or VIA, this is appropriate.  If your host
421	  controller doesn't use PCI, this is probably appropriate.  For a PCI
422	  based system where you're not sure, the "lspci -v" entry will list the
423	  right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
424
425	  To compile this driver as a module, choose M here: the
426	  module will be called ohci-hcd.
427
428if USB_OHCI_HCD
429
430config USB_OHCI_HCD_OMAP1
431	tristate "OHCI support for OMAP1/2 chips"
432	depends on ARCH_OMAP1
433	depends on ISP1301_OMAP || !(MACH_OMAP_H2 || MACH_OMAP_H3)
434	default y
435	help
436	  Enables support for the OHCI controller on OMAP1/2 chips.
437
438config USB_OHCI_HCD_SPEAR
439	tristate "Support for ST SPEAr on-chip OHCI USB controller"
440	depends on USB_OHCI_HCD && (PLAT_SPEAR || COMPILE_TEST)
441	default y if PLAT_SPEAR
442	help
443	  Enables support for the on-chip OHCI controller on
444	  ST SPEAr chips.
445
446config USB_OHCI_HCD_STI
447	tristate "Support for ST STiHxxx on-chip OHCI USB controller"
448	depends on (ARCH_STI || COMPILE_TEST) && OF
449	select GENERIC_PHY
450	select USB_OHCI_HCD_PLATFORM
451	help
452	  Enable support for the on-chip OHCI controller found on
453	  STMicroelectronics consumer electronics SoC's.
454
455config USB_OHCI_HCD_S3C2410
456	tristate "OHCI support for Samsung S3C24xx/S3C64xx SoC series"
457	depends on USB_OHCI_HCD && (ARCH_S3C24XX || ARCH_S3C64XX || COMPILE_TEST)
458	default y if (ARCH_S3C24XX || ARCH_S3C64XX)
459	help
460	  Enables support for the on-chip OHCI controller on
461	  S3C24xx/S3C64xx chips.
462
463config USB_OHCI_HCD_LPC32XX
464	tristate "Support for LPC on-chip OHCI USB controller"
465	depends on USB_OHCI_HCD
466	depends on ARCH_LPC32XX || COMPILE_TEST
467	depends on USB_ISP1301
468	default y
469	help
470	  Enables support for the on-chip OHCI controller on
471	  NXP chips.
472
473config USB_OHCI_HCD_PXA27X
474	tristate "Support for PXA27X/PXA3XX on-chip OHCI USB controller"
475	depends on USB_OHCI_HCD && (PXA27x || PXA3xx)
476	default y
477	help
478	  Enables support for the on-chip OHCI controller on
479	  PXA27x/PXA3xx chips.
480
481config USB_OHCI_HCD_AT91
482	tristate "Support for Atmel on-chip OHCI USB controller"
483	depends on USB_OHCI_HCD && (ARCH_AT91 || COMPILE_TEST) && OF
484	default y if ARCH_AT91
485	help
486	  Enables support for the on-chip OHCI controller on
487	  Atmel chips.
488
489config USB_OHCI_HCD_OMAP3
490	tristate "OHCI support for OMAP3 and later chips"
491	depends on ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5 || COMPILE_TEST
492	select USB_OHCI_HCD_PLATFORM
493	default y if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5
494	help
495	  This option is deprecated now and the driver was removed, use
496	  USB_OHCI_HCD_PLATFORM instead.
497
498	  Enables support for the on-chip OHCI controller on
499	  OMAP3 and later chips.
500
501config USB_OHCI_HCD_DAVINCI
502	tristate "OHCI support for TI DaVinci DA8xx"
503	depends on ARCH_DAVINCI_DA8XX || COMPILE_TEST
504	depends on USB_OHCI_HCD
505	select PHY_DA8XX_USB
506	default y if ARCH_DAVINCI_DA8XX
507	help
508	  Enables support for the DaVinci DA8xx integrated OHCI
509	  controller. This driver cannot currently be a loadable
510	  module because it lacks a proper PHY abstraction.
511
512config USB_OHCI_HCD_PPC_OF_BE
513	bool "OHCI support for OF platform bus (big endian)"
514	depends on PPC
515	select USB_OHCI_BIG_ENDIAN_DESC
516	select USB_OHCI_BIG_ENDIAN_MMIO
517	help
518	  Enables support for big-endian USB controllers present on the
519	  OpenFirmware platform bus.
520
521config USB_OHCI_HCD_PPC_OF_LE
522	bool "OHCI support for OF platform bus (little endian)"
523	depends on PPC
524	select USB_OHCI_LITTLE_ENDIAN
525	help
526	  Enables support for little-endian USB controllers present on the
527	  OpenFirmware platform bus.
528
529config USB_OHCI_HCD_PPC_OF
530	bool
531	depends on PPC
532	default USB_OHCI_HCD_PPC_OF_BE || USB_OHCI_HCD_PPC_OF_LE
533
534config USB_OHCI_HCD_PCI
535	tristate "OHCI support for PCI-bus USB controllers"
536	depends on USB_PCI
537	default y
538	select USB_OHCI_LITTLE_ENDIAN
539	help
540	  Enables support for PCI-bus plug-in USB controller cards.
541	  If unsure, say Y.
542
543config USB_OHCI_HCD_SSB
544	bool "OHCI support for Broadcom SSB OHCI core (DEPRECATED)"
545	depends on (SSB = y || SSB = USB_OHCI_HCD)
546	select USB_HCD_SSB
547	select USB_OHCI_HCD_PLATFORM
548	help
549	  This option is deprecated now and the driver was removed, use
550	  USB_HCD_SSB and USB_OHCI_HCD_PLATFORM instead.
551
552	  Support for the Sonics Silicon Backplane (SSB) attached
553	  Broadcom USB OHCI core.
554
555	  This device is present in some embedded devices with
556	  Broadcom based SSB bus.
557
558	  If unsure, say N.
559
560config USB_OHCI_SH
561	bool "OHCI support for SuperH USB controller (DEPRECATED)"
562	depends on SUPERH || COMPILE_TEST
563	select USB_OHCI_HCD_PLATFORM
564	help
565	  This option is deprecated now and the driver was removed, use
566	  USB_OHCI_HCD_PLATFORM instead.
567
568	  Enables support for the on-chip OHCI controller on the SuperH.
569	  If you use the PCI OHCI controller, this option is not necessary.
570
571config USB_OHCI_EXYNOS
572	tristate "OHCI support for Samsung S5P/Exynos SoC Series"
573	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
574	help
575	  Enable support for the Samsung Exynos SOC's on-chip OHCI controller.
576
577config USB_CNS3XXX_OHCI
578	bool "Cavium CNS3XXX OHCI Module (DEPRECATED)"
579	depends on ARCH_CNS3XXX || COMPILE_TEST
580	select USB_OHCI_HCD_PLATFORM
581	help
582	  This option is deprecated now and the driver was removed, use
583	  USB_OHCI_HCD_PLATFORM instead.
584
585	  Enable support for the CNS3XXX SOC's on-chip OHCI controller.
586	  It is needed for low-speed USB 1.0 device support.
587
588config USB_OHCI_HCD_PLATFORM
589	tristate "Generic OHCI driver for a platform device"
590	help
591	  Adds an OHCI host driver for a generic platform device, which
592	  provides a memory space and an irq.
593
594	  If unsure, say N.
595
596config USB_OCTEON_OHCI
597	bool "Octeon on-chip OHCI support (DEPRECATED)"
598	depends on CAVIUM_OCTEON_SOC
599	default USB_OCTEON_EHCI
600	select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
601	select USB_OHCI_LITTLE_ENDIAN
602	select USB_OHCI_HCD_PLATFORM
603	help
604	  This option is deprecated now and the driver was removed, use
605	  USB_OHCI_HCD_PLATFORM instead.
606
607	  Enable support for the Octeon II SOC's on-chip OHCI
608	  controller.  It is needed for low-speed USB 1.0 device
609	  support.  All CN6XXX based chips with USB are supported.
610
611endif # USB_OHCI_HCD
612
613config USB_UHCI_HCD
614	tristate "UHCI HCD (most Intel and VIA) support"
615	depends on USB_PCI || USB_UHCI_SUPPORT_NON_PCI_HC
616	help
617	  The Universal Host Controller Interface is a standard by Intel for
618	  accessing the USB hardware in the PC (which is also called the USB
619	  host controller). If your USB host controller conforms to this
620	  standard, you may want to say Y, but see below. All recent boards
621	  with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
622	  i810, i820) conform to this standard. Also all VIA PCI chipsets
623	  (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
624	  133) and LEON/GRLIB SoCs with the GRUSBHC controller.
625	  If unsure, say Y.
626
627	  To compile this driver as a module, choose M here: the
628	  module will be called uhci-hcd.
629
630config USB_UHCI_SUPPORT_NON_PCI_HC
631	bool
632	default y if (SPARC_LEON || USB_UHCI_PLATFORM)
633
634config USB_UHCI_PLATFORM
635	bool
636	default y if (ARCH_VT8500 || ARCH_ASPEED)
637
638config USB_UHCI_ASPEED
639	bool
640	default y if ARCH_ASPEED
641
642config USB_FHCI_HCD
643	tristate "Freescale QE USB Host Controller support"
644	depends on OF_GPIO && QE_GPIO && QUICC_ENGINE
645	select FSL_GTM
646	select QE_USB
647	help
648	  This driver enables support for Freescale QE USB Host Controller
649	  (as found on MPC8360 and MPC8323 processors), the driver supports
650	  Full and Low Speed USB.
651
652config FHCI_DEBUG
653	bool "Freescale QE USB Host Controller debug support"
654	depends on USB_FHCI_HCD && DEBUG_FS
655	help
656	  Say "y" to see some FHCI debug information and statistics
657	  through debugfs.
658
659config USB_U132_HCD
660	tristate "Elan U132 Adapter Host Controller"
661	depends on USB_FTDI_ELAN
662	help
663	  The U132 adapter is a USB to CardBus adapter specifically designed
664	  for PC cards that contain an OHCI host controller. Typical PC cards
665	  are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
666	  adapter will *NOT* work with PC cards that do not contain an OHCI
667	  controller.
668
669	  For those PC cards that contain multiple OHCI controllers only the
670	  first one is used.
671
672	  The driver consists of two modules, the "ftdi-elan" module is a
673	  USB client driver that interfaces to the FTDI chip within ELAN's
674	  USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
675	  controller driver that talks to the OHCI controller within the
676	  CardBus cards that are inserted in the U132 adapter.
677
678	  This driver has been tested with a CardBus OHCI USB adapter, and
679	  worked with a USB PEN Drive inserted into the first USB port of
680	  the PCCARD. A rather pointless thing to do, but useful for testing.
681
682	  It is safe to say M here.
683
684	  See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
685
686config USB_SL811_HCD
687	tristate "SL811HS HCD support"
688	depends on HAS_IOMEM
689	help
690	  The SL811HS is a single-port USB controller that supports either
691	  host side or peripheral side roles.  Enable this option if your
692	  board has this chip, and you want to use it as a host controller.
693	  If unsure, say N.
694
695	  To compile this driver as a module, choose M here: the
696	  module will be called sl811-hcd.
697
698config USB_SL811_HCD_ISO
699	bool "partial ISO support"
700	depends on USB_SL811_HCD
701	help
702	  The driver doesn't support iso_frame_desc (yet), but for some simple
703	  devices that just queue one ISO frame per URB, then ISO transfers
704	  "should" work using the normal urb status fields.
705
706	  If unsure, say N.
707
708config USB_SL811_CS
709	tristate "CF/PCMCIA support for SL811HS HCD"
710	depends on USB_SL811_HCD && PCMCIA
711	help
712	  Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC
713	  REX-CFU1U CF card (often used with PDAs).  If unsure, say N.
714
715	  To compile this driver as a module, choose M here: the
716	  module will be called "sl811_cs".
717
718config USB_R8A66597_HCD
719	tristate "R8A66597 HCD support"
720	depends on HAS_IOMEM
721	help
722	  The R8A66597 is a USB 2.0 host and peripheral controller.
723
724	  Enable this option if your board has this chip, and you want
725	  to use it as a host controller.  If unsure, say N.
726
727	  To compile this driver as a module, choose M here: the
728	  module will be called r8a66597-hcd.
729
730config USB_RENESAS_USBHS_HCD
731	tristate "Renesas USBHS HCD support"
732	depends on USB_RENESAS_USBHS
733	help
734	  The Renesas USBHS is a USB 2.0 host and peripheral controller.
735
736	  Enable this option if your board has this chip, and you want
737	  to use it as a host controller.  If unsure, say N.
738
739	  To compile this driver as a module, choose M here: the
740	  module will be called renesas-usbhs.
741
742config USB_HCD_BCMA
743	tristate "BCMA usb host driver"
744	depends on BCMA
745	select USB_OHCI_HCD_PLATFORM if USB_OHCI_HCD
746	select USB_EHCI_HCD_PLATFORM if USB_EHCI_HCD
747	help
748	  Enable support for the EHCI and OCHI host controller on an bcma bus.
749	  It converts the bcma driver into two platform device drivers
750	  for ehci and ohci.
751
752	  If unsure, say N.
753
754config USB_HCD_SSB
755	tristate "SSB usb host driver"
756	depends on SSB
757	select USB_OHCI_HCD_PLATFORM if USB_OHCI_HCD
758	select USB_EHCI_HCD_PLATFORM if USB_EHCI_HCD
759	help
760	  Enable support for the EHCI and OCHI host controller on an bcma bus.
761	  It converts the bcma driver into two platform device drivers
762	  for ehci and ohci.
763
764	  If unsure, say N.
765
766config USB_HCD_TEST_MODE
767	bool "HCD test mode support"
768	help
769	  Say 'Y' to enable additional software test modes that may be
770	  supported by the host controller drivers.
771
772	  One such test mode is the Embedded High-speed Host Electrical Test
773	  (EHSET) for EHCI host controller hardware, specifically the "Single
774	  Step Set Feature" test.  Typically this will be enabled for On-the-Go
775	  or embedded hosts that need to undergo USB-IF compliance testing with
776	  the aid of special testing hardware.  In the future, this may expand
777	  to include other tests that require support from a HCD driver.
778
779	  This option is of interest only to developers who need to validate
780	  their USB hardware designs.  It is not needed for normal use.  If
781	  unsure, say N.
782