Merge remote branch 'common/android-2.6.36' into android-tegra-2.6.36
[firefly-linux-kernel-4.4.55.git] / drivers / usb / host / Kconfig
1 #
2 # USB Host Controller Drivers
3 #
4 comment "USB Host Controller Drivers"
5         depends on USB
6
7 config USB_C67X00_HCD
8         tristate "Cypress C67x00 HCD support"
9         depends on USB
10         help
11           The Cypress C67x00 (EZ-Host/EZ-OTG) chips are dual-role
12           host/peripheral/OTG USB controllers.
13
14           Enable this option to support this chip in host controller mode.
15           If unsure, say N.
16
17           To compile this driver as a module, choose M here: the
18           module will be called c67x00.
19
20 config USB_XHCI_HCD
21         tristate "xHCI HCD (USB 3.0) support (EXPERIMENTAL)"
22         depends on USB && PCI && EXPERIMENTAL
23         ---help---
24           The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
25           "SuperSpeed" host controller hardware.
26
27           To compile this driver as a module, choose M here: the
28           module will be called xhci-hcd.
29
30 config USB_XHCI_HCD_DEBUGGING
31         bool "Debugging for the xHCI host controller"
32         depends on USB_XHCI_HCD
33         ---help---
34           Say 'Y' to turn on debugging for the xHCI host controller driver.
35           This will spew debugging output, even in interrupt context.
36           This should only be used for debugging xHCI driver bugs.
37
38           If unsure, say N.
39
40 config USB_EHCI_HCD
41         tristate "EHCI HCD (USB 2.0) support"
42         depends on USB && USB_ARCH_HAS_EHCI
43         ---help---
44           The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
45           "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
46           If your USB host controller supports USB 2.0, you will likely want to
47           configure this Host Controller Driver.
48
49           EHCI controllers are packaged with "companion" host controllers (OHCI
50           or UHCI) to handle USB 1.1 devices connected to root hub ports.  Ports
51           will connect to EHCI if the device is high speed, otherwise they
52           connect to a companion controller.  If you configure EHCI, you should
53           probably configure the OHCI (for NEC and some other vendors) USB Host
54           Controller Driver or UHCI (for Via motherboards) Host Controller
55           Driver too.
56
57           You may want to read <file:Documentation/usb/ehci.txt>.
58
59           To compile this driver as a module, choose M here: the
60           module will be called ehci-hcd.
61
62 config USB_EHCI_ROOT_HUB_TT
63         bool "Root Hub Transaction Translators"
64         depends on USB_EHCI_HCD
65         ---help---
66           Some EHCI chips have vendor-specific extensions to integrate
67           transaction translators, so that no OHCI or UHCI companion
68           controller is needed.  It's safe to say "y" even if your
69           controller doesn't support this feature.
70
71           This supports the EHCI implementation that's originally
72           from ARC, and has since changed hands a few times.
73
74 config USB_EHCI_TT_NEWSCHED
75         bool "Improved Transaction Translator scheduling"
76         depends on USB_EHCI_HCD
77         default y
78         ---help---
79           This changes the periodic scheduling code to fill more of the low
80           and full speed bandwidth available from the Transaction Translator
81           (TT) in USB 2.0 hubs.  Without this, only one transfer will be
82           issued in each microframe, significantly reducing the number of
83           periodic low/fullspeed transfers possible.
84
85           If you have multiple periodic low/fullspeed devices connected to a
86           highspeed USB hub which is connected to a highspeed USB Host
87           Controller, and some of those devices will not work correctly
88           (possibly due to "ENOSPC" or "-28" errors), say Y.  Conversely, if
89           you have only one such device and it doesn't work, you could try
90           saying N.
91
92           If unsure, say Y.
93
94 config USB_EHCI_BIG_ENDIAN_MMIO
95         bool
96         depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || ARCH_IXP4XX || XPS_USB_HCD_XILINX)
97         default y
98
99 config USB_EHCI_BIG_ENDIAN_DESC
100         bool
101         depends on USB_EHCI_HCD && (440EPX || ARCH_IXP4XX || XPS_USB_HCD_XILINX)
102         default y
103
104 config XPS_USB_HCD_XILINX
105         bool "Use Xilinx usb host EHCI controller core"
106         depends on USB_EHCI_HCD && (PPC32 || MICROBLAZE)
107         select USB_EHCI_BIG_ENDIAN_DESC
108         select USB_EHCI_BIG_ENDIAN_MMIO
109         ---help---
110                 Xilinx xps USB host controller core is EHCI compilant and has
111                 transaction translator built-in. It can be configured to either
112                 support both high speed and full speed devices, or high speed
113                 devices only.
114
115 config USB_EHCI_FSL
116         bool "Support for Freescale on-chip EHCI USB controller"
117         depends on USB_EHCI_HCD && FSL_SOC
118         select USB_EHCI_ROOT_HUB_TT
119         ---help---
120           Variation of ARC USB block used in some Freescale chips.
121
122 config USB_EHCI_MXC
123         bool "Support for Freescale on-chip EHCI USB controller"
124         depends on USB_EHCI_HCD && ARCH_MXC
125         select USB_EHCI_ROOT_HUB_TT
126         ---help---
127           Variation of ARC USB block used in some Freescale chips.
128
129 config USB_EHCI_TEGRA
130        boolean "NVIDIA Tegra HCD support"
131        depends on USB_EHCI_HCD && ARCH_TEGRA
132        select USB_EHCI_ROOT_HUB_TT
133        help
134          This driver enables support for the internal USB Host Controller
135          found in NVIDIA Tegra SoCs. The Tegra controller is EHCI compliant.
136
137 config USB_EHCI_HCD_PPC_OF
138         bool "EHCI support for PPC USB controller on OF platform bus"
139         depends on USB_EHCI_HCD && PPC_OF
140         default y
141         ---help---
142           Enables support for the USB controller present on the PowerPC
143           OpenFirmware platform bus.
144
145 config USB_W90X900_EHCI
146         bool "W90X900(W90P910) EHCI support"
147         depends on USB_EHCI_HCD && ARCH_W90X900
148         ---help---
149                 Enables support for the W90X900 USB controller
150
151 config USB_OXU210HP_HCD
152         tristate "OXU210HP HCD support"
153         depends on USB
154         ---help---
155           The OXU210HP is an USB host/OTG/device controller. Enable this
156           option if your board has this chip. If unsure, say N.
157
158           This driver does not support isochronous transfers and doesn't
159           implement OTG nor USB device controllers.
160
161           To compile this driver as a module, choose M here: the
162           module will be called oxu210hp-hcd.
163
164 config USB_ISP116X_HCD
165         tristate "ISP116X HCD support"
166         depends on USB
167         ---help---
168           The ISP1160 and ISP1161 chips are USB host controllers. Enable this
169           option if your board has this chip. If unsure, say N.
170
171           This driver does not support isochronous transfers.
172
173           To compile this driver as a module, choose M here: the
174           module will be called isp116x-hcd.
175
176 config USB_ISP1760_HCD
177         tristate "ISP 1760 HCD support"
178         depends on USB && EXPERIMENTAL
179         ---help---
180           The ISP1760 chip is a USB 2.0 host controller.
181
182           This driver does not support isochronous transfers or OTG.
183           This USB controller is usually attached to a non-DMA-Master
184           capable bus. NXP's eval kit brings this chip on PCI card
185           where the chip itself is behind a PLB to simulate such
186           a bus.
187
188           To compile this driver as a module, choose M here: the
189           module will be called isp1760.
190
191 config USB_ISP1362_HCD
192         tristate "ISP1362 HCD support"
193         depends on USB
194         default N
195         ---help---
196           Supports the Philips ISP1362 chip as a host controller
197
198           This driver does not support isochronous transfers.
199
200           To compile this driver as a module, choose M here: the
201           module will be called isp1362-hcd.
202
203 config USB_OHCI_HCD
204         tristate "OHCI HCD support"
205         depends on USB && USB_ARCH_HAS_OHCI
206         select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
207         select USB_OTG_UTILS if ARCH_OMAP
208         ---help---
209           The Open Host Controller Interface (OHCI) is a standard for accessing
210           USB 1.1 host controller hardware.  It does more in hardware than Intel's
211           UHCI specification.  If your USB host controller follows the OHCI spec,
212           say Y.  On most non-x86 systems, and on x86 hardware that's not using a
213           USB controller from Intel or VIA, this is appropriate.  If your host
214           controller doesn't use PCI, this is probably appropriate.  For a PCI
215           based system where you're not sure, the "lspci -v" entry will list the
216           right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI.
217
218           To compile this driver as a module, choose M here: the
219           module will be called ohci-hcd.
220
221 config USB_OHCI_HCD_OMAP1
222         bool "OHCI support for OMAP1/2 chips"
223         depends on USB_OHCI_HCD && (ARCH_OMAP1 || ARCH_OMAP2)
224         default y
225         ---help---
226           Enables support for the OHCI controller on OMAP1/2 chips.
227
228 config USB_OHCI_HCD_OMAP3
229         bool "OHCI support for OMAP3 and later chips"
230         depends on USB_OHCI_HCD && (ARCH_OMAP3 || ARCH_OMAP4)
231         default y
232         ---help---
233           Enables support for the on-chip OHCI controller on
234           OMAP3 and later chips.
235
236 config USB_OHCI_HCD_PPC_SOC
237         bool "OHCI support for on-chip PPC USB controller"
238         depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
239         default y
240         select USB_OHCI_BIG_ENDIAN_DESC
241         select USB_OHCI_BIG_ENDIAN_MMIO
242         ---help---
243           Enables support for the USB controller on the MPC52xx or
244           STB03xxx processor chip.  If unsure, say Y.
245
246 config USB_OHCI_HCD_PPC_OF_BE
247         bool "OHCI support for OF platform bus (big endian)"
248         depends on USB_OHCI_HCD && PPC_OF
249         select USB_OHCI_BIG_ENDIAN_DESC
250         select USB_OHCI_BIG_ENDIAN_MMIO
251         ---help---
252           Enables support for big-endian USB controllers present on the
253           OpenFirmware platform bus.
254
255 config USB_OHCI_HCD_PPC_OF_LE
256         bool "OHCI support for OF platform bus (little endian)"
257         depends on USB_OHCI_HCD && PPC_OF
258         select USB_OHCI_LITTLE_ENDIAN
259         ---help---
260           Enables support for little-endian USB controllers present on the
261           OpenFirmware platform bus.
262
263 config USB_OHCI_HCD_PPC_OF
264         bool
265         depends on USB_OHCI_HCD && PPC_OF
266         default USB_OHCI_HCD_PPC_OF_BE || USB_OHCI_HCD_PPC_OF_LE
267
268 config USB_OHCI_HCD_PCI
269         bool "OHCI support for PCI-bus USB controllers"
270         depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
271         default y
272         select USB_OHCI_LITTLE_ENDIAN
273         ---help---
274           Enables support for PCI-bus plug-in USB controller cards.
275           If unsure, say Y.
276
277 config USB_OHCI_HCD_SSB
278         bool "OHCI support for Broadcom SSB OHCI core"
279         depends on USB_OHCI_HCD && (SSB = y || SSB = USB_OHCI_HCD) && EXPERIMENTAL
280         default n
281         ---help---
282           Support for the Sonics Silicon Backplane (SSB) attached
283           Broadcom USB OHCI core.
284
285           This device is present in some embedded devices with
286           Broadcom based SSB bus.
287
288           If unsure, say N.
289
290 config USB_OHCI_BIG_ENDIAN_DESC
291         bool
292         depends on USB_OHCI_HCD
293         default n
294
295 config USB_OHCI_BIG_ENDIAN_MMIO
296         bool
297         depends on USB_OHCI_HCD
298         default n
299
300 config USB_OHCI_LITTLE_ENDIAN
301         bool
302         depends on USB_OHCI_HCD
303         default n if STB03xxx || PPC_MPC52xx
304         default y
305
306 config USB_UHCI_HCD
307         tristate "UHCI HCD (most Intel and VIA) support"
308         depends on USB && PCI
309         ---help---
310           The Universal Host Controller Interface is a standard by Intel for
311           accessing the USB hardware in the PC (which is also called the USB
312           host controller). If your USB host controller conforms to this
313           standard, you may want to say Y, but see below. All recent boards
314           with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
315           i810, i820) conform to this standard. Also all VIA PCI chipsets
316           (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
317           133). If unsure, say Y.
318
319           To compile this driver as a module, choose M here: the
320           module will be called uhci-hcd.
321
322 config USB_FHCI_HCD
323         tristate "Freescale QE USB Host Controller support"
324         depends on USB && OF_GPIO && QE_GPIO && QUICC_ENGINE
325         select FSL_GTM
326         select QE_USB
327         help
328           This driver enables support for Freescale QE USB Host Controller
329           (as found on MPC8360 and MPC8323 processors), the driver supports
330           Full and Low Speed USB.
331
332 config FHCI_DEBUG
333         bool "Freescale QE USB Host Controller debug support"
334         depends on USB_FHCI_HCD && DEBUG_FS
335         help
336           Say "y" to see some FHCI debug information and statistics
337           throught debugfs.
338
339 config USB_U132_HCD
340         tristate "Elan U132 Adapter Host Controller"
341         depends on USB && USB_FTDI_ELAN
342         default M
343         help
344           The U132 adapter is a USB to CardBus adapter specifically designed
345           for PC cards that contain an OHCI host controller. Typical PC cards
346           are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
347           adapter will *NOT* work with PC cards that do not contain an OHCI
348           controller.
349
350           For those PC cards that contain multiple OHCI controllers only the
351           first one is used.
352
353           The driver consists of two modules, the "ftdi-elan" module is a
354           USB client driver that interfaces to the FTDI chip within ELAN's
355           USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
356           controller driver that talks to the OHCI controller within the
357           CardBus cards that are inserted in the U132 adapter.
358
359           This driver has been tested with a CardBus OHCI USB adapter, and
360           worked with a USB PEN Drive inserted into the first USB port of
361           the PCCARD. A rather pointless thing to do, but useful for testing.
362
363           It is safe to say M here.
364
365           See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
366
367 config USB_SL811_HCD
368         tristate "SL811HS HCD support"
369         depends on USB
370         help
371           The SL811HS is a single-port USB controller that supports either
372           host side or peripheral side roles.  Enable this option if your
373           board has this chip, and you want to use it as a host controller. 
374           If unsure, say N.
375
376           To compile this driver as a module, choose M here: the
377           module will be called sl811-hcd.
378
379 config USB_SL811_CS
380         tristate "CF/PCMCIA support for SL811HS HCD"
381         depends on USB_SL811_HCD && PCMCIA
382         help
383           Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC
384           REX-CFU1U CF card (often used with PDAs).  If unsure, say N.
385
386           To compile this driver as a module, choose M here: the
387           module will be called "sl811_cs".
388
389 config USB_R8A66597_HCD
390         tristate "R8A66597 HCD support"
391         depends on USB
392         help
393           The R8A66597 is a USB 2.0 host and peripheral controller.
394
395           Enable this option if your board has this chip, and you want
396           to use it as a host controller.  If unsure, say N.
397
398           To compile this driver as a module, choose M here: the
399           module will be called r8a66597-hcd.
400
401 config USB_WHCI_HCD
402         tristate "Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL)"
403         depends on EXPERIMENTAL
404         depends on PCI && USB
405         select USB_WUSB
406         select UWB_WHCI
407         help
408           A driver for PCI-based Wireless USB Host Controllers that are
409           compliant with the WHCI specification.
410
411           To compile this driver a module, choose M here: the module
412           will be called "whci-hcd".
413
414 config USB_HWA_HCD
415         tristate "Host Wire Adapter (HWA) driver (EXPERIMENTAL)"
416         depends on EXPERIMENTAL
417         depends on USB
418         select USB_WUSB
419         select UWB_HWA
420         help
421           This driver enables you to connect Wireless USB devices to
422           your system using a Host Wire Adaptor USB dongle. This is an
423           UWB Radio Controller and WUSB Host Controller connected to
424           your machine via USB (specified in WUSB1.0).
425
426           To compile this driver a module, choose M here: the module
427           will be called "hwa-hc".
428
429 config USB_IMX21_HCD
430        tristate "iMX21 HCD support"
431        depends on USB && ARM && MACH_MX21
432        help
433          This driver enables support for the on-chip USB host in the
434          iMX21 processor.
435
436          To compile this driver as a module, choose M here: the
437          module will be called "imx21-hcd".
438