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