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