xref: /linux/drivers/usb/host/Kconfig (revision b0848aea10da186372582f33152efdda43944f26)
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)"
221b6ed69fSPaul Mundt	depends on USB && PCI && 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
30eb6bab13SSarah Sharpconfig USB_XHCI_HCD_DEBUGGING
31eb6bab13SSarah Sharp	bool "Debugging for the xHCI host controller"
32eb6bab13SSarah Sharp	depends on USB_XHCI_HCD
33eb6bab13SSarah Sharp	---help---
34eb6bab13SSarah Sharp	  Say 'Y' to turn on debugging for the xHCI host controller driver.
35eb6bab13SSarah Sharp	  This will spew debugging output, even in interrupt context.
36eb6bab13SSarah Sharp	  This should only be used for debugging xHCI driver bugs.
37eb6bab13SSarah Sharp
38eb6bab13SSarah Sharp	  If unsure, say N.
39eb6bab13SSarah Sharp
401da177e4SLinus Torvaldsconfig USB_EHCI_HCD
411da177e4SLinus Torvalds	tristate "EHCI HCD (USB 2.0) support"
4276fa9a24SJordan Crouse	depends on USB && USB_ARCH_HAS_EHCI
431da177e4SLinus Torvalds	---help---
441da177e4SLinus Torvalds	  The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
451da177e4SLinus Torvalds	  "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
461da177e4SLinus Torvalds	  If your USB host controller supports USB 2.0, you will likely want to
47b967c88eSThierry Vignaud	  configure this Host Controller Driver.
481da177e4SLinus Torvalds
491da177e4SLinus Torvalds	  EHCI controllers are packaged with "companion" host controllers (OHCI
501da177e4SLinus Torvalds	  or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
51b3c29d85SJesper Juhl	  will connect to EHCI if the device is high speed, otherwise they
521da177e4SLinus Torvalds	  connect to a companion controller.  If you configure EHCI, you should
531da177e4SLinus Torvalds	  probably configure the OHCI (for NEC and some other vendors) USB Host
541da177e4SLinus Torvalds	  Controller Driver or UHCI (for Via motherboards) Host Controller
551da177e4SLinus Torvalds	  Driver too.
561da177e4SLinus Torvalds
571da177e4SLinus Torvalds	  You may want to read <file:Documentation/usb/ehci.txt>.
581da177e4SLinus Torvalds
591da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
601da177e4SLinus Torvalds	  module will be called ehci-hcd.
611da177e4SLinus Torvalds
621da177e4SLinus Torvaldsconfig USB_EHCI_ROOT_HUB_TT
639ec249a6SRobert P. J. Day	bool "Root Hub Transaction Translators"
649ec249a6SRobert P. J. Day	depends on USB_EHCI_HCD
651da177e4SLinus Torvalds	---help---
661da177e4SLinus Torvalds	  Some EHCI chips have vendor-specific extensions to integrate
671da177e4SLinus Torvalds	  transaction translators, so that no OHCI or UHCI companion
681da177e4SLinus Torvalds	  controller is needed.  It's safe to say "y" even if your
691da177e4SLinus Torvalds	  controller doesn't support this feature.
701da177e4SLinus Torvalds
71ba47f66bSDan Streetman	  This supports the EHCI implementation that's originally
72ba47f66bSDan Streetman	  from ARC, and has since changed hands a few times.
73ba47f66bSDan Streetman
74ba47f66bSDan Streetmanconfig USB_EHCI_TT_NEWSCHED
7537cd681cSAlan Stern	bool "Improved Transaction Translator scheduling"
7637cd681cSAlan Stern	depends on USB_EHCI_HCD
7737cd681cSAlan Stern	default y
78ba47f66bSDan Streetman	---help---
79ba47f66bSDan Streetman	  This changes the periodic scheduling code to fill more of the low
80ba47f66bSDan Streetman	  and full speed bandwidth available from the Transaction Translator
81ba47f66bSDan Streetman	  (TT) in USB 2.0 hubs.  Without this, only one transfer will be
82ba47f66bSDan Streetman	  issued in each microframe, significantly reducing the number of
83ba47f66bSDan Streetman	  periodic low/fullspeed transfers possible.
84ba47f66bSDan Streetman
85ba47f66bSDan Streetman	  If you have multiple periodic low/fullspeed devices connected to a
86ba47f66bSDan Streetman	  highspeed USB hub which is connected to a highspeed USB Host
87ba47f66bSDan Streetman	  Controller, and some of those devices will not work correctly
8837cd681cSAlan Stern	  (possibly due to "ENOSPC" or "-28" errors), say Y.  Conversely, if
8937cd681cSAlan Stern	  you have only one such device and it doesn't work, you could try
9037cd681cSAlan Stern	  saying N.
91ba47f66bSDan Streetman
9237cd681cSAlan Stern	  If unsure, say Y.
931da177e4SLinus Torvalds
94083522d7SBenjamin Herrenschmidtconfig USB_EHCI_BIG_ENDIAN_MMIO
95083522d7SBenjamin Herrenschmidt	bool
961643accdSDavid Daney	depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || \
971643accdSDavid Daney				    ARCH_IXP4XX || XPS_USB_HCD_XILINX || \
981643accdSDavid Daney				    PPC_MPC512x || CPU_CAVIUM_OCTEON)
994d68c0beSStefan Roese	default y
100083522d7SBenjamin Herrenschmidt
1016dbd682bSStefan Roeseconfig USB_EHCI_BIG_ENDIAN_DESC
1026dbd682bSStefan Roese	bool
103230f7edeSAnatolij Gustschin	depends on USB_EHCI_HCD && (440EPX || ARCH_IXP4XX || XPS_USB_HCD_XILINX || \
104230f7edeSAnatolij Gustschin				    PPC_MPC512x)
1054d68c0beSStefan Roese	default y
1066dbd682bSStefan Roese
10708d3c18eSJulie Zhuconfig XPS_USB_HCD_XILINX
10808d3c18eSJulie Zhu	bool "Use Xilinx usb host EHCI controller core"
10908d3c18eSJulie Zhu	depends on USB_EHCI_HCD && (PPC32 || MICROBLAZE)
11008d3c18eSJulie Zhu	select USB_EHCI_BIG_ENDIAN_DESC
11108d3c18eSJulie Zhu	select USB_EHCI_BIG_ENDIAN_MMIO
11208d3c18eSJulie Zhu	---help---
11308d3c18eSJulie Zhu		Xilinx xps USB host controller core is EHCI compilant and has
11408d3c18eSJulie Zhu		transaction translator built-in. It can be configured to either
11508d3c18eSJulie Zhu		support both high speed and full speed devices, or high speed
11608d3c18eSJulie Zhu		devices only.
11708d3c18eSJulie Zhu
118126512e3SAnatolij Gustschinconfig USB_FSL_MPH_DR_OF
119126512e3SAnatolij Gustschin	tristate
120126512e3SAnatolij Gustschin
121ba02978aSLi Yangconfig USB_EHCI_FSL
122b5937a41SAnton Vorontsov	bool "Support for Freescale on-chip EHCI USB controller"
123b5937a41SAnton Vorontsov	depends on USB_EHCI_HCD && FSL_SOC
124ba02978aSLi Yang	select USB_EHCI_ROOT_HUB_TT
125126512e3SAnatolij Gustschin	select USB_FSL_MPH_DR_OF
126ba02978aSLi Yang	---help---
127ba02978aSLi Yang	  Variation of ARC USB block used in some Freescale chips.
128ba02978aSLi Yang
1297e8d5cd9SDaniel Mackconfig USB_EHCI_MXC
1307e8d5cd9SDaniel Mack	bool "Support for Freescale on-chip EHCI USB controller"
1317e8d5cd9SDaniel Mack	depends on USB_EHCI_HCD && ARCH_MXC
1327e8d5cd9SDaniel Mack	select USB_EHCI_ROOT_HUB_TT
1337e8d5cd9SDaniel Mack	---help---
1347e8d5cd9SDaniel Mack	  Variation of ARC USB block used in some Freescale chips.
1357e8d5cd9SDaniel Mack
1367f124f4bSKeshava Munegowdaconfig USB_EHCI_HCD_OMAP
1377f124f4bSKeshava Munegowda	bool "EHCI support for OMAP3 and later chips"
1387f124f4bSKeshava Munegowda	depends on USB_EHCI_HCD && ARCH_OMAP
1397f124f4bSKeshava Munegowda	default y
1407f124f4bSKeshava Munegowda	--- help ---
1417f124f4bSKeshava Munegowda	  Enables support for the on-chip EHCI controller on
1427f124f4bSKeshava Munegowda	  OMAP3 and later chips.
1437f124f4bSKeshava Munegowda
144*b0848aeaSPavankumar Kondeticonfig USB_EHCI_MSM
145*b0848aeaSPavankumar Kondeti	bool "Support for MSM on-chip EHCI USB controller"
146*b0848aeaSPavankumar Kondeti	depends on USB_EHCI_HCD && ARCH_MSM
147*b0848aeaSPavankumar Kondeti	select USB_EHCI_ROOT_HUB_TT
148*b0848aeaSPavankumar Kondeti	select USB_MSM_OTG_72K
149*b0848aeaSPavankumar Kondeti	---help---
150*b0848aeaSPavankumar Kondeti	  Enables support for the USB Host controller present on the
151*b0848aeaSPavankumar Kondeti	  Qualcomm chipsets. Root Hub has inbuilt TT.
152*b0848aeaSPavankumar Kondeti	  This driver depends on OTG driver for PHY initialization,
153*b0848aeaSPavankumar Kondeti	  clock management, powering up VBUS.
154*b0848aeaSPavankumar Kondeti
155da0e8fb0SValentine Barshakconfig USB_EHCI_HCD_PPC_OF
156da0e8fb0SValentine Barshak	bool "EHCI support for PPC USB controller on OF platform bus"
157da0e8fb0SValentine Barshak	depends on USB_EHCI_HCD && PPC_OF
158da0e8fb0SValentine Barshak	default y
159da0e8fb0SValentine Barshak	---help---
160da0e8fb0SValentine Barshak	  Enables support for the USB controller present on the PowerPC
161da0e8fb0SValentine Barshak	  OpenFirmware platform bus.
162da0e8fb0SValentine Barshak
163586dfc8cSWan ZongShunconfig USB_W90X900_EHCI
164586dfc8cSWan ZongShun	bool "W90X900(W90P910) EHCI support"
165586dfc8cSWan ZongShun	depends on USB_EHCI_HCD && ARCH_W90X900
166586dfc8cSWan ZongShun	---help---
167586dfc8cSWan ZongShun		Enables support for the W90X900 USB controller
168586dfc8cSWan ZongShun
169b92a78e5SRodolfo Giometticonfig USB_OXU210HP_HCD
170b92a78e5SRodolfo Giometti	tristate "OXU210HP HCD support"
171b92a78e5SRodolfo Giometti	depends on USB
172b92a78e5SRodolfo Giometti	---help---
173b92a78e5SRodolfo Giometti	  The OXU210HP is an USB host/OTG/device controller. Enable this
174b92a78e5SRodolfo Giometti	  option if your board has this chip. If unsure, say N.
175b92a78e5SRodolfo Giometti
176b92a78e5SRodolfo Giometti	  This driver does not support isochronous transfers and doesn't
177b92a78e5SRodolfo Giometti	  implement OTG nor USB device controllers.
178b92a78e5SRodolfo Giometti
179b92a78e5SRodolfo Giometti	  To compile this driver as a module, choose M here: the
180b92a78e5SRodolfo Giometti	  module will be called oxu210hp-hcd.
181b92a78e5SRodolfo Giometti
1824808a1c0SOlav Kongasconfig USB_ISP116X_HCD
1834808a1c0SOlav Kongas	tristate "ISP116X HCD support"
1844808a1c0SOlav Kongas	depends on USB
1854808a1c0SOlav Kongas	---help---
1864808a1c0SOlav Kongas	  The ISP1160 and ISP1161 chips are USB host controllers. Enable this
1874808a1c0SOlav Kongas	  option if your board has this chip. If unsure, say N.
1884808a1c0SOlav Kongas
1894808a1c0SOlav Kongas	  This driver does not support isochronous transfers.
1904808a1c0SOlav Kongas
1914808a1c0SOlav Kongas	  To compile this driver as a module, choose M here: the
1924808a1c0SOlav Kongas	  module will be called isp116x-hcd.
1934808a1c0SOlav Kongas
194db11e47dSSebastian Siewiorconfig USB_ISP1760_HCD
195db11e47dSSebastian Siewior	tristate "ISP 1760 HCD support"
196f7e7aa58SCatalin Marinas	depends on USB && EXPERIMENTAL
197db11e47dSSebastian Siewior	---help---
198db11e47dSSebastian Siewior	  The ISP1760 chip is a USB 2.0 host controller.
199db11e47dSSebastian Siewior
200db11e47dSSebastian Siewior	  This driver does not support isochronous transfers or OTG.
201ff30bf1cSSebastian Andrzej Siewior	  This USB controller is usually attached to a non-DMA-Master
202ff30bf1cSSebastian Andrzej Siewior	  capable bus. NXP's eval kit brings this chip on PCI card
203ff30bf1cSSebastian Andrzej Siewior	  where the chip itself is behind a PLB to simulate such
204ff30bf1cSSebastian Andrzej Siewior	  a bus.
205db11e47dSSebastian Siewior
206db11e47dSSebastian Siewior	  To compile this driver as a module, choose M here: the
207ff30bf1cSSebastian Andrzej Siewior	  module will be called isp1760.
208db11e47dSSebastian Siewior
209a9d43091SLothar Wassmannconfig USB_ISP1362_HCD
210a9d43091SLothar Wassmann	tristate "ISP1362 HCD support"
211a9d43091SLothar Wassmann	depends on USB
212a9d43091SLothar Wassmann	default N
213a9d43091SLothar Wassmann	---help---
214a9d43091SLothar Wassmann	  Supports the Philips ISP1362 chip as a host controller
215a9d43091SLothar Wassmann
216a9d43091SLothar Wassmann	  This driver does not support isochronous transfers.
217a9d43091SLothar Wassmann
218a9d43091SLothar Wassmann	  To compile this driver as a module, choose M here: the
219a9d43091SLothar Wassmann	  module will be called isp1362-hcd.
220a9d43091SLothar Wassmann
2211da177e4SLinus Torvaldsconfig USB_OHCI_HCD
2221da177e4SLinus Torvalds	tristate "OHCI HCD support"
2231da177e4SLinus Torvalds	depends on USB && USB_ARCH_HAS_OHCI
2241da177e4SLinus Torvalds	select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
2252bf5fa13SDavid Brownell	select USB_OTG_UTILS if ARCH_OMAP
2261da177e4SLinus Torvalds	---help---
2271da177e4SLinus Torvalds	  The Open Host Controller Interface (OHCI) is a standard for accessing
2281da177e4SLinus Torvalds	  USB 1.1 host controller hardware.  It does more in hardware than Intel's
2291da177e4SLinus Torvalds	  UHCI specification.  If your USB host controller follows the OHCI spec,
2301da177e4SLinus Torvalds	  say Y.  On most non-x86 systems, and on x86 hardware that's not using a
2311da177e4SLinus Torvalds	  USB controller from Intel or VIA, this is appropriate.  If your host
2321da177e4SLinus Torvalds	  controller doesn't use PCI, this is probably appropriate.  For a PCI
2331da177e4SLinus Torvalds	  based system where you're not sure, the "lspci -v" entry will list the
2341da177e4SLinus Torvalds	  right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
2351da177e4SLinus Torvalds
2361da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
2371da177e4SLinus Torvalds	  module will be called ohci-hcd.
2381da177e4SLinus Torvalds
239968b448bSAnand Gadiyarconfig USB_OHCI_HCD_OMAP1
240968b448bSAnand Gadiyar	bool "OHCI support for OMAP1/2 chips"
241968b448bSAnand Gadiyar	depends on USB_OHCI_HCD && (ARCH_OMAP1 || ARCH_OMAP2)
242968b448bSAnand Gadiyar	default y
243968b448bSAnand Gadiyar	---help---
244968b448bSAnand Gadiyar	  Enables support for the OHCI controller on OMAP1/2 chips.
245968b448bSAnand Gadiyar
246968b448bSAnand Gadiyarconfig USB_OHCI_HCD_OMAP3
247968b448bSAnand Gadiyar	bool "OHCI support for OMAP3 and later chips"
248968b448bSAnand Gadiyar	depends on USB_OHCI_HCD && (ARCH_OMAP3 || ARCH_OMAP4)
249968b448bSAnand Gadiyar	default y
250968b448bSAnand Gadiyar	---help---
251968b448bSAnand Gadiyar	  Enables support for the on-chip OHCI controller on
252968b448bSAnand Gadiyar	  OMAP3 and later chips.
253968b448bSAnand Gadiyar
2541da177e4SLinus Torvaldsconfig USB_OHCI_HCD_PPC_SOC
2551da177e4SLinus Torvalds	bool "OHCI support for on-chip PPC USB controller"
2561da177e4SLinus Torvalds	depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
2571da177e4SLinus Torvalds	default y
25811d1a4aaSBenjamin Herrenschmidt	select USB_OHCI_BIG_ENDIAN_DESC
25911d1a4aaSBenjamin Herrenschmidt	select USB_OHCI_BIG_ENDIAN_MMIO
2601da177e4SLinus Torvalds	---help---
2611da177e4SLinus Torvalds	  Enables support for the USB controller on the MPC52xx or
2621da177e4SLinus Torvalds	  STB03xxx processor chip.  If unsure, say Y.
2631da177e4SLinus Torvalds
264495a678fSSylvain Munautconfig USB_OHCI_HCD_PPC_OF_BE
26545e83889SArnd Bergmann	bool "OHCI support for OF platform bus (big endian)"
26645e83889SArnd Bergmann	depends on USB_OHCI_HCD && PPC_OF
267495a678fSSylvain Munaut	select USB_OHCI_BIG_ENDIAN_DESC
268495a678fSSylvain Munaut	select USB_OHCI_BIG_ENDIAN_MMIO
26945e83889SArnd Bergmann	---help---
27045e83889SArnd Bergmann	  Enables support for big-endian USB controllers present on the
27145e83889SArnd Bergmann	  OpenFirmware platform bus.
272495a678fSSylvain Munaut
273495a678fSSylvain Munautconfig USB_OHCI_HCD_PPC_OF_LE
27445e83889SArnd Bergmann	bool "OHCI support for OF platform bus (little endian)"
27545e83889SArnd Bergmann	depends on USB_OHCI_HCD && PPC_OF
276495a678fSSylvain Munaut	select USB_OHCI_LITTLE_ENDIAN
27745e83889SArnd Bergmann	---help---
27845e83889SArnd Bergmann	  Enables support for little-endian USB controllers present on the
27945e83889SArnd Bergmann	  OpenFirmware platform bus.
28045e83889SArnd Bergmann
28145e83889SArnd Bergmannconfig USB_OHCI_HCD_PPC_OF
28245e83889SArnd Bergmann	bool
28345e83889SArnd Bergmann	depends on USB_OHCI_HCD && PPC_OF
28445e83889SArnd Bergmann	default USB_OHCI_HCD_PPC_OF_BE || USB_OHCI_HCD_PPC_OF_LE
285495a678fSSylvain Munaut
2861da177e4SLinus Torvaldsconfig USB_OHCI_HCD_PCI
2871da177e4SLinus Torvalds	bool "OHCI support for PCI-bus USB controllers"
288495a678fSSylvain Munaut	depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
2891da177e4SLinus Torvalds	default y
2901da177e4SLinus Torvalds	select USB_OHCI_LITTLE_ENDIAN
2911da177e4SLinus Torvalds	---help---
2921da177e4SLinus Torvalds	  Enables support for PCI-bus plug-in USB controller cards.
2931da177e4SLinus Torvalds	  If unsure, say Y.
2941da177e4SLinus Torvalds
295c604e851SMichael Bueschconfig USB_OHCI_HCD_SSB
296c604e851SMichael Buesch	bool "OHCI support for Broadcom SSB OHCI core"
2971011b326SAdrian Bunk	depends on USB_OHCI_HCD && (SSB = y || SSB = USB_OHCI_HCD) && EXPERIMENTAL
298c604e851SMichael Buesch	default n
299c604e851SMichael Buesch	---help---
300c604e851SMichael Buesch	  Support for the Sonics Silicon Backplane (SSB) attached
301c604e851SMichael Buesch	  Broadcom USB OHCI core.
302c604e851SMichael Buesch
303c604e851SMichael Buesch	  This device is present in some embedded devices with
304c604e851SMichael Buesch	  Broadcom based SSB bus.
305c604e851SMichael Buesch
306c604e851SMichael Buesch	  If unsure, say N.
307c604e851SMichael Buesch
30811d1a4aaSBenjamin Herrenschmidtconfig USB_OHCI_BIG_ENDIAN_DESC
30911d1a4aaSBenjamin Herrenschmidt	bool
31011d1a4aaSBenjamin Herrenschmidt	depends on USB_OHCI_HCD
31111d1a4aaSBenjamin Herrenschmidt	default n
31211d1a4aaSBenjamin Herrenschmidt
31311d1a4aaSBenjamin Herrenschmidtconfig USB_OHCI_BIG_ENDIAN_MMIO
3141da177e4SLinus Torvalds	bool
3151da177e4SLinus Torvalds	depends on USB_OHCI_HCD
3161da177e4SLinus Torvalds	default n
3171da177e4SLinus Torvalds
3181da177e4SLinus Torvaldsconfig USB_OHCI_LITTLE_ENDIAN
3191da177e4SLinus Torvalds	bool
3201da177e4SLinus Torvalds	depends on USB_OHCI_HCD
3211da177e4SLinus Torvalds	default n if STB03xxx || PPC_MPC52xx
3221da177e4SLinus Torvalds	default y
3231da177e4SLinus Torvalds
3241da177e4SLinus Torvaldsconfig USB_UHCI_HCD
3251da177e4SLinus Torvalds	tristate "UHCI HCD (most Intel and VIA) support"
3261da177e4SLinus Torvalds	depends on USB && PCI
3271da177e4SLinus Torvalds	---help---
3281da177e4SLinus Torvalds	  The Universal Host Controller Interface is a standard by Intel for
3291da177e4SLinus Torvalds	  accessing the USB hardware in the PC (which is also called the USB
3301da177e4SLinus Torvalds	  host controller). If your USB host controller conforms to this
3311da177e4SLinus Torvalds	  standard, you may want to say Y, but see below. All recent boards
3321da177e4SLinus Torvalds	  with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
3331da177e4SLinus Torvalds	  i810, i820) conform to this standard. Also all VIA PCI chipsets
3341da177e4SLinus Torvalds	  (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
3351da177e4SLinus Torvalds	  133). If unsure, say Y.
3361da177e4SLinus Torvalds
3371da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
3381da177e4SLinus Torvalds	  module will be called uhci-hcd.
3391da177e4SLinus Torvalds
340236dd4d1SAnton Vorontsovconfig USB_FHCI_HCD
341236dd4d1SAnton Vorontsov	tristate "Freescale QE USB Host Controller support"
342236dd4d1SAnton Vorontsov	depends on USB && OF_GPIO && QE_GPIO && QUICC_ENGINE
343236dd4d1SAnton Vorontsov	select FSL_GTM
344236dd4d1SAnton Vorontsov	select QE_USB
345236dd4d1SAnton Vorontsov	help
346236dd4d1SAnton Vorontsov	  This driver enables support for Freescale QE USB Host Controller
347236dd4d1SAnton Vorontsov	  (as found on MPC8360 and MPC8323 processors), the driver supports
348236dd4d1SAnton Vorontsov	  Full and Low Speed USB.
349236dd4d1SAnton Vorontsov
350236dd4d1SAnton Vorontsovconfig FHCI_DEBUG
351236dd4d1SAnton Vorontsov	bool "Freescale QE USB Host Controller debug support"
352236dd4d1SAnton Vorontsov	depends on USB_FHCI_HCD && DEBUG_FS
353236dd4d1SAnton Vorontsov	help
354236dd4d1SAnton Vorontsov	  Say "y" to see some FHCI debug information and statistics
355236dd4d1SAnton Vorontsov	  throught debugfs.
356236dd4d1SAnton Vorontsov
357d774efeaSTony Olechconfig USB_U132_HCD
358d774efeaSTony Olech	tristate "Elan U132 Adapter Host Controller"
359d774efeaSTony Olech	depends on USB && USB_FTDI_ELAN
360d774efeaSTony Olech	default M
361d774efeaSTony Olech	help
362d774efeaSTony Olech	  The U132 adapter is a USB to CardBus adapter specifically designed
363d774efeaSTony Olech	  for PC cards that contain an OHCI host controller. Typical PC cards
364d774efeaSTony Olech	  are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
365d774efeaSTony Olech	  adapter will *NOT* work with PC cards that do not contain an OHCI
366d774efeaSTony Olech	  controller.
367d774efeaSTony Olech
3683cb2fcccSMatt LaPlante	  For those PC cards that contain multiple OHCI controllers only the
369d774efeaSTony Olech	  first one is used.
370d774efeaSTony Olech
371d774efeaSTony Olech	  The driver consists of two modules, the "ftdi-elan" module is a
372d774efeaSTony Olech	  USB client driver that interfaces to the FTDI chip within ELAN's
373d774efeaSTony Olech	  USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
374d774efeaSTony Olech	  controller driver that talks to the OHCI controller within the
375d774efeaSTony Olech	  CardBus cards that are inserted in the U132 adapter.
376d774efeaSTony Olech
377d774efeaSTony Olech	  This driver has been tested with a CardBus OHCI USB adapter, and
378d774efeaSTony Olech	  worked with a USB PEN Drive inserted into the first USB port of
379d774efeaSTony Olech	  the PCCARD. A rather pointless thing to do, but useful for testing.
380d774efeaSTony Olech
381d774efeaSTony Olech	  It is safe to say M here.
382d774efeaSTony Olech
383d774efeaSTony Olech	  See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
384d774efeaSTony Olech
3851da177e4SLinus Torvaldsconfig USB_SL811_HCD
3861da177e4SLinus Torvalds	tristate "SL811HS HCD support"
3871da177e4SLinus Torvalds	depends on USB
3881da177e4SLinus Torvalds	help
3891da177e4SLinus Torvalds	  The SL811HS is a single-port USB controller that supports either
3901da177e4SLinus Torvalds	  host side or peripheral side roles.  Enable this option if your
3911da177e4SLinus Torvalds	  board has this chip, and you want to use it as a host controller.
3921da177e4SLinus Torvalds	  If unsure, say N.
3931da177e4SLinus Torvalds
3941da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
3951da177e4SLinus Torvalds	  module will be called sl811-hcd.
3961da177e4SLinus Torvalds
397c6de2b64SDavid Brownellconfig USB_SL811_CS
398c6de2b64SDavid Brownell	tristate "CF/PCMCIA support for SL811HS HCD"
399c6de2b64SDavid Brownell	depends on USB_SL811_HCD && PCMCIA
400c6de2b64SDavid Brownell	help
401c6de2b64SDavid Brownell	  Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC
402c6de2b64SDavid Brownell	  REX-CFU1U CF card (often used with PDAs).  If unsure, say N.
403c6de2b64SDavid Brownell
404c6de2b64SDavid Brownell	  To compile this driver as a module, choose M here: the
405c6de2b64SDavid Brownell	  module will be called "sl811_cs".
406c6de2b64SDavid Brownell
4075d304358SYoshihiro Shimodaconfig USB_R8A66597_HCD
408fa0de2b6SM4rkusXXL	tristate "R8A66597 HCD support"
4095d304358SYoshihiro Shimoda	depends on USB
4105d304358SYoshihiro Shimoda	help
4115d304358SYoshihiro Shimoda	  The R8A66597 is a USB 2.0 host and peripheral controller.
4125d304358SYoshihiro Shimoda
4135d304358SYoshihiro Shimoda	  Enable this option if your board has this chip, and you want
4145d304358SYoshihiro Shimoda	  to use it as a host controller.  If unsure, say N.
4155d304358SYoshihiro Shimoda
4165d304358SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the
4175d304358SYoshihiro Shimoda	  module will be called r8a66597-hcd.
4185d304358SYoshihiro Shimoda
4197e6133aaSDavid Vrabelconfig USB_WHCI_HCD
4206a7c3e46SDavid Vrabel	tristate "Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL)"
4216a7c3e46SDavid Vrabel	depends on EXPERIMENTAL
4227e6133aaSDavid Vrabel	depends on PCI && USB
4237e6133aaSDavid Vrabel	select USB_WUSB
4247e6133aaSDavid Vrabel	select UWB_WHCI
4257e6133aaSDavid Vrabel	help
4267e6133aaSDavid Vrabel	  A driver for PCI-based Wireless USB Host Controllers that are
4277e6133aaSDavid Vrabel	  compliant with the WHCI specification.
4287e6133aaSDavid Vrabel
4297e6133aaSDavid Vrabel	  To compile this driver a module, choose M here: the module
4307e6133aaSDavid Vrabel	  will be called "whci-hcd".
431d09318b8SInaky Perez-Gonzalez
432d09318b8SInaky Perez-Gonzalezconfig USB_HWA_HCD
4336a7c3e46SDavid Vrabel	tristate "Host Wire Adapter (HWA) driver (EXPERIMENTAL)"
4346a7c3e46SDavid Vrabel	depends on EXPERIMENTAL
435d09318b8SInaky Perez-Gonzalez	depends on USB
436d09318b8SInaky Perez-Gonzalez	select USB_WUSB
437d09318b8SInaky Perez-Gonzalez	select UWB_HWA
438d09318b8SInaky Perez-Gonzalez	help
439d09318b8SInaky Perez-Gonzalez	  This driver enables you to connect Wireless USB devices to
440d09318b8SInaky Perez-Gonzalez	  your system using a Host Wire Adaptor USB dongle. This is an
441d09318b8SInaky Perez-Gonzalez	  UWB Radio Controller and WUSB Host Controller connected to
442d09318b8SInaky Perez-Gonzalez	  your machine via USB (specified in WUSB1.0).
443d09318b8SInaky Perez-Gonzalez
444d09318b8SInaky Perez-Gonzalez	  To compile this driver a module, choose M here: the module
445d09318b8SInaky Perez-Gonzalez	  will be called "hwa-hc".
44623d3e7a6SMartin Fuzzey
44723d3e7a6SMartin Fuzzeyconfig USB_IMX21_HCD
44823d3e7a6SMartin Fuzzey       tristate "iMX21 HCD support"
44923d3e7a6SMartin Fuzzey       depends on USB && ARM && MACH_MX21
45023d3e7a6SMartin Fuzzey       help
45123d3e7a6SMartin Fuzzey         This driver enables support for the on-chip USB host in the
45223d3e7a6SMartin Fuzzey         iMX21 processor.
45323d3e7a6SMartin Fuzzey
45423d3e7a6SMartin Fuzzey         To compile this driver as a module, choose M here: the
45523d3e7a6SMartin Fuzzey         module will be called "imx21-hcd".
45623d3e7a6SMartin Fuzzey
4571643accdSDavid Daneyconfig USB_OCTEON_EHCI
4581643accdSDavid Daney	bool "Octeon on-chip EHCI support"
4591643accdSDavid Daney	depends on USB && USB_EHCI_HCD && CPU_CAVIUM_OCTEON
4601643accdSDavid Daney	default n
4611643accdSDavid Daney	select USB_EHCI_BIG_ENDIAN_MMIO
4621643accdSDavid Daney	help
4631643accdSDavid Daney	  Enable support for the Octeon II SOC's on-chip EHCI
4641643accdSDavid Daney	  controller.  It is needed for high-speed (480Mbit/sec)
4651643accdSDavid Daney	  USB 2.0 device support.  All CN6XXX based chips with USB are
4661643accdSDavid Daney	  supported.
4671643accdSDavid Daney
4681643accdSDavid Daneyconfig USB_OCTEON_OHCI
4691643accdSDavid Daney	bool "Octeon on-chip OHCI support"
4701643accdSDavid Daney	depends on USB && USB_OHCI_HCD && CPU_CAVIUM_OCTEON
4711643accdSDavid Daney	default USB_OCTEON_EHCI
4721643accdSDavid Daney	select USB_OHCI_BIG_ENDIAN_MMIO
4731643accdSDavid Daney	select USB_OHCI_LITTLE_ENDIAN
4741643accdSDavid Daney	help
4751643accdSDavid Daney	  Enable support for the Octeon II SOC's on-chip OHCI
4761643accdSDavid Daney	  controller.  It is needed for low-speed USB 1.0 device
4771643accdSDavid Daney	  support.  All CN6XXX based chips with USB are supported.
4781643accdSDavid Daney
4791643accdSDavid Daneyconfig USB_OCTEON2_COMMON
4801643accdSDavid Daney	bool
4811643accdSDavid Daney	default y if USB_OCTEON_EHCI || USB_OCTEON_OHCI
482