| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | # | 
 | 2 | # USB Host Controller Drivers | 
 | 3 | # | 
 | 4 | comment "USB Host Controller Drivers" | 
 | 5 | 	depends on USB | 
 | 6 |  | 
 | 7 | config USB_EHCI_HCD | 
 | 8 | 	tristate "EHCI HCD (USB 2.0) support" | 
| Jordan Crouse | 76fa9a2 | 2006-01-20 14:06:09 -0800 | [diff] [blame] | 9 | 	depends on USB && USB_ARCH_HAS_EHCI | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | 
| Jesper Juhl | b3c29d8 | 2006-01-10 00:35:22 +0100 | [diff] [blame] | 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. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | 
| Jesper Juhl | b3c29d8 | 2006-01-10 00:35:22 +0100 | [diff] [blame] | 21 | 	  will connect to EHCI if the device is high speed, otherwise they | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  | 
 | 32 | config 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 |  | 
 | 41 | config 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 |  | 
| Dan Streetman | ba47f66 | 2006-05-24 09:39:16 -0700 | [diff] [blame] | 50 | 	  This supports the EHCI implementation that's originally | 
 | 51 | 	  from ARC, and has since changed hands a few times. | 
 | 52 |  | 
 | 53 | config 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. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 69 |  | 
| Benjamin Herrenschmidt | 083522d | 2006-12-15 06:54:08 +1100 | [diff] [blame] | 70 | config USB_EHCI_BIG_ENDIAN_MMIO | 
 | 71 | 	bool | 
| Stefan Roese | 4d68c0b | 2007-05-04 11:39:37 -0700 | [diff] [blame] | 72 | 	depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX) | 
 | 73 | 	default y | 
| Benjamin Herrenschmidt | 083522d | 2006-12-15 06:54:08 +1100 | [diff] [blame] | 74 |  | 
| Stefan Roese | 6dbd682 | 2007-05-01 09:29:37 -0700 | [diff] [blame] | 75 | config USB_EHCI_BIG_ENDIAN_DESC | 
 | 76 | 	bool | 
| Stefan Roese | 4d68c0b | 2007-05-04 11:39:37 -0700 | [diff] [blame] | 77 | 	depends on USB_EHCI_HCD && 440EPX | 
 | 78 | 	default y | 
| Stefan Roese | 6dbd682 | 2007-05-01 09:29:37 -0700 | [diff] [blame] | 79 |  | 
| Li Yang | ba02978 | 2007-05-11 17:09:55 +0800 | [diff] [blame] | 80 | config USB_EHCI_FSL | 
 | 81 | 	bool | 
 | 82 | 	select USB_EHCI_ROOT_HUB_TT | 
 | 83 | 	default y if MPC834x || PPC_MPC831x | 
 | 84 | 	---help--- | 
 | 85 | 	  Variation of ARC USB block used in some Freescale chips. | 
 | 86 |  | 
| Olav Kongas | 4808a1c | 2005-04-09 22:57:39 +0300 | [diff] [blame] | 87 | config USB_ISP116X_HCD | 
 | 88 | 	tristate "ISP116X HCD support" | 
 | 89 | 	depends on USB | 
| Olav Kongas | 4808a1c | 2005-04-09 22:57:39 +0300 | [diff] [blame] | 90 | 	---help--- | 
 | 91 | 	  The ISP1160 and ISP1161 chips are USB host controllers. Enable this | 
 | 92 | 	  option if your board has this chip. If unsure, say N. | 
 | 93 |  | 
 | 94 | 	  This driver does not support isochronous transfers. | 
 | 95 |  | 
 | 96 | 	  To compile this driver as a module, choose M here: the | 
 | 97 | 	  module will be called isp116x-hcd. | 
 | 98 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 99 | config USB_OHCI_HCD | 
 | 100 | 	tristate "OHCI HCD support" | 
 | 101 | 	depends on USB && USB_ARCH_HAS_OHCI | 
 | 102 | 	select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 | 
| Vitaly Wool | 60bbfc8 | 2006-06-29 18:28:18 +0400 | [diff] [blame] | 103 | 	select I2C if ARCH_PNX4008 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 104 | 	---help--- | 
 | 105 | 	  The Open Host Controller Interface (OHCI) is a standard for accessing | 
 | 106 | 	  USB 1.1 host controller hardware.  It does more in hardware than Intel's | 
 | 107 | 	  UHCI specification.  If your USB host controller follows the OHCI spec, | 
 | 108 | 	  say Y.  On most non-x86 systems, and on x86 hardware that's not using a | 
 | 109 | 	  USB controller from Intel or VIA, this is appropriate.  If your host | 
 | 110 | 	  controller doesn't use PCI, this is probably appropriate.  For a PCI | 
 | 111 | 	  based system where you're not sure, the "lspci -v" entry will list the | 
 | 112 | 	  right "prog-if" for your USB controller(s):  EHCI, OHCI, or UHCI. | 
 | 113 |  | 
 | 114 | 	  To compile this driver as a module, choose M here: the | 
 | 115 | 	  module will be called ohci-hcd. | 
 | 116 |  | 
 | 117 | config USB_OHCI_HCD_PPC_SOC | 
 | 118 | 	bool "OHCI support for on-chip PPC USB controller" | 
 | 119 | 	depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx) | 
 | 120 | 	default y | 
| Benjamin Herrenschmidt | 11d1a4a | 2006-12-15 06:54:03 +1100 | [diff] [blame] | 121 | 	select USB_OHCI_BIG_ENDIAN_DESC | 
 | 122 | 	select USB_OHCI_BIG_ENDIAN_MMIO | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 123 | 	---help--- | 
 | 124 | 	  Enables support for the USB controller on the MPC52xx or | 
 | 125 | 	  STB03xxx processor chip.  If unsure, say Y. | 
 | 126 |  | 
| Sylvain Munaut | 495a678 | 2006-12-13 21:09:55 +0100 | [diff] [blame] | 127 | config USB_OHCI_HCD_PPC_OF | 
 | 128 | 	bool "OHCI support for PPC USB controller on OF platform bus" | 
 | 129 | 	depends on USB_OHCI_HCD && PPC_OF | 
 | 130 | 	default y | 
 | 131 | 	---help--- | 
 | 132 | 	  Enables support for the USB controller PowerPC present on the | 
 | 133 | 	  OpenFirmware platform bus. | 
 | 134 |  | 
 | 135 | config USB_OHCI_HCD_PPC_OF_BE | 
 | 136 | 	bool "Support big endian HC" | 
 | 137 | 	depends on USB_OHCI_HCD_PPC_OF | 
 | 138 | 	default y | 
 | 139 | 	select USB_OHCI_BIG_ENDIAN_DESC | 
 | 140 | 	select USB_OHCI_BIG_ENDIAN_MMIO | 
 | 141 |  | 
 | 142 | config USB_OHCI_HCD_PPC_OF_LE | 
 | 143 | 	bool "Support little endian HC" | 
 | 144 | 	depends on USB_OHCI_HCD_PPC_OF | 
 | 145 | 	default n | 
 | 146 | 	select USB_OHCI_LITTLE_ENDIAN | 
 | 147 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 148 | config USB_OHCI_HCD_PCI | 
 | 149 | 	bool "OHCI support for PCI-bus USB controllers" | 
| Sylvain Munaut | 495a678 | 2006-12-13 21:09:55 +0100 | [diff] [blame] | 150 | 	depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 151 | 	default y | 
 | 152 | 	select USB_OHCI_LITTLE_ENDIAN | 
 | 153 | 	---help--- | 
 | 154 | 	  Enables support for PCI-bus plug-in USB controller cards. | 
 | 155 | 	  If unsure, say Y. | 
 | 156 |  | 
| Benjamin Herrenschmidt | 11d1a4a | 2006-12-15 06:54:03 +1100 | [diff] [blame] | 157 | config USB_OHCI_BIG_ENDIAN_DESC | 
 | 158 | 	bool | 
 | 159 | 	depends on USB_OHCI_HCD | 
 | 160 | 	default n | 
 | 161 |  | 
 | 162 | config USB_OHCI_BIG_ENDIAN_MMIO | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 163 | 	bool | 
 | 164 | 	depends on USB_OHCI_HCD | 
 | 165 | 	default n | 
 | 166 |  | 
 | 167 | config USB_OHCI_LITTLE_ENDIAN | 
 | 168 | 	bool | 
 | 169 | 	depends on USB_OHCI_HCD | 
 | 170 | 	default n if STB03xxx || PPC_MPC52xx | 
 | 171 | 	default y | 
 | 172 |  | 
 | 173 | config USB_UHCI_HCD | 
 | 174 | 	tristate "UHCI HCD (most Intel and VIA) support" | 
 | 175 | 	depends on USB && PCI | 
 | 176 | 	---help--- | 
 | 177 | 	  The Universal Host Controller Interface is a standard by Intel for | 
 | 178 | 	  accessing the USB hardware in the PC (which is also called the USB | 
 | 179 | 	  host controller). If your USB host controller conforms to this | 
 | 180 | 	  standard, you may want to say Y, but see below. All recent boards | 
 | 181 | 	  with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX, | 
 | 182 | 	  i810, i820) conform to this standard. Also all VIA PCI chipsets | 
 | 183 | 	  (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro | 
 | 184 | 	  133). If unsure, say Y. | 
 | 185 |  | 
 | 186 | 	  To compile this driver as a module, choose M here: the | 
 | 187 | 	  module will be called uhci-hcd. | 
 | 188 |  | 
| Tony Olech | d774efe | 2006-09-13 11:27:35 +0100 | [diff] [blame] | 189 | config USB_U132_HCD | 
 | 190 | 	tristate "Elan U132 Adapter Host Controller" | 
 | 191 | 	depends on USB && USB_FTDI_ELAN | 
 | 192 | 	default M | 
 | 193 | 	help | 
 | 194 | 	  The U132 adapter is a USB to CardBus adapter specifically designed | 
 | 195 | 	  for PC cards that contain an OHCI host controller. Typical PC cards | 
 | 196 | 	  are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132 | 
 | 197 | 	  adapter will *NOT* work with PC cards that do not contain an OHCI | 
 | 198 | 	  controller. | 
 | 199 |  | 
| Matt LaPlante | 3cb2fcc | 2006-11-30 05:22:59 +0100 | [diff] [blame] | 200 | 	  For those PC cards that contain multiple OHCI controllers only the | 
| Tony Olech | d774efe | 2006-09-13 11:27:35 +0100 | [diff] [blame] | 201 | 	  first one is used. | 
 | 202 |  | 
 | 203 | 	  The driver consists of two modules, the "ftdi-elan" module is a | 
 | 204 | 	  USB client driver that interfaces to the FTDI chip within ELAN's | 
 | 205 | 	  USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host | 
 | 206 | 	  controller driver that talks to the OHCI controller within the | 
 | 207 | 	  CardBus cards that are inserted in the U132 adapter. | 
 | 208 |  | 
 | 209 | 	  This driver has been tested with a CardBus OHCI USB adapter, and | 
 | 210 | 	  worked with a USB PEN Drive inserted into the first USB port of | 
 | 211 | 	  the PCCARD. A rather pointless thing to do, but useful for testing. | 
 | 212 |  | 
 | 213 | 	  It is safe to say M here. | 
 | 214 |  | 
 | 215 | 	  See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php> | 
 | 216 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 217 | config USB_SL811_HCD | 
 | 218 | 	tristate "SL811HS HCD support" | 
 | 219 | 	depends on USB | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 220 | 	help | 
 | 221 | 	  The SL811HS is a single-port USB controller that supports either | 
 | 222 | 	  host side or peripheral side roles.  Enable this option if your | 
 | 223 | 	  board has this chip, and you want to use it as a host controller.  | 
 | 224 | 	  If unsure, say N. | 
 | 225 |  | 
 | 226 | 	  To compile this driver as a module, choose M here: the | 
 | 227 | 	  module will be called sl811-hcd. | 
 | 228 |  | 
| David Brownell | c6de2b6 | 2005-05-26 05:55:55 -0700 | [diff] [blame] | 229 | config USB_SL811_CS | 
 | 230 | 	tristate "CF/PCMCIA support for SL811HS HCD" | 
 | 231 | 	depends on USB_SL811_HCD && PCMCIA | 
| David Brownell | c6de2b6 | 2005-05-26 05:55:55 -0700 | [diff] [blame] | 232 | 	help | 
 | 233 | 	  Wraps a PCMCIA driver around the SL811HS HCD, supporting the RATOC | 
 | 234 | 	  REX-CFU1U CF card (often used with PDAs).  If unsure, say N. | 
 | 235 |  | 
 | 236 | 	  To compile this driver as a module, choose M here: the | 
 | 237 | 	  module will be called "sl811_cs". | 
 | 238 |  | 
| Yoshihiro Shimoda | 5d30435 | 2007-05-10 13:18:19 +0900 | [diff] [blame] | 239 | config USB_R8A66597_HCD | 
 | 240 | 	tristate "R8A66597 HCD suppoort" | 
 | 241 | 	depends on USB | 
 | 242 | 	help | 
 | 243 | 	  The R8A66597 is a USB 2.0 host and peripheral controller. | 
 | 244 |  | 
 | 245 | 	  Enable this option if your board has this chip, and you want | 
 | 246 | 	  to use it as a host controller.  If unsure, say N. | 
 | 247 |  | 
 | 248 | 	  To compile this driver as a module, choose M here: the | 
 | 249 | 	  module will be called r8a66597-hcd. | 
 | 250 |  |