xref: /openbmc/linux/drivers/usb/host/Kconfig (revision 64c70b1c)
1#
2# USB Host Controller Drivers
3#
4comment "USB Host Controller Drivers"
5	depends on USB
6
7config USB_EHCI_HCD
8	tristate "EHCI HCD (USB 2.0) support"
9	depends on USB && USB_ARCH_HAS_EHCI
10	---help---
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.
18
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
25	  Driver too.
26
27	  You may want to read <file:Documentation/usb/ehci.txt>.
28
29	  To compile this driver as a module, choose M here: the
30	  module will be called ehci-hcd.
31
32config USB_EHCI_SPLIT_ISO
33	bool "Full speed ISO transactions (EXPERIMENTAL)"
34	depends on USB_EHCI_HCD && EXPERIMENTAL
35	default n
36	---help---
37	  This code is new and hasn't been used with many different
38	  EHCI or USB 2.0 transaction translator implementations.
39	  It should work for ISO-OUT transfers, like audio.
40
41config USB_EHCI_ROOT_HUB_TT
42	bool "Root Hub Transaction Translators (EXPERIMENTAL)"
43	depends on USB_EHCI_HCD && EXPERIMENTAL
44	---help---
45	  Some EHCI chips have vendor-specific extensions to integrate
46	  transaction translators, so that no OHCI or UHCI companion
47	  controller is needed.  It's safe to say "y" even if your
48	  controller doesn't support this feature.
49
50	  This supports the EHCI implementation that's originally
51	  from ARC, and has since changed hands a few times.
52
53config USB_EHCI_TT_NEWSCHED
54	bool "Improved Transaction Translator scheduling (EXPERIMENTAL)"
55	depends on USB_EHCI_HCD && EXPERIMENTAL
56	---help---
57	  This changes the periodic scheduling code to fill more of the low
58	  and full speed bandwidth available from the Transaction Translator
59	  (TT) in USB 2.0 hubs.  Without this, only one transfer will be
60	  issued in each microframe, significantly reducing the number of
61	  periodic low/fullspeed transfers possible.
62
63	  If you have multiple periodic low/fullspeed devices connected to a
64	  highspeed USB hub which is connected to a highspeed USB Host
65	  Controller, and some of those devices will not work correctly
66	  (possibly due to "ENOSPC" or "-28" errors), say Y.
67
68	  If unsure, say N.
69
70config USB_EHCI_BIG_ENDIAN_MMIO
71	bool
72	depends on USB_EHCI_HCD
73	default n
74
75config USB_ISP116X_HCD
76	tristate "ISP116X HCD support"
77	depends on USB
78	---help---
79	  The ISP1160 and ISP1161 chips are USB host controllers. Enable this
80	  option if your board has this chip. If unsure, say N.
81
82	  This driver does not support isochronous transfers.
83
84	  To compile this driver as a module, choose M here: the
85	  module will be called isp116x-hcd.
86
87config USB_OHCI_HCD
88	tristate "OHCI HCD support"
89	depends on USB && USB_ARCH_HAS_OHCI
90	select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
91	select I2C if ARCH_PNX4008
92	---help---
93	  The Open Host Controller Interface (OHCI) is a standard for accessing
94	  USB 1.1 host controller hardware.  It does more in hardware than Intel's
95	  UHCI specification.  If your USB host controller follows the OHCI spec,
96	  say Y.  On most non-x86 systems, and on x86 hardware that's not using a
97	  USB controller from Intel or VIA, this is appropriate.  If your host
98	  controller doesn't use PCI, this is probably appropriate.  For a PCI
99	  based system where you're not sure, the "lspci -v" entry will list the
100	  right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
101
102	  To compile this driver as a module, choose M here: the
103	  module will be called ohci-hcd.
104
105config USB_OHCI_HCD_PPC_SOC
106	bool "OHCI support for on-chip PPC USB controller"
107	depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
108	default y
109	select USB_OHCI_BIG_ENDIAN_DESC
110	select USB_OHCI_BIG_ENDIAN_MMIO
111	---help---
112	  Enables support for the USB controller on the MPC52xx or
113	  STB03xxx processor chip.  If unsure, say Y.
114
115config USB_OHCI_HCD_PPC_OF
116	bool "OHCI support for PPC USB controller on OF platform bus"
117	depends on USB_OHCI_HCD && PPC_OF
118	default y
119	---help---
120	  Enables support for the USB controller PowerPC present on the
121	  OpenFirmware platform bus.
122
123config USB_OHCI_HCD_PPC_OF_BE
124	bool "Support big endian HC"
125	depends on USB_OHCI_HCD_PPC_OF
126	default y
127	select USB_OHCI_BIG_ENDIAN_DESC
128	select USB_OHCI_BIG_ENDIAN_MMIO
129
130config USB_OHCI_HCD_PPC_OF_LE
131	bool "Support little endian HC"
132	depends on USB_OHCI_HCD_PPC_OF
133	default n
134	select USB_OHCI_LITTLE_ENDIAN
135
136config USB_OHCI_HCD_PCI
137	bool "OHCI support for PCI-bus USB controllers"
138	depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
139	default y
140	select USB_OHCI_LITTLE_ENDIAN
141	---help---
142	  Enables support for PCI-bus plug-in USB controller cards.
143	  If unsure, say Y.
144
145config USB_OHCI_BIG_ENDIAN_DESC
146	bool
147	depends on USB_OHCI_HCD
148	default n
149
150config USB_OHCI_BIG_ENDIAN_MMIO
151	bool
152	depends on USB_OHCI_HCD
153	default n
154
155config USB_OHCI_LITTLE_ENDIAN
156	bool
157	depends on USB_OHCI_HCD
158	default n if STB03xxx || PPC_MPC52xx
159	default y
160
161config USB_UHCI_HCD
162	tristate "UHCI HCD (most Intel and VIA) support"
163	depends on USB && PCI
164	---help---
165	  The Universal Host Controller Interface is a standard by Intel for
166	  accessing the USB hardware in the PC (which is also called the USB
167	  host controller). If your USB host controller conforms to this
168	  standard, you may want to say Y, but see below. All recent boards
169	  with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
170	  i810, i820) conform to this standard. Also all VIA PCI chipsets
171	  (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
172	  133). If unsure, say Y.
173
174	  To compile this driver as a module, choose M here: the
175	  module will be called uhci-hcd.
176
177config USB_U132_HCD
178	tristate "Elan U132 Adapter Host Controller"
179	depends on USB && USB_FTDI_ELAN
180	default M
181	help
182	  The U132 adapter is a USB to CardBus adapter specifically designed
183	  for PC cards that contain an OHCI host controller. Typical PC cards
184	  are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
185	  adapter will *NOT* work with PC cards that do not contain an OHCI
186	  controller.
187
188	  For those PC cards that contain multiple OHCI controllers only the
189	  first one is used.
190
191	  The driver consists of two modules, the "ftdi-elan" module is a
192	  USB client driver that interfaces to the FTDI chip within ELAN's
193	  USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
194	  controller driver that talks to the OHCI controller within the
195	  CardBus cards that are inserted in the U132 adapter.
196
197	  This driver has been tested with a CardBus OHCI USB adapter, and
198	  worked with a USB PEN Drive inserted into the first USB port of
199	  the PCCARD. A rather pointless thing to do, but useful for testing.
200
201	  It is safe to say M here.
202
203	  See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
204
205config USB_SL811_HCD
206	tristate "SL811HS HCD support"
207	depends on USB
208	help
209	  The SL811HS is a single-port USB controller that supports either
210	  host side or peripheral side roles.  Enable this option if your
211	  board has this chip, and you want to use it as a host controller.
212	  If unsure, say N.
213
214	  To compile this driver as a module, choose M here: the
215	  module will be called sl811-hcd.
216
217config USB_SL811_CS
218	tristate "CF/PCMCIA support for SL811HS HCD"
219	depends on USB_SL811_HCD && PCMCIA
220	help
221	  Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC
222	  REX-CFU1U CF card (often used with PDAs).  If unsure, say N.
223
224	  To compile this driver as a module, choose M here: the
225	  module will be called "sl811_cs".
226
227