2 # USB Host Controller Drivers
4 comment "USB Host Controller Drivers"
8 tristate "EHCI HCD (USB 2.0) support"
9 depends on USB && USB_ARCH_HAS_EHCI
11 The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
12 "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
13 If your USB host controller supports USB 2.0, you will likely want to
14 configure this Host Controller Driver. At the time of this writing,
15 the primary implementation of EHCI is a chip from NEC, widely available
16 in add-on PCI cards, but implementations are in the works from other
17 vendors including Intel and Philips. Motherboard support is appearing.
19 EHCI controllers are packaged with "companion" host controllers (OHCI
20 or UHCI) to handle USB 1.1 devices connected to root hub ports. Ports
21 will connect to EHCI if the device is high speed, otherwise they
22 connect to a companion controller. If you configure EHCI, you should
23 probably configure the OHCI (for NEC and some other vendors) USB Host
24 Controller Driver or UHCI (for Via motherboards) Host Controller
27 You may want to read <file:Documentation/usb/ehci.txt>.
29 To compile this driver as a module, choose M here: the
30 module will be called ehci-hcd.
32 config USB_EHCI_ROOT_HUB_TT
33 bool "Root Hub Transaction Translators (EXPERIMENTAL)"
34 depends on USB_EHCI_HCD && EXPERIMENTAL
36 Some EHCI chips have vendor-specific extensions to integrate
37 transaction translators, so that no OHCI or UHCI companion
38 controller is needed. It's safe to say "y" even if your
39 controller doesn't support this feature.
41 This supports the EHCI implementation that's originally
42 from ARC, and has since changed hands a few times.
44 config USB_EHCI_TT_NEWSCHED
45 bool "Improved Transaction Translator scheduling"
46 depends on USB_EHCI_HCD
49 This changes the periodic scheduling code to fill more of the low
50 and full speed bandwidth available from the Transaction Translator
51 (TT) in USB 2.0 hubs. Without this, only one transfer will be
52 issued in each microframe, significantly reducing the number of
53 periodic low/fullspeed transfers possible.
55 If you have multiple periodic low/fullspeed devices connected to a
56 highspeed USB hub which is connected to a highspeed USB Host
57 Controller, and some of those devices will not work correctly
58 (possibly due to "ENOSPC" or "-28" errors), say Y. Conversely, if
59 you have only one such device and it doesn't work, you could try
64 config USB_EHCI_BIG_ENDIAN_MMIO
66 depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX)
69 config USB_EHCI_BIG_ENDIAN_DESC
71 depends on USB_EHCI_HCD && 440EPX
76 select USB_EHCI_ROOT_HUB_TT
77 default y if MPC834x || PPC_MPC831x
79 Variation of ARC USB block used in some Freescale chips.
81 config USB_ISP116X_HCD
82 tristate "ISP116X HCD support"
85 The ISP1160 and ISP1161 chips are USB host controllers. Enable this
86 option if your board has this chip. If unsure, say N.
88 This driver does not support isochronous transfers.
90 To compile this driver as a module, choose M here: the
91 module will be called isp116x-hcd.
94 tristate "OHCI HCD support"
95 depends on USB && USB_ARCH_HAS_OHCI
96 select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
97 select I2C if ARCH_PNX4008
99 The Open Host Controller Interface (OHCI) is a standard for accessing
100 USB 1.1 host controller hardware. It does more in hardware than Intel's
101 UHCI specification. If your USB host controller follows the OHCI spec,
102 say Y. On most non-x86 systems, and on x86 hardware that's not using a
103 USB controller from Intel or VIA, this is appropriate. If your host
104 controller doesn't use PCI, this is probably appropriate. For a PCI
105 based system where you're not sure, the "lspci -v" entry will list the
106 right "prog-if" for your USB controller(s): EHCI, OHCI, or UHCI.
108 To compile this driver as a module, choose M here: the
109 module will be called ohci-hcd.
111 config USB_OHCI_HCD_PPC_SOC
112 bool "OHCI support for on-chip PPC USB controller"
113 depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
115 select USB_OHCI_BIG_ENDIAN_DESC
116 select USB_OHCI_BIG_ENDIAN_MMIO
118 Enables support for the USB controller on the MPC52xx or
119 STB03xxx processor chip. If unsure, say Y.
121 config USB_OHCI_HCD_PPC_OF
122 bool "OHCI support for PPC USB controller on OF platform bus"
123 depends on USB_OHCI_HCD && PPC_OF
126 Enables support for the USB controller PowerPC present on the
127 OpenFirmware platform bus.
129 config USB_OHCI_HCD_PPC_OF_BE
130 bool "Support big endian HC"
131 depends on USB_OHCI_HCD_PPC_OF
133 select USB_OHCI_BIG_ENDIAN_DESC
134 select USB_OHCI_BIG_ENDIAN_MMIO
136 config USB_OHCI_HCD_PPC_OF_LE
137 bool "Support little endian HC"
138 depends on USB_OHCI_HCD_PPC_OF
140 select USB_OHCI_LITTLE_ENDIAN
142 config USB_OHCI_HCD_PCI
143 bool "OHCI support for PCI-bus USB controllers"
144 depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
146 select USB_OHCI_LITTLE_ENDIAN
148 Enables support for PCI-bus plug-in USB controller cards.
151 config USB_OHCI_BIG_ENDIAN_DESC
153 depends on USB_OHCI_HCD
156 config USB_OHCI_BIG_ENDIAN_MMIO
158 depends on USB_OHCI_HCD
161 config USB_OHCI_LITTLE_ENDIAN
163 depends on USB_OHCI_HCD
164 default n if STB03xxx || PPC_MPC52xx
168 tristate "UHCI HCD (most Intel and VIA) support"
169 depends on USB && PCI
171 The Universal Host Controller Interface is a standard by Intel for
172 accessing the USB hardware in the PC (which is also called the USB
173 host controller). If your USB host controller conforms to this
174 standard, you may want to say Y, but see below. All recent boards
175 with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
176 i810, i820) conform to this standard. Also all VIA PCI chipsets
177 (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
178 133). If unsure, say Y.
180 To compile this driver as a module, choose M here: the
181 module will be called uhci-hcd.
184 tristate "Elan U132 Adapter Host Controller"
185 depends on USB && USB_FTDI_ELAN
188 The U132 adapter is a USB to CardBus adapter specifically designed
189 for PC cards that contain an OHCI host controller. Typical PC cards
190 are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
191 adapter will *NOT* work with PC cards that do not contain an OHCI
194 For those PC cards that contain multiple OHCI controllers only the
197 The driver consists of two modules, the "ftdi-elan" module is a
198 USB client driver that interfaces to the FTDI chip within ELAN's
199 USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
200 controller driver that talks to the OHCI controller within the
201 CardBus cards that are inserted in the U132 adapter.
203 This driver has been tested with a CardBus OHCI USB adapter, and
204 worked with a USB PEN Drive inserted into the first USB port of
205 the PCCARD. A rather pointless thing to do, but useful for testing.
207 It is safe to say M here.
209 See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
212 tristate "SL811HS HCD support"
215 The SL811HS is a single-port USB controller that supports either
216 host side or peripheral side roles. Enable this option if your
217 board has this chip, and you want to use it as a host controller.
220 To compile this driver as a module, choose M here: the
221 module will be called sl811-hcd.
224 tristate "CF/PCMCIA support for SL811HS HCD"
225 depends on USB_SL811_HCD && PCMCIA
227 Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC
228 REX-CFU1U CF card (often used with PDAs). If unsure, say N.
230 To compile this driver as a module, choose M here: the
231 module will be called "sl811_cs".
233 config USB_R8A66597_HCD
234 tristate "R8A66597 HCD support"
237 The R8A66597 is a USB 2.0 host and peripheral controller.
239 Enable this option if your board has this chip, and you want
240 to use it as a host controller. If unsure, say N.
242 To compile this driver as a module, choose M here: the
243 module will be called r8a66597-hcd.