xref: /linux/drivers/usb/host/Kconfig (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
1*1da177e4SLinus Torvalds#
2*1da177e4SLinus Torvalds# USB Host Controller Drivers
3*1da177e4SLinus Torvalds#
4*1da177e4SLinus Torvaldscomment "USB Host Controller Drivers"
5*1da177e4SLinus Torvalds	depends on USB
6*1da177e4SLinus Torvalds
7*1da177e4SLinus Torvaldsconfig USB_EHCI_HCD
8*1da177e4SLinus Torvalds	tristate "EHCI HCD (USB 2.0) support"
9*1da177e4SLinus Torvalds	depends on USB && PCI
10*1da177e4SLinus Torvalds	---help---
11*1da177e4SLinus Torvalds	  The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
12*1da177e4SLinus Torvalds	  "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
13*1da177e4SLinus Torvalds	  If your USB host controller supports USB 2.0, you will likely want to
14*1da177e4SLinus Torvalds	  configure this Host Controller Driver.  At this writing, the primary
15*1da177e4SLinus Torvalds	  implementation of EHCI is a chip from NEC, widely available in add-on
16*1da177e4SLinus Torvalds	  PCI cards, but implementations are in the works from other vendors
17*1da177e4SLinus Torvalds	  including Intel and Philips.  Motherboard support is appearing.
18*1da177e4SLinus Torvalds
19*1da177e4SLinus Torvalds	  EHCI controllers are packaged with "companion" host controllers (OHCI
20*1da177e4SLinus Torvalds	  or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
21*1da177e4SLinus Torvalds	  will connect to EHCI if it the device is high speed, otherwise they
22*1da177e4SLinus Torvalds	  connect to a companion controller.  If you configure EHCI, you should
23*1da177e4SLinus Torvalds	  probably configure the OHCI (for NEC and some other vendors) USB Host
24*1da177e4SLinus Torvalds	  Controller Driver or UHCI (for Via motherboards) Host Controller
25*1da177e4SLinus Torvalds	  Driver too.
26*1da177e4SLinus Torvalds
27*1da177e4SLinus Torvalds	  You may want to read <file:Documentation/usb/ehci.txt>.
28*1da177e4SLinus Torvalds
29*1da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
30*1da177e4SLinus Torvalds	  module will be called ehci-hcd.
31*1da177e4SLinus Torvalds
32*1da177e4SLinus Torvaldsconfig USB_EHCI_SPLIT_ISO
33*1da177e4SLinus Torvalds	bool "Full speed ISO transactions (EXPERIMENTAL)"
34*1da177e4SLinus Torvalds	depends on USB_EHCI_HCD && EXPERIMENTAL
35*1da177e4SLinus Torvalds	default n
36*1da177e4SLinus Torvalds	---help---
37*1da177e4SLinus Torvalds	  This code is new and hasn't been used with many different
38*1da177e4SLinus Torvalds	  EHCI or USB 2.0 transaction translator implementations.
39*1da177e4SLinus Torvalds	  It should work for ISO-OUT transfers, like audio.
40*1da177e4SLinus Torvalds
41*1da177e4SLinus Torvaldsconfig USB_EHCI_ROOT_HUB_TT
42*1da177e4SLinus Torvalds	bool "Root Hub Transaction Translators (EXPERIMENTAL)"
43*1da177e4SLinus Torvalds	depends on USB_EHCI_HCD && EXPERIMENTAL
44*1da177e4SLinus Torvalds	---help---
45*1da177e4SLinus Torvalds	  Some EHCI chips have vendor-specific extensions to integrate
46*1da177e4SLinus Torvalds	  transaction translators, so that no OHCI or UHCI companion
47*1da177e4SLinus Torvalds	  controller is needed.  It's safe to say "y" even if your
48*1da177e4SLinus Torvalds	  controller doesn't support this feature.
49*1da177e4SLinus Torvalds
50*1da177e4SLinus Torvalds	  This supports the EHCI implementation from TransDimension Inc.
51*1da177e4SLinus Torvalds
52*1da177e4SLinus Torvaldsconfig USB_OHCI_HCD
53*1da177e4SLinus Torvalds	tristate "OHCI HCD support"
54*1da177e4SLinus Torvalds	depends on USB && USB_ARCH_HAS_OHCI
55*1da177e4SLinus Torvalds	select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
56*1da177e4SLinus Torvalds	---help---
57*1da177e4SLinus Torvalds	  The Open Host Controller Interface (OHCI) is a standard for accessing
58*1da177e4SLinus Torvalds	  USB 1.1 host controller hardware.  It does more in hardware than Intel's
59*1da177e4SLinus Torvalds	  UHCI specification.  If your USB host controller follows the OHCI spec,
60*1da177e4SLinus Torvalds	  say Y.  On most non-x86 systems, and on x86 hardware that's not using a
61*1da177e4SLinus Torvalds	  USB controller from Intel or VIA, this is appropriate.  If your host
62*1da177e4SLinus Torvalds	  controller doesn't use PCI, this is probably appropriate.  For a PCI
63*1da177e4SLinus Torvalds	  based system where you're not sure, the "lspci -v" entry will list the
64*1da177e4SLinus Torvalds	  right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
65*1da177e4SLinus Torvalds
66*1da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
67*1da177e4SLinus Torvalds	  module will be called ohci-hcd.
68*1da177e4SLinus Torvalds
69*1da177e4SLinus Torvaldsconfig USB_OHCI_HCD_PPC_SOC
70*1da177e4SLinus Torvalds	bool "OHCI support for on-chip PPC USB controller"
71*1da177e4SLinus Torvalds	depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
72*1da177e4SLinus Torvalds	default y
73*1da177e4SLinus Torvalds	select USB_OHCI_BIG_ENDIAN
74*1da177e4SLinus Torvalds	---help---
75*1da177e4SLinus Torvalds	  Enables support for the USB controller on the MPC52xx or
76*1da177e4SLinus Torvalds	  STB03xxx processor chip.  If unsure, say Y.
77*1da177e4SLinus Torvalds
78*1da177e4SLinus Torvaldsconfig USB_OHCI_HCD_PCI
79*1da177e4SLinus Torvalds	bool "OHCI support for PCI-bus USB controllers"
80*1da177e4SLinus Torvalds	depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx)
81*1da177e4SLinus Torvalds	default y
82*1da177e4SLinus Torvalds	select USB_OHCI_LITTLE_ENDIAN
83*1da177e4SLinus Torvalds	---help---
84*1da177e4SLinus Torvalds	  Enables support for PCI-bus plug-in USB controller cards.
85*1da177e4SLinus Torvalds	  If unsure, say Y.
86*1da177e4SLinus Torvalds
87*1da177e4SLinus Torvaldsconfig USB_OHCI_BIG_ENDIAN
88*1da177e4SLinus Torvalds	bool
89*1da177e4SLinus Torvalds	depends on USB_OHCI_HCD
90*1da177e4SLinus Torvalds	default n
91*1da177e4SLinus Torvalds
92*1da177e4SLinus Torvaldsconfig USB_OHCI_LITTLE_ENDIAN
93*1da177e4SLinus Torvalds	bool
94*1da177e4SLinus Torvalds	depends on USB_OHCI_HCD
95*1da177e4SLinus Torvalds	default n if STB03xxx || PPC_MPC52xx
96*1da177e4SLinus Torvalds	default y
97*1da177e4SLinus Torvalds
98*1da177e4SLinus Torvaldsconfig USB_UHCI_HCD
99*1da177e4SLinus Torvalds	tristate "UHCI HCD (most Intel and VIA) support"
100*1da177e4SLinus Torvalds	depends on USB && PCI
101*1da177e4SLinus Torvalds	---help---
102*1da177e4SLinus Torvalds	  The Universal Host Controller Interface is a standard by Intel for
103*1da177e4SLinus Torvalds	  accessing the USB hardware in the PC (which is also called the USB
104*1da177e4SLinus Torvalds	  host controller). If your USB host controller conforms to this
105*1da177e4SLinus Torvalds	  standard, you may want to say Y, but see below. All recent boards
106*1da177e4SLinus Torvalds	  with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
107*1da177e4SLinus Torvalds	  i810, i820) conform to this standard. Also all VIA PCI chipsets
108*1da177e4SLinus Torvalds	  (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
109*1da177e4SLinus Torvalds	  133). If unsure, say Y.
110*1da177e4SLinus Torvalds
111*1da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
112*1da177e4SLinus Torvalds	  module will be called uhci-hcd.
113*1da177e4SLinus Torvalds
114*1da177e4SLinus Torvaldsconfig USB_SL811_HCD
115*1da177e4SLinus Torvalds	tristate "SL811HS HCD support"
116*1da177e4SLinus Torvalds	depends on USB
117*1da177e4SLinus Torvalds	default N
118*1da177e4SLinus Torvalds	help
119*1da177e4SLinus Torvalds	  The SL811HS is a single-port USB controller that supports either
120*1da177e4SLinus Torvalds	  host side or peripheral side roles.  Enable this option if your
121*1da177e4SLinus Torvalds	  board has this chip, and you want to use it as a host controller.
122*1da177e4SLinus Torvalds	  If unsure, say N.
123*1da177e4SLinus Torvalds
124*1da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the
125*1da177e4SLinus Torvalds	  module will be called sl811-hcd.
126*1da177e4SLinus Torvalds
127