xref: /linux/drivers/usb/host/Kconfig (revision 7a7a4a592f42d9abf3b6cc40620b3f79fef49246)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# USB Host Controller Drivers
31da177e4SLinus Torvalds#
41da177e4SLinus Torvaldscomment "USB Host Controller Drivers"
51da177e4SLinus Torvalds	depends on USB
61da177e4SLinus Torvalds
7e9b29ffcSPeter Korsgaardconfig USB_C67X00_HCD
8e9b29ffcSPeter Korsgaard	tristate "Cypress C67x00 HCD support"
9e9b29ffcSPeter Korsgaard	depends on USB
10e9b29ffcSPeter Korsgaard	help
11e9b29ffcSPeter Korsgaard	  The Cypress C67x00 (EZ-Host/EZ-OTG) chips are dual-role
12e9b29ffcSPeter Korsgaard	  host/peripheral/OTG USB controllers.
13e9b29ffcSPeter Korsgaard
14e9b29ffcSPeter Korsgaard	  Enable this option to support this chip in host controller mode.
15e9b29ffcSPeter Korsgaard	  If unsure, say N.
16e9b29ffcSPeter Korsgaard
17e9b29ffcSPeter Korsgaard	  To compile this driver as a module, choose M here: the
18e9b29ffcSPeter Korsgaard	  module will be called c67x00.
19e9b29ffcSPeter Korsgaard
20eb6bab13SSarah Sharpconfig USB_XHCI_HCD
21eb6bab13SSarah Sharp	tristate "xHCI HCD (USB 3.0) support (EXPERIMENTAL)"
227b720009SFelipe Balbi	depends on USB && USB_ARCH_HAS_XHCI && EXPERIMENTAL
23eb6bab13SSarah Sharp	---help---
24eb6bab13SSarah Sharp	  The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
25eb6bab13SSarah Sharp	  "SuperSpeed" host controller hardware.
26eb6bab13SSarah Sharp
27eb6bab13SSarah Sharp	  To compile this driver as a module, choose M here: the
28eb6bab13SSarah Sharp	  module will be called xhci-hcd.
29eb6bab13SSarah Sharp
303429e91aSSebastian Andrzej Siewiorconfig USB_XHCI_PLATFORM
313429e91aSSebastian Andrzej Siewior	tristate
323429e91aSSebastian Andrzej Siewior	depends on USB_XHCI_HCD
333429e91aSSebastian Andrzej Siewior
34eb6bab13SSarah Sharpconfig USB_XHCI_HCD_DEBUGGING
35eb6bab13SSarah Sharp	bool "Debugging for the xHCI host controller"
36eb6bab13SSarah Sharp	depends on USB_XHCI_HCD
37eb6bab13SSarah Sharp	---help---
38eb6bab13SSarah Sharp	  Say 'Y' to turn on debugging for the xHCI host controller driver.
39eb6bab13SSarah Sharp	  This will spew debugging output, even in interrupt context.
40eb6bab13SSarah Sharp	  This should only be used for debugging xHCI driver bugs.
41eb6bab13SSarah Sharp
42eb6bab13SSarah Sharp	  If unsure, say N.
43eb6bab13SSarah Sharp
441da177e4SLinus Torvaldsconfig USB_EHCI_HCD
451da177e4SLinus Torvalds	tristate "EHCI HCD (USB 2.0) support"
4676fa9a24SJordan Crouse	depends on USB && USB_ARCH_HAS_EHCI
471da177e4SLinus Torvalds	---help---
481da177e4SLinus Torvalds	  The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
491da177e4SLinus Torvalds	  "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
501da177e4SLinus Torvalds	  If your USB host controller supports USB 2.0, you will likely want to
51b967c88eSThierry Vignaud	  configure this Host Controller Driver.
521da177e4SLinus Torvalds
531da177e4SLinus Torvalds	  EHCI controllers are packaged with "companion" host controllers (OHCI
541da177e4SLinus Torvalds	  or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
55b3c29d85SJesper Juhl	  will connect to EHCI if the device is high speed, otherwise they
561da177e4SLinus Torvalds	  connect to a companion controller.  If you configure EHCI, you should
571da177e4SLinus Torvalds	  probably configure the OHCI (for NEC and some other vendors) USB Host
581da177e4SLinus Torvalds	  Controller Driver or UHCI (for Via motherboards) Host Controller
591da177e4SLinus Torvalds	  Driver too.
601da177e4SLinus Torvalds
611da177e4SLinus Torvalds	  You may want to read <file:Documentation/usb/ehci.txt>.
621da177e4SLinus Torvalds
631da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
641da177e4SLinus Torvalds	  module will be called ehci-hcd.
651da177e4SLinus Torvalds
661da177e4SLinus Torvaldsconfig USB_EHCI_ROOT_HUB_TT
679ec249a6SRobert P. J. Day	bool "Root Hub Transaction Translators"
689ec249a6SRobert P. J. Day	depends on USB_EHCI_HCD
691da177e4SLinus Torvalds	---help---
701da177e4SLinus Torvalds	  Some EHCI chips have vendor-specific extensions to integrate
711da177e4SLinus Torvalds	  transaction translators, so that no OHCI or UHCI companion
721da177e4SLinus Torvalds	  controller is needed.  It's safe to say "y" even if your
731da177e4SLinus Torvalds	  controller doesn't support this feature.
741da177e4SLinus Torvalds
75ba47f66bSDan Streetman	  This supports the EHCI implementation that's originally
76ba47f66bSDan Streetman	  from ARC, and has since changed hands a few times.
77ba47f66bSDan Streetman
78ba47f66bSDan Streetmanconfig USB_EHCI_TT_NEWSCHED
7937cd681cSAlan Stern	bool "Improved Transaction Translator scheduling"
8037cd681cSAlan Stern	depends on USB_EHCI_HCD
8137cd681cSAlan Stern	default y
82ba47f66bSDan Streetman	---help---
83ba47f66bSDan Streetman	  This changes the periodic scheduling code to fill more of the low
84ba47f66bSDan Streetman	  and full speed bandwidth available from the Transaction Translator
85ba47f66bSDan Streetman	  (TT) in USB 2.0 hubs.  Without this, only one transfer will be
86ba47f66bSDan Streetman	  issued in each microframe, significantly reducing the number of
87ba47f66bSDan Streetman	  periodic low/fullspeed transfers possible.
88ba47f66bSDan Streetman
89ba47f66bSDan Streetman	  If you have multiple periodic low/fullspeed devices connected to a
90ba47f66bSDan Streetman	  highspeed USB hub which is connected to a highspeed USB Host
91ba47f66bSDan Streetman	  Controller, and some of those devices will not work correctly
9237cd681cSAlan Stern	  (possibly due to "ENOSPC" or "-28" errors), say Y.  Conversely, if
9337cd681cSAlan Stern	  you have only one such device and it doesn't work, you could try
9437cd681cSAlan Stern	  saying N.
95ba47f66bSDan Streetman
9637cd681cSAlan Stern	  If unsure, say Y.
971da177e4SLinus Torvalds
9822ced687SAnoopconfig USB_EHCI_HCD_PMC_MSP
9922ced687SAnoop	tristate "EHCI support for on-chip PMC MSP71xx USB controller"
10022ced687SAnoop	depends on USB_EHCI_HCD && MSP_HAS_USB
10122ced687SAnoop	default n
10222ced687SAnoop	select USB_EHCI_BIG_ENDIAN_DESC
10322ced687SAnoop	select USB_EHCI_BIG_ENDIAN_MMIO
10422ced687SAnoop	---help---
10522ced687SAnoop		Enables support for the onchip USB controller on the PMC_MSP7100 Family SoC's.
10622ced687SAnoop		If unsure, say N.
10722ced687SAnoop
108083522d7SBenjamin Herrenschmidtconfig USB_EHCI_BIG_ENDIAN_MMIO
109083522d7SBenjamin Herrenschmidt	bool
1101643accdSDavid Daney	depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || \
1111643accdSDavid Daney				    ARCH_IXP4XX || XPS_USB_HCD_XILINX || \
11222ced687SAnoop				    PPC_MPC512x || CPU_CAVIUM_OCTEON || \
1139be03929SJan Andersson				    PMC_MSP || SPARC_LEON)
1144d68c0beSStefan Roese	default y
115083522d7SBenjamin Herrenschmidt
1166dbd682bSStefan Roeseconfig USB_EHCI_BIG_ENDIAN_DESC
1176dbd682bSStefan Roese	bool
118230f7edeSAnatolij Gustschin	depends on USB_EHCI_HCD && (440EPX || ARCH_IXP4XX || XPS_USB_HCD_XILINX || \
1199be03929SJan Andersson				    PPC_MPC512x || PMC_MSP || SPARC_LEON)
1204d68c0beSStefan Roese	default y
1216dbd682bSStefan Roese
12208d3c18eSJulie Zhuconfig XPS_USB_HCD_XILINX
12308d3c18eSJulie Zhu	bool "Use Xilinx usb host EHCI controller core"
12408d3c18eSJulie Zhu	depends on USB_EHCI_HCD && (PPC32 || MICROBLAZE)
12508d3c18eSJulie Zhu	select USB_EHCI_BIG_ENDIAN_DESC
12608d3c18eSJulie Zhu	select USB_EHCI_BIG_ENDIAN_MMIO
12708d3c18eSJulie Zhu	---help---
12808d3c18eSJulie Zhu		Xilinx xps USB host controller core is EHCI compilant and has
12908d3c18eSJulie Zhu		transaction translator built-in. It can be configured to either
13008d3c18eSJulie Zhu		support both high speed and full speed devices, or high speed
13108d3c18eSJulie Zhu		devices only.
13208d3c18eSJulie Zhu
133126512e3SAnatolij Gustschinconfig USB_FSL_MPH_DR_OF
134126512e3SAnatolij Gustschin	tristate
135126512e3SAnatolij Gustschin
136ba02978aSLi Yangconfig USB_EHCI_FSL
137c0ca9bc5SFabio Estevam	bool "Support for Freescale PPC on-chip EHCI USB controller"
138b5937a41SAnton Vorontsov	depends on USB_EHCI_HCD && FSL_SOC
139ba02978aSLi Yang	select USB_EHCI_ROOT_HUB_TT
140018b97d0SMarc Kleine-Budde	select USB_FSL_MPH_DR_OF if OF
141ba02978aSLi Yang	---help---
142ba02978aSLi Yang	  Variation of ARC USB block used in some Freescale chips.
143ba02978aSLi Yang
1447e8d5cd9SDaniel Mackconfig USB_EHCI_MXC
145c0ca9bc5SFabio Estevam	bool "Support for Freescale i.MX on-chip EHCI USB controller"
1467e8d5cd9SDaniel Mack	depends on USB_EHCI_HCD && ARCH_MXC
1477e8d5cd9SDaniel Mack	select USB_EHCI_ROOT_HUB_TT
1487e8d5cd9SDaniel Mack	---help---
1497e8d5cd9SDaniel Mack	  Variation of ARC USB block used in some Freescale chips.
1507e8d5cd9SDaniel Mack
1517f124f4bSKeshava Munegowdaconfig USB_EHCI_HCD_OMAP
1527f124f4bSKeshava Munegowda	bool "EHCI support for OMAP3 and later chips"
1537f124f4bSKeshava Munegowda	depends on USB_EHCI_HCD && ARCH_OMAP
1547f124f4bSKeshava Munegowda	default y
1557f124f4bSKeshava Munegowda	--- help ---
1567f124f4bSKeshava Munegowda	  Enables support for the on-chip EHCI controller on
1577f124f4bSKeshava Munegowda	  OMAP3 and later chips.
1587f124f4bSKeshava Munegowda
159b0848aeaSPavankumar Kondeticonfig USB_EHCI_MSM
160b0848aeaSPavankumar Kondeti	bool "Support for MSM on-chip EHCI USB controller"
161b0848aeaSPavankumar Kondeti	depends on USB_EHCI_HCD && ARCH_MSM
162b0848aeaSPavankumar Kondeti	select USB_EHCI_ROOT_HUB_TT
163dfb2130cSPavankumar Kondeti	select USB_MSM_OTG
164b0848aeaSPavankumar Kondeti	---help---
165b0848aeaSPavankumar Kondeti	  Enables support for the USB Host controller present on the
166b0848aeaSPavankumar Kondeti	  Qualcomm chipsets. Root Hub has inbuilt TT.
167b0848aeaSPavankumar Kondeti	  This driver depends on OTG driver for PHY initialization,
1688bb6a164SPavankumar Kondeti	  clock management, powering up VBUS, and power management.
1698cf28f1fSPavankumar Kondeti	  This driver is not supported on boards like trout which
1708cf28f1fSPavankumar Kondeti	  has an external PHY.
171b0848aeaSPavankumar Kondeti
17279ad3b5aSBenoit Gobyconfig USB_EHCI_TEGRA
17379ad3b5aSBenoit Goby       boolean "NVIDIA Tegra HCD support"
17479ad3b5aSBenoit Goby       depends on USB_EHCI_HCD && ARCH_TEGRA
17579ad3b5aSBenoit Goby       select USB_EHCI_ROOT_HUB_TT
17679ad3b5aSBenoit Goby       help
17779ad3b5aSBenoit Goby         This driver enables support for the internal USB Host Controllers
17879ad3b5aSBenoit Goby         found in NVIDIA Tegra SoCs. The controllers are EHCI compliant.
17979ad3b5aSBenoit Goby
180da0e8fb0SValentine Barshakconfig USB_EHCI_HCD_PPC_OF
181da0e8fb0SValentine Barshak	bool "EHCI support for PPC USB controller on OF platform bus"
182da0e8fb0SValentine Barshak	depends on USB_EHCI_HCD && PPC_OF
183da0e8fb0SValentine Barshak	default y
184da0e8fb0SValentine Barshak	---help---
185da0e8fb0SValentine Barshak	  Enables support for the USB controller present on the PowerPC
186da0e8fb0SValentine Barshak	  OpenFirmware platform bus.
187da0e8fb0SValentine Barshak
18860b0bf0fSYoshihiro Shimodaconfig USB_EHCI_SH
18960b0bf0fSYoshihiro Shimoda	bool "EHCI support for SuperH USB controller"
19060b0bf0fSYoshihiro Shimoda	depends on USB_EHCI_HCD && SUPERH
19160b0bf0fSYoshihiro Shimoda	---help---
19260b0bf0fSYoshihiro Shimoda	  Enables support for the on-chip EHCI controller on the SuperH.
19360b0bf0fSYoshihiro Shimoda	  If you use the PCI EHCI controller, this option is not necessary.
19460b0bf0fSYoshihiro Shimoda
1951bcc5aa8SJoonyoung Shimconfig USB_EHCI_S5P
1961bcc5aa8SJoonyoung Shim       boolean "S5P EHCI support"
1971bcc5aa8SJoonyoung Shim       depends on USB_EHCI_HCD && PLAT_S5P
1981bcc5aa8SJoonyoung Shim       help
1991bcc5aa8SJoonyoung Shim	 Enable support for the S5P SOC's on-chip EHCI controller.
2001bcc5aa8SJoonyoung Shim
2013a082ec9SNeil Zhangconfig USB_EHCI_MV
2023a082ec9SNeil Zhang	bool "EHCI support for Marvell on-chip controller"
203a219b666SNeil Zhang	depends on USB_EHCI_HCD && (ARCH_PXA || ARCH_MMP)
2043a082ec9SNeil Zhang	select USB_EHCI_ROOT_HUB_TT
2053a082ec9SNeil Zhang	---help---
2063a082ec9SNeil Zhang	  Enables support for Marvell (including PXA and MMP series) on-chip
2073a082ec9SNeil Zhang	  USB SPH and OTG controller. SPH is a single port host, and it can
2083a082ec9SNeil Zhang	  only be EHCI host. OTG is controller that can switch to host mode.
2093a082ec9SNeil Zhang
210586dfc8cSWan ZongShunconfig USB_W90X900_EHCI
211586dfc8cSWan ZongShun	bool "W90X900(W90P910) EHCI support"
212586dfc8cSWan ZongShun	depends on USB_EHCI_HCD && ARCH_W90X900
213586dfc8cSWan ZongShun	---help---
214586dfc8cSWan ZongShun		Enables support for the W90X900 USB controller
215586dfc8cSWan ZongShun
216760efe69SMac Linconfig USB_CNS3XXX_EHCI
217760efe69SMac Lin	bool "Cavium CNS3XXX EHCI Module"
218760efe69SMac Lin	depends on USB_EHCI_HCD && ARCH_CNS3XXX
219760efe69SMac Lin	---help---
220760efe69SMac Lin	  Enable support for the CNS3XXX SOC's on-chip EHCI controller.
221760efe69SMac Lin	  It is needed for high-speed (480Mbit/sec) USB 2.0 device
222760efe69SMac Lin	  support.
223760efe69SMac Lin
224502fa841SGabor Juhosconfig USB_EHCI_ATH79
225502fa841SGabor Juhos	bool "EHCI support for AR7XXX/AR9XXX SoCs"
2269d6b204fSGabor Juhos	depends on USB_EHCI_HCD && (SOC_AR71XX || SOC_AR724X || SOC_AR913X || SOC_AR933X)
227502fa841SGabor Juhos	select USB_EHCI_ROOT_HUB_TT
228502fa841SGabor Juhos	default y
229502fa841SGabor Juhos	---help---
230502fa841SGabor Juhos	  Enables support for the built-in EHCI controller present
231502fa841SGabor Juhos	  on the Atheros AR7XXX/AR9XXX SoCs.
232502fa841SGabor Juhos
233b92a78e5SRodolfo Giometticonfig USB_OXU210HP_HCD
234b92a78e5SRodolfo Giometti	tristate "OXU210HP HCD support"
235b92a78e5SRodolfo Giometti	depends on USB
236b92a78e5SRodolfo Giometti	---help---
237b92a78e5SRodolfo Giometti	  The OXU210HP is an USB host/OTG/device controller. Enable this
238b92a78e5SRodolfo Giometti	  option if your board has this chip. If unsure, say N.
239b92a78e5SRodolfo Giometti
240b92a78e5SRodolfo Giometti	  This driver does not support isochronous transfers and doesn't
241b92a78e5SRodolfo Giometti	  implement OTG nor USB device controllers.
242b92a78e5SRodolfo Giometti
243b92a78e5SRodolfo Giometti	  To compile this driver as a module, choose M here: the
244b92a78e5SRodolfo Giometti	  module will be called oxu210hp-hcd.
245b92a78e5SRodolfo Giometti
2464808a1c0SOlav Kongasconfig USB_ISP116X_HCD
2474808a1c0SOlav Kongas	tristate "ISP116X HCD support"
2484808a1c0SOlav Kongas	depends on USB
2494808a1c0SOlav Kongas	---help---
2504808a1c0SOlav Kongas	  The ISP1160 and ISP1161 chips are USB host controllers. Enable this
2514808a1c0SOlav Kongas	  option if your board has this chip. If unsure, say N.
2524808a1c0SOlav Kongas
2534808a1c0SOlav Kongas	  This driver does not support isochronous transfers.
2544808a1c0SOlav Kongas
2554808a1c0SOlav Kongas	  To compile this driver as a module, choose M here: the
2564808a1c0SOlav Kongas	  module will be called isp116x-hcd.
2574808a1c0SOlav Kongas
258db11e47dSSebastian Siewiorconfig USB_ISP1760_HCD
259db11e47dSSebastian Siewior	tristate "ISP 1760 HCD support"
260f7e7aa58SCatalin Marinas	depends on USB && EXPERIMENTAL
261db11e47dSSebastian Siewior	---help---
262db11e47dSSebastian Siewior	  The ISP1760 chip is a USB 2.0 host controller.
263db11e47dSSebastian Siewior
264db11e47dSSebastian Siewior	  This driver does not support isochronous transfers or OTG.
265ff30bf1cSSebastian Andrzej Siewior	  This USB controller is usually attached to a non-DMA-Master
266ff30bf1cSSebastian Andrzej Siewior	  capable bus. NXP's eval kit brings this chip on PCI card
267ff30bf1cSSebastian Andrzej Siewior	  where the chip itself is behind a PLB to simulate such
268ff30bf1cSSebastian Andrzej Siewior	  a bus.
269db11e47dSSebastian Siewior
270db11e47dSSebastian Siewior	  To compile this driver as a module, choose M here: the
271ff30bf1cSSebastian Andrzej Siewior	  module will be called isp1760.
272db11e47dSSebastian Siewior
273a9d43091SLothar Wassmannconfig USB_ISP1362_HCD
274a9d43091SLothar Wassmann	tristate "ISP1362 HCD support"
275a9d43091SLothar Wassmann	depends on USB
276a9d43091SLothar Wassmann	default N
277a9d43091SLothar Wassmann	---help---
278a9d43091SLothar Wassmann	  Supports the Philips ISP1362 chip as a host controller
279a9d43091SLothar Wassmann
280a9d43091SLothar Wassmann	  This driver does not support isochronous transfers.
281a9d43091SLothar Wassmann
282a9d43091SLothar Wassmann	  To compile this driver as a module, choose M here: the
283a9d43091SLothar Wassmann	  module will be called isp1362-hcd.
284a9d43091SLothar Wassmann
2851da177e4SLinus Torvaldsconfig USB_OHCI_HCD
2861da177e4SLinus Torvalds	tristate "OHCI HCD support"
2871da177e4SLinus Torvalds	depends on USB && USB_ARCH_HAS_OHCI
2881da177e4SLinus Torvalds	select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
2892bf5fa13SDavid Brownell	select USB_OTG_UTILS if ARCH_OMAP
2901da177e4SLinus Torvalds	---help---
2911da177e4SLinus Torvalds	  The Open Host Controller Interface (OHCI) is a standard for accessing
2921da177e4SLinus Torvalds	  USB 1.1 host controller hardware.  It does more in hardware than Intel's
2931da177e4SLinus Torvalds	  UHCI specification.  If your USB host controller follows the OHCI spec,
2941da177e4SLinus Torvalds	  say Y.  On most non-x86 systems, and on x86 hardware that's not using a
2951da177e4SLinus Torvalds	  USB controller from Intel or VIA, this is appropriate.  If your host
2961da177e4SLinus Torvalds	  controller doesn't use PCI, this is probably appropriate.  For a PCI
2971da177e4SLinus Torvalds	  based system where you're not sure, the "lspci -v" entry will list the
2981da177e4SLinus Torvalds	  right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
2991da177e4SLinus Torvalds
3001da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
3011da177e4SLinus Torvalds	  module will be called ohci-hcd.
3021da177e4SLinus Torvalds
303968b448bSAnand Gadiyarconfig USB_OHCI_HCD_OMAP1
304968b448bSAnand Gadiyar	bool "OHCI support for OMAP1/2 chips"
305968b448bSAnand Gadiyar	depends on USB_OHCI_HCD && (ARCH_OMAP1 || ARCH_OMAP2)
306968b448bSAnand Gadiyar	default y
307968b448bSAnand Gadiyar	---help---
308968b448bSAnand Gadiyar	  Enables support for the OHCI controller on OMAP1/2 chips.
309968b448bSAnand Gadiyar
310968b448bSAnand Gadiyarconfig USB_OHCI_HCD_OMAP3
311968b448bSAnand Gadiyar	bool "OHCI support for OMAP3 and later chips"
312968b448bSAnand Gadiyar	depends on USB_OHCI_HCD && (ARCH_OMAP3 || ARCH_OMAP4)
313968b448bSAnand Gadiyar	default y
314968b448bSAnand Gadiyar	---help---
315968b448bSAnand Gadiyar	  Enables support for the on-chip OHCI controller on
316968b448bSAnand Gadiyar	  OMAP3 and later chips.
317968b448bSAnand Gadiyar
31890e6ca5cSGabor Juhosconfig USB_OHCI_ATH79
31990e6ca5cSGabor Juhos	bool "USB OHCI support for the Atheros AR71XX/AR7240 SoCs"
32090e6ca5cSGabor Juhos	depends on USB_OHCI_HCD && (SOC_AR71XX || SOC_AR724X)
32190e6ca5cSGabor Juhos	default y
32290e6ca5cSGabor Juhos	help
32390e6ca5cSGabor Juhos	  Enables support for the built-in OHCI controller present on the
32490e6ca5cSGabor Juhos	  Atheros AR71XX/AR7240 SoCs.
32590e6ca5cSGabor Juhos
3261da177e4SLinus Torvaldsconfig USB_OHCI_HCD_PPC_SOC
3271da177e4SLinus Torvalds	bool "OHCI support for on-chip PPC USB controller"
3281da177e4SLinus Torvalds	depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
3291da177e4SLinus Torvalds	default y
33011d1a4aaSBenjamin Herrenschmidt	select USB_OHCI_BIG_ENDIAN_DESC
33111d1a4aaSBenjamin Herrenschmidt	select USB_OHCI_BIG_ENDIAN_MMIO
3321da177e4SLinus Torvalds	---help---
3331da177e4SLinus Torvalds	  Enables support for the USB controller on the MPC52xx or
3341da177e4SLinus Torvalds	  STB03xxx processor chip.  If unsure, say Y.
3351da177e4SLinus Torvalds
336495a678fSSylvain Munautconfig USB_OHCI_HCD_PPC_OF_BE
33745e83889SArnd Bergmann	bool "OHCI support for OF platform bus (big endian)"
33845e83889SArnd Bergmann	depends on USB_OHCI_HCD && PPC_OF
339495a678fSSylvain Munaut	select USB_OHCI_BIG_ENDIAN_DESC
340495a678fSSylvain Munaut	select USB_OHCI_BIG_ENDIAN_MMIO
34145e83889SArnd Bergmann	---help---
34245e83889SArnd Bergmann	  Enables support for big-endian USB controllers present on the
34345e83889SArnd Bergmann	  OpenFirmware platform bus.
344495a678fSSylvain Munaut
345495a678fSSylvain Munautconfig USB_OHCI_HCD_PPC_OF_LE
34645e83889SArnd Bergmann	bool "OHCI support for OF platform bus (little endian)"
34745e83889SArnd Bergmann	depends on USB_OHCI_HCD && PPC_OF
348495a678fSSylvain Munaut	select USB_OHCI_LITTLE_ENDIAN
34945e83889SArnd Bergmann	---help---
35045e83889SArnd Bergmann	  Enables support for little-endian USB controllers present on the
35145e83889SArnd Bergmann	  OpenFirmware platform bus.
35245e83889SArnd Bergmann
35345e83889SArnd Bergmannconfig USB_OHCI_HCD_PPC_OF
35445e83889SArnd Bergmann	bool
35545e83889SArnd Bergmann	depends on USB_OHCI_HCD && PPC_OF
35645e83889SArnd Bergmann	default USB_OHCI_HCD_PPC_OF_BE || USB_OHCI_HCD_PPC_OF_LE
357495a678fSSylvain Munaut
3581da177e4SLinus Torvaldsconfig USB_OHCI_HCD_PCI
3591da177e4SLinus Torvalds	bool "OHCI support for PCI-bus USB controllers"
360495a678fSSylvain Munaut	depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
3611da177e4SLinus Torvalds	default y
3621da177e4SLinus Torvalds	select USB_OHCI_LITTLE_ENDIAN
3631da177e4SLinus Torvalds	---help---
3641da177e4SLinus Torvalds	  Enables support for PCI-bus plug-in USB controller cards.
3651da177e4SLinus Torvalds	  If unsure, say Y.
3661da177e4SLinus Torvalds
367c604e851SMichael Bueschconfig USB_OHCI_HCD_SSB
368c604e851SMichael Buesch	bool "OHCI support for Broadcom SSB OHCI core"
3691011b326SAdrian Bunk	depends on USB_OHCI_HCD && (SSB = y || SSB = USB_OHCI_HCD) && EXPERIMENTAL
370c604e851SMichael Buesch	default n
371c604e851SMichael Buesch	---help---
372c604e851SMichael Buesch	  Support for the Sonics Silicon Backplane (SSB) attached
373c604e851SMichael Buesch	  Broadcom USB OHCI core.
374c604e851SMichael Buesch
375c604e851SMichael Buesch	  This device is present in some embedded devices with
376c604e851SMichael Buesch	  Broadcom based SSB bus.
377c604e851SMichael Buesch
378c604e851SMichael Buesch	  If unsure, say N.
379c604e851SMichael Buesch
38060b0bf0fSYoshihiro Shimodaconfig USB_OHCI_SH
38160b0bf0fSYoshihiro Shimoda	bool "OHCI support for SuperH USB controller"
38260b0bf0fSYoshihiro Shimoda	depends on USB_OHCI_HCD && SUPERH
38360b0bf0fSYoshihiro Shimoda	---help---
38460b0bf0fSYoshihiro Shimoda	  Enables support for the on-chip OHCI controller on the SuperH.
38560b0bf0fSYoshihiro Shimoda	  If you use the PCI OHCI controller, this option is not necessary.
38660b0bf0fSYoshihiro Shimoda
38762194244SJingoo Hanconfig USB_OHCI_EXYNOS
38862194244SJingoo Han	boolean "OHCI support for Samsung EXYNOS SoC Series"
38962194244SJingoo Han	depends on USB_OHCI_HCD && ARCH_EXYNOS
39062194244SJingoo Han	help
39162194244SJingoo Han	 Enable support for the Samsung Exynos SOC's on-chip OHCI controller.
39262194244SJingoo Han
393760efe69SMac Linconfig USB_CNS3XXX_OHCI
394760efe69SMac Lin	bool "Cavium CNS3XXX OHCI Module"
395760efe69SMac Lin	depends on USB_OHCI_HCD && ARCH_CNS3XXX
396760efe69SMac Lin	---help---
397760efe69SMac Lin	  Enable support for the CNS3XXX SOC's on-chip OHCI controller.
398760efe69SMac Lin	  It is needed for low-speed USB 1.0 device support.
399760efe69SMac Lin
400fa3364b5SHauke Mehrtensconfig USB_OHCI_HCD_PLATFORM
401fa3364b5SHauke Mehrtens	bool "Generic OHCI driver for a platform device"
402fa3364b5SHauke Mehrtens	depends on USB_OHCI_HCD && EXPERIMENTAL
403fa3364b5SHauke Mehrtens	default n
404fa3364b5SHauke Mehrtens	---help---
405fa3364b5SHauke Mehrtens	  Adds an OHCI host driver for a generic platform device, which
406fa3364b5SHauke Mehrtens	  provieds a memory space and an irq.
407fa3364b5SHauke Mehrtens
408fa3364b5SHauke Mehrtens	  If unsure, say N.
409fa3364b5SHauke Mehrtens
410*7a7a4a59SHauke Mehrtensconfig USB_EHCI_HCD_PLATFORM
411*7a7a4a59SHauke Mehrtens	bool "Generic EHCI driver for a platform device"
412*7a7a4a59SHauke Mehrtens	depends on USB_EHCI_HCD && EXPERIMENTAL
413*7a7a4a59SHauke Mehrtens	default n
414*7a7a4a59SHauke Mehrtens	---help---
415*7a7a4a59SHauke Mehrtens	  Adds an EHCI host driver for a generic platform device, which
416*7a7a4a59SHauke Mehrtens	  provieds a memory space and an irq.
417*7a7a4a59SHauke Mehrtens
418*7a7a4a59SHauke Mehrtens	  If unsure, say N.
419*7a7a4a59SHauke Mehrtens
42011d1a4aaSBenjamin Herrenschmidtconfig USB_OHCI_BIG_ENDIAN_DESC
42111d1a4aaSBenjamin Herrenschmidt	bool
42211d1a4aaSBenjamin Herrenschmidt	depends on USB_OHCI_HCD
42311d1a4aaSBenjamin Herrenschmidt	default n
42411d1a4aaSBenjamin Herrenschmidt
42511d1a4aaSBenjamin Herrenschmidtconfig USB_OHCI_BIG_ENDIAN_MMIO
4261da177e4SLinus Torvalds	bool
4271da177e4SLinus Torvalds	depends on USB_OHCI_HCD
4281da177e4SLinus Torvalds	default n
4291da177e4SLinus Torvalds
4301da177e4SLinus Torvaldsconfig USB_OHCI_LITTLE_ENDIAN
4311da177e4SLinus Torvalds	bool
4321da177e4SLinus Torvalds	depends on USB_OHCI_HCD
4331da177e4SLinus Torvalds	default n if STB03xxx || PPC_MPC52xx
4341da177e4SLinus Torvalds	default y
4351da177e4SLinus Torvalds
4361da177e4SLinus Torvaldsconfig USB_UHCI_HCD
4371da177e4SLinus Torvalds	tristate "UHCI HCD (most Intel and VIA) support"
4383db7739cSJan Andersson	depends on USB && (PCI || SPARC_LEON)
4391da177e4SLinus Torvalds	---help---
4401da177e4SLinus Torvalds	  The Universal Host Controller Interface is a standard by Intel for
4411da177e4SLinus Torvalds	  accessing the USB hardware in the PC (which is also called the USB
4421da177e4SLinus Torvalds	  host controller). If your USB host controller conforms to this
4431da177e4SLinus Torvalds	  standard, you may want to say Y, but see below. All recent boards
4441da177e4SLinus Torvalds	  with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
4451da177e4SLinus Torvalds	  i810, i820) conform to this standard. Also all VIA PCI chipsets
4461da177e4SLinus Torvalds	  (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
4473db7739cSJan Andersson	  133) and LEON/GRLIB SoCs with the GRUSBHC controller.
4483db7739cSJan Andersson	  If unsure, say Y.
4491da177e4SLinus Torvalds
4501da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
4511da177e4SLinus Torvalds	  module will be called uhci-hcd.
4521da177e4SLinus Torvalds
453d3219d1cSJan Anderssonconfig USB_UHCI_SUPPORT_NON_PCI_HC
454d3219d1cSJan Andersson	bool
455d3219d1cSJan Andersson	depends on USB_UHCI_HCD
4563db7739cSJan Andersson	default y if SPARC_LEON
457d3219d1cSJan Andersson
4588452c674SJan Anderssonconfig USB_UHCI_BIG_ENDIAN_MMIO
4598452c674SJan Andersson	bool
460fda928acSJan Andersson	depends on USB_UHCI_SUPPORT_NON_PCI_HC && SPARC_LEON
461fda928acSJan Andersson	default y
4628452c674SJan Andersson
46351e2f62fSJan Anderssonconfig USB_UHCI_BIG_ENDIAN_DESC
46451e2f62fSJan Andersson	bool
465fda928acSJan Andersson	depends on USB_UHCI_SUPPORT_NON_PCI_HC && SPARC_LEON
466fda928acSJan Andersson	default y
46751e2f62fSJan Andersson
468236dd4d1SAnton Vorontsovconfig USB_FHCI_HCD
469236dd4d1SAnton Vorontsov	tristate "Freescale QE USB Host Controller support"
470236dd4d1SAnton Vorontsov	depends on USB && OF_GPIO && QE_GPIO && QUICC_ENGINE
471236dd4d1SAnton Vorontsov	select FSL_GTM
472236dd4d1SAnton Vorontsov	select QE_USB
473236dd4d1SAnton Vorontsov	help
474236dd4d1SAnton Vorontsov	  This driver enables support for Freescale QE USB Host Controller
475236dd4d1SAnton Vorontsov	  (as found on MPC8360 and MPC8323 processors), the driver supports
476236dd4d1SAnton Vorontsov	  Full and Low Speed USB.
477236dd4d1SAnton Vorontsov
478236dd4d1SAnton Vorontsovconfig FHCI_DEBUG
479236dd4d1SAnton Vorontsov	bool "Freescale QE USB Host Controller debug support"
480236dd4d1SAnton Vorontsov	depends on USB_FHCI_HCD && DEBUG_FS
481236dd4d1SAnton Vorontsov	help
482236dd4d1SAnton Vorontsov	  Say "y" to see some FHCI debug information and statistics
48325985edcSLucas De Marchi	  through debugfs.
484236dd4d1SAnton Vorontsov
485d774efeaSTony Olechconfig USB_U132_HCD
486d774efeaSTony Olech	tristate "Elan U132 Adapter Host Controller"
487d774efeaSTony Olech	depends on USB && USB_FTDI_ELAN
488d774efeaSTony Olech	default M
489d774efeaSTony Olech	help
490d774efeaSTony Olech	  The U132 adapter is a USB to CardBus adapter specifically designed
491d774efeaSTony Olech	  for PC cards that contain an OHCI host controller. Typical PC cards
492d774efeaSTony Olech	  are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
493d774efeaSTony Olech	  adapter will *NOT* work with PC cards that do not contain an OHCI
494d774efeaSTony Olech	  controller.
495d774efeaSTony Olech
4963cb2fcccSMatt LaPlante	  For those PC cards that contain multiple OHCI controllers only the
497d774efeaSTony Olech	  first one is used.
498d774efeaSTony Olech
499d774efeaSTony Olech	  The driver consists of two modules, the "ftdi-elan" module is a
500d774efeaSTony Olech	  USB client driver that interfaces to the FTDI chip within ELAN's
501d774efeaSTony Olech	  USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
502d774efeaSTony Olech	  controller driver that talks to the OHCI controller within the
503d774efeaSTony Olech	  CardBus cards that are inserted in the U132 adapter.
504d774efeaSTony Olech
505d774efeaSTony Olech	  This driver has been tested with a CardBus OHCI USB adapter, and
506d774efeaSTony Olech	  worked with a USB PEN Drive inserted into the first USB port of
507d774efeaSTony Olech	  the PCCARD. A rather pointless thing to do, but useful for testing.
508d774efeaSTony Olech
509d774efeaSTony Olech	  It is safe to say M here.
510d774efeaSTony Olech
511d774efeaSTony Olech	  See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
512d774efeaSTony Olech
5131da177e4SLinus Torvaldsconfig USB_SL811_HCD
5141da177e4SLinus Torvalds	tristate "SL811HS HCD support"
5151da177e4SLinus Torvalds	depends on USB
5161da177e4SLinus Torvalds	help
5171da177e4SLinus Torvalds	  The SL811HS is a single-port USB controller that supports either
5181da177e4SLinus Torvalds	  host side or peripheral side roles.  Enable this option if your
5191da177e4SLinus Torvalds	  board has this chip, and you want to use it as a host controller.
5201da177e4SLinus Torvalds	  If unsure, say N.
5211da177e4SLinus Torvalds
5221da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
5231da177e4SLinus Torvalds	  module will be called sl811-hcd.
5241da177e4SLinus Torvalds
525ad7c56f0SMike Frysingerconfig USB_SL811_HCD_ISO
526ad7c56f0SMike Frysinger	bool "partial ISO support"
527ad7c56f0SMike Frysinger	depends on USB_SL811_HCD
528ad7c56f0SMike Frysinger	help
529ad7c56f0SMike Frysinger	  The driver doesn't support iso_frame_desc (yet), but for some simple
530ad7c56f0SMike Frysinger	  devices that just queue one ISO frame per URB, then ISO transfers
531ad7c56f0SMike Frysinger	  "should" work using the normal urb status fields.
532ad7c56f0SMike Frysinger
533ad7c56f0SMike Frysinger	  If unsure, say N.
534ad7c56f0SMike Frysinger
535c6de2b64SDavid Brownellconfig USB_SL811_CS
536c6de2b64SDavid Brownell	tristate "CF/PCMCIA support for SL811HS HCD"
537c6de2b64SDavid Brownell	depends on USB_SL811_HCD && PCMCIA
538c6de2b64SDavid Brownell	help
539c6de2b64SDavid Brownell	  Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC
540c6de2b64SDavid Brownell	  REX-CFU1U CF card (often used with PDAs).  If unsure, say N.
541c6de2b64SDavid Brownell
542c6de2b64SDavid Brownell	  To compile this driver as a module, choose M here: the
543c6de2b64SDavid Brownell	  module will be called "sl811_cs".
544c6de2b64SDavid Brownell
5455d304358SYoshihiro Shimodaconfig USB_R8A66597_HCD
546fa0de2b6SM4rkusXXL	tristate "R8A66597 HCD support"
5475d304358SYoshihiro Shimoda	depends on USB
5485d304358SYoshihiro Shimoda	help
5495d304358SYoshihiro Shimoda	  The R8A66597 is a USB 2.0 host and peripheral controller.
5505d304358SYoshihiro Shimoda
5515d304358SYoshihiro Shimoda	  Enable this option if your board has this chip, and you want
5525d304358SYoshihiro Shimoda	  to use it as a host controller.  If unsure, say N.
5535d304358SYoshihiro Shimoda
5545d304358SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the
5555d304358SYoshihiro Shimoda	  module will be called r8a66597-hcd.
5565d304358SYoshihiro Shimoda
557034d7c13SKuninori Morimotoconfig USB_RENESAS_USBHS_HCD
558034d7c13SKuninori Morimoto	tristate "Renesas USBHS HCD support"
559034d7c13SKuninori Morimoto	depends on USB
560034d7c13SKuninori Morimoto	depends on USB_RENESAS_USBHS
561034d7c13SKuninori Morimoto	help
562034d7c13SKuninori Morimoto	  The Renesas USBHS is a USB 2.0 host and peripheral controller.
563034d7c13SKuninori Morimoto
564034d7c13SKuninori Morimoto	  Enable this option if your board has this chip, and you want
565034d7c13SKuninori Morimoto	  to use it as a host controller.  If unsure, say N.
566034d7c13SKuninori Morimoto
567034d7c13SKuninori Morimoto	  To compile this driver as a module, choose M here: the
568034d7c13SKuninori Morimoto	  module will be called renesas-usbhs.
569034d7c13SKuninori Morimoto
5707e6133aaSDavid Vrabelconfig USB_WHCI_HCD
5716a7c3e46SDavid Vrabel	tristate "Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL)"
5726a7c3e46SDavid Vrabel	depends on EXPERIMENTAL
57336f8ecbfSRandy Dunlap	depends on PCI && USB && UWB
5747e6133aaSDavid Vrabel	select USB_WUSB
5757e6133aaSDavid Vrabel	select UWB_WHCI
5767e6133aaSDavid Vrabel	help
5777e6133aaSDavid Vrabel	  A driver for PCI-based Wireless USB Host Controllers that are
5787e6133aaSDavid Vrabel	  compliant with the WHCI specification.
5797e6133aaSDavid Vrabel
5807e6133aaSDavid Vrabel	  To compile this driver a module, choose M here: the module
5817e6133aaSDavid Vrabel	  will be called "whci-hcd".
582d09318b8SInaky Perez-Gonzalez
583d09318b8SInaky Perez-Gonzalezconfig USB_HWA_HCD
5846a7c3e46SDavid Vrabel	tristate "Host Wire Adapter (HWA) driver (EXPERIMENTAL)"
5856a7c3e46SDavid Vrabel	depends on EXPERIMENTAL
58636f8ecbfSRandy Dunlap	depends on USB && UWB
587d09318b8SInaky Perez-Gonzalez	select USB_WUSB
588d09318b8SInaky Perez-Gonzalez	select UWB_HWA
589d09318b8SInaky Perez-Gonzalez	help
590d09318b8SInaky Perez-Gonzalez	  This driver enables you to connect Wireless USB devices to
591d09318b8SInaky Perez-Gonzalez	  your system using a Host Wire Adaptor USB dongle. This is an
592d09318b8SInaky Perez-Gonzalez	  UWB Radio Controller and WUSB Host Controller connected to
593d09318b8SInaky Perez-Gonzalez	  your machine via USB (specified in WUSB1.0).
594d09318b8SInaky Perez-Gonzalez
595d09318b8SInaky Perez-Gonzalez	  To compile this driver a module, choose M here: the module
596d09318b8SInaky Perez-Gonzalez	  will be called "hwa-hc".
59723d3e7a6SMartin Fuzzey
59823d3e7a6SMartin Fuzzeyconfig USB_IMX21_HCD
5995de9ec4dSSascha Hauer       tristate "i.MX21 HCD support"
6005de9ec4dSSascha Hauer       depends on USB && ARM && ARCH_MXC
60123d3e7a6SMartin Fuzzey       help
60223d3e7a6SMartin Fuzzey         This driver enables support for the on-chip USB host in the
6035de9ec4dSSascha Hauer         i.MX21 processor.
60423d3e7a6SMartin Fuzzey
60523d3e7a6SMartin Fuzzey         To compile this driver as a module, choose M here: the
60623d3e7a6SMartin Fuzzey         module will be called "imx21-hcd".
60723d3e7a6SMartin Fuzzey
6081643accdSDavid Daneyconfig USB_OCTEON_EHCI
6091643accdSDavid Daney	bool "Octeon on-chip EHCI support"
6101643accdSDavid Daney	depends on USB && USB_EHCI_HCD && CPU_CAVIUM_OCTEON
6111643accdSDavid Daney	default n
6121643accdSDavid Daney	select USB_EHCI_BIG_ENDIAN_MMIO
6131643accdSDavid Daney	help
6141643accdSDavid Daney	  Enable support for the Octeon II SOC's on-chip EHCI
6151643accdSDavid Daney	  controller.  It is needed for high-speed (480Mbit/sec)
6161643accdSDavid Daney	  USB 2.0 device support.  All CN6XXX based chips with USB are
6171643accdSDavid Daney	  supported.
6181643accdSDavid Daney
6191643accdSDavid Daneyconfig USB_OCTEON_OHCI
6201643accdSDavid Daney	bool "Octeon on-chip OHCI support"
6211643accdSDavid Daney	depends on USB && USB_OHCI_HCD && CPU_CAVIUM_OCTEON
6221643accdSDavid Daney	default USB_OCTEON_EHCI
6231643accdSDavid Daney	select USB_OHCI_BIG_ENDIAN_MMIO
6241643accdSDavid Daney	select USB_OHCI_LITTLE_ENDIAN
6251643accdSDavid Daney	help
6261643accdSDavid Daney	  Enable support for the Octeon II SOC's on-chip OHCI
6271643accdSDavid Daney	  controller.  It is needed for low-speed USB 1.0 device
6281643accdSDavid Daney	  support.  All CN6XXX based chips with USB are supported.
6291643accdSDavid Daney
6301643accdSDavid Daneyconfig USB_OCTEON2_COMMON
6311643accdSDavid Daney	bool
6321643accdSDavid Daney	default y if USB_OCTEON_EHCI || USB_OCTEON_OHCI
633