190fccb52SAndrzej Pietrasiewicz# 290fccb52SAndrzej Pietrasiewicz# USB Gadget support on a system involves 390fccb52SAndrzej Pietrasiewicz# (a) a peripheral controller, and 490fccb52SAndrzej Pietrasiewicz# (b) the gadget driver using it. 590fccb52SAndrzej Pietrasiewicz# 690fccb52SAndrzej Pietrasiewicz# NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 790fccb52SAndrzej Pietrasiewicz# 890fccb52SAndrzej Pietrasiewicz# - Host systems (like PCs) need CONFIG_USB (with "A" jacks). 990fccb52SAndrzej Pietrasiewicz# - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks). 1090fccb52SAndrzej Pietrasiewicz# - Some systems have both kinds of controllers. 1190fccb52SAndrzej Pietrasiewicz# 1290fccb52SAndrzej Pietrasiewicz# With help from a special transceiver and a "Mini-AB" jack, systems with 1390fccb52SAndrzej Pietrasiewicz# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). 1490fccb52SAndrzej Pietrasiewicz# 1590fccb52SAndrzej Pietrasiewicz 1690fccb52SAndrzej Pietrasiewicz# 1790fccb52SAndrzej Pietrasiewicz# USB Peripheral Controller Support 1890fccb52SAndrzej Pietrasiewicz# 1990fccb52SAndrzej Pietrasiewicz# The order here is alphabetical, except that integrated controllers go 2090fccb52SAndrzej Pietrasiewicz# before discrete ones so they will be the initial/default value: 2190fccb52SAndrzej Pietrasiewicz# - integrated/SOC controllers first 2290fccb52SAndrzej Pietrasiewicz# - licensed IP used in both SOC and discrete versions 2390fccb52SAndrzej Pietrasiewicz# - discrete ones (including all PCI-only controllers) 2490fccb52SAndrzej Pietrasiewicz# - debug/dummy gadget+hcd is last. 2590fccb52SAndrzej Pietrasiewicz# 2690fccb52SAndrzej Pietrasiewiczmenu "USB Peripheral Controller" 2790fccb52SAndrzej Pietrasiewicz 2890fccb52SAndrzej Pietrasiewicz# 2990fccb52SAndrzej Pietrasiewicz# Integrated controllers 3090fccb52SAndrzej Pietrasiewicz# 3190fccb52SAndrzej Pietrasiewicz 3290fccb52SAndrzej Pietrasiewiczconfig USB_AT91 3390fccb52SAndrzej Pietrasiewicz tristate "Atmel AT91 USB Device Port" 3490fccb52SAndrzej Pietrasiewicz depends on ARCH_AT91 3590fccb52SAndrzej Pietrasiewicz help 3690fccb52SAndrzej Pietrasiewicz Many Atmel AT91 processors (such as the AT91RM2000) have a 3790fccb52SAndrzej Pietrasiewicz full speed USB Device Port with support for five configurable 3890fccb52SAndrzej Pietrasiewicz endpoints (plus endpoint zero). 3990fccb52SAndrzej Pietrasiewicz 4090fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 4190fccb52SAndrzej Pietrasiewicz dynamically linked module called "at91_udc" and force all 4290fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 4390fccb52SAndrzej Pietrasiewicz 4490fccb52SAndrzej Pietrasiewiczconfig USB_LPC32XX 4590fccb52SAndrzej Pietrasiewicz tristate "LPC32XX USB Peripheral Controller" 4690fccb52SAndrzej Pietrasiewicz depends on ARCH_LPC32XX && I2C 4790fccb52SAndrzej Pietrasiewicz select USB_ISP1301 4890fccb52SAndrzej Pietrasiewicz help 4990fccb52SAndrzej Pietrasiewicz This option selects the USB device controller in the LPC32xx SoC. 5090fccb52SAndrzej Pietrasiewicz 5190fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 5290fccb52SAndrzej Pietrasiewicz dynamically linked module called "lpc32xx_udc" and force all 5390fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 5490fccb52SAndrzej Pietrasiewicz 5590fccb52SAndrzej Pietrasiewiczconfig USB_ATMEL_USBA 5690fccb52SAndrzej Pietrasiewicz tristate "Atmel USBA" 5790fccb52SAndrzej Pietrasiewicz depends on AVR32 || ARCH_AT91 5890fccb52SAndrzej Pietrasiewicz help 5990fccb52SAndrzej Pietrasiewicz USBA is the integrated high-speed USB Device controller on 6090fccb52SAndrzej Pietrasiewicz the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel. 6190fccb52SAndrzej Pietrasiewicz 6290fccb52SAndrzej Pietrasiewiczconfig USB_BCM63XX_UDC 6390fccb52SAndrzej Pietrasiewicz tristate "Broadcom BCM63xx Peripheral Controller" 6490fccb52SAndrzej Pietrasiewicz depends on BCM63XX 6590fccb52SAndrzej Pietrasiewicz help 6690fccb52SAndrzej Pietrasiewicz Many Broadcom BCM63xx chipsets (such as the BCM6328) have a 6790fccb52SAndrzej Pietrasiewicz high speed USB Device Port with support for four fixed endpoints 6890fccb52SAndrzej Pietrasiewicz (plus endpoint zero). 6990fccb52SAndrzej Pietrasiewicz 7090fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 7190fccb52SAndrzej Pietrasiewicz dynamically linked module called "bcm63xx_udc". 7290fccb52SAndrzej Pietrasiewicz 7390fccb52SAndrzej Pietrasiewiczconfig USB_FSL_USB2 7490fccb52SAndrzej Pietrasiewicz tristate "Freescale Highspeed USB DR Peripheral Controller" 7590fccb52SAndrzej Pietrasiewicz depends on FSL_SOC || ARCH_MXC 7690fccb52SAndrzej Pietrasiewicz select USB_FSL_MPH_DR_OF if OF 7790fccb52SAndrzej Pietrasiewicz help 7890fccb52SAndrzej Pietrasiewicz Some of Freescale PowerPC and i.MX processors have a High Speed 7990fccb52SAndrzej Pietrasiewicz Dual-Role(DR) USB controller, which supports device mode. 8090fccb52SAndrzej Pietrasiewicz 8190fccb52SAndrzej Pietrasiewicz The number of programmable endpoints is different through 8290fccb52SAndrzej Pietrasiewicz SOC revisions. 8390fccb52SAndrzej Pietrasiewicz 8490fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 8590fccb52SAndrzej Pietrasiewicz dynamically linked module called "fsl_usb2_udc" and force 8690fccb52SAndrzej Pietrasiewicz all gadget drivers to also be dynamically linked. 8790fccb52SAndrzej Pietrasiewicz 8890fccb52SAndrzej Pietrasiewiczconfig USB_FUSB300 8990fccb52SAndrzej Pietrasiewicz tristate "Faraday FUSB300 USB Peripheral Controller" 9090fccb52SAndrzej Pietrasiewicz depends on !PHYS_ADDR_T_64BIT && HAS_DMA 9190fccb52SAndrzej Pietrasiewicz help 9290fccb52SAndrzej Pietrasiewicz Faraday usb device controller FUSB300 driver 9390fccb52SAndrzej Pietrasiewicz 9490fccb52SAndrzej Pietrasiewiczconfig USB_FOTG210_UDC 9590fccb52SAndrzej Pietrasiewicz depends on HAS_DMA 9690fccb52SAndrzej Pietrasiewicz tristate "Faraday FOTG210 USB Peripheral Controller" 9790fccb52SAndrzej Pietrasiewicz help 9890fccb52SAndrzej Pietrasiewicz Faraday USB2.0 OTG controller which can be configured as 9990fccb52SAndrzej Pietrasiewicz high speed or full speed USB device. This driver supppors 10090fccb52SAndrzej Pietrasiewicz Bulk Transfer so far. 10190fccb52SAndrzej Pietrasiewicz 10290fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 10390fccb52SAndrzej Pietrasiewicz dynamically linked module called "fotg210_udc". 10490fccb52SAndrzej Pietrasiewicz 10590fccb52SAndrzej Pietrasiewiczconfig USB_GR_UDC 10690fccb52SAndrzej Pietrasiewicz tristate "Aeroflex Gaisler GRUSBDC USB Peripheral Controller Driver" 10790fccb52SAndrzej Pietrasiewicz depends on HAS_DMA 10890fccb52SAndrzej Pietrasiewicz help 10990fccb52SAndrzej Pietrasiewicz Select this to support Aeroflex Gaisler GRUSBDC cores from the GRLIB 11090fccb52SAndrzej Pietrasiewicz VHDL IP core library. 11190fccb52SAndrzej Pietrasiewicz 11290fccb52SAndrzej Pietrasiewiczconfig USB_OMAP 11390fccb52SAndrzej Pietrasiewicz tristate "OMAP USB Device Controller" 11490fccb52SAndrzej Pietrasiewicz depends on ARCH_OMAP1 11590fccb52SAndrzej Pietrasiewicz depends on ISP1301_OMAP || !(MACH_OMAP_H2 || MACH_OMAP_H3) 11690fccb52SAndrzej Pietrasiewicz help 11790fccb52SAndrzej Pietrasiewicz Many Texas Instruments OMAP processors have flexible full 11890fccb52SAndrzej Pietrasiewicz speed USB device controllers, with support for up to 30 11990fccb52SAndrzej Pietrasiewicz endpoints (plus endpoint zero). This driver supports the 12090fccb52SAndrzej Pietrasiewicz controller in the OMAP 1611, and should work with controllers 12190fccb52SAndrzej Pietrasiewicz in other OMAP processors too, given minor tweaks. 12290fccb52SAndrzej Pietrasiewicz 12390fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 12490fccb52SAndrzej Pietrasiewicz dynamically linked module called "omap_udc" and force all 12590fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 12690fccb52SAndrzej Pietrasiewicz 12790fccb52SAndrzej Pietrasiewiczconfig USB_PXA25X 12890fccb52SAndrzej Pietrasiewicz tristate "PXA 25x or IXP 4xx" 12990fccb52SAndrzej Pietrasiewicz depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX 13090fccb52SAndrzej Pietrasiewicz help 13190fccb52SAndrzej Pietrasiewicz Intel's PXA 25x series XScale ARM-5TE processors include 13290fccb52SAndrzej Pietrasiewicz an integrated full speed USB 1.1 device controller. The 13390fccb52SAndrzej Pietrasiewicz controller in the IXP 4xx series is register-compatible. 13490fccb52SAndrzej Pietrasiewicz 13590fccb52SAndrzej Pietrasiewicz It has fifteen fixed-function endpoints, as well as endpoint 13690fccb52SAndrzej Pietrasiewicz zero (for control transfers). 13790fccb52SAndrzej Pietrasiewicz 13890fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 13990fccb52SAndrzej Pietrasiewicz dynamically linked module called "pxa25x_udc" and force all 14090fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 14190fccb52SAndrzej Pietrasiewicz 14290fccb52SAndrzej Pietrasiewicz# if there's only one gadget driver, using only two bulk endpoints, 14390fccb52SAndrzej Pietrasiewicz# don't waste memory for the other endpoints 14490fccb52SAndrzej Pietrasiewiczconfig USB_PXA25X_SMALL 14590fccb52SAndrzej Pietrasiewicz depends on USB_PXA25X 14690fccb52SAndrzej Pietrasiewicz bool 14790fccb52SAndrzej Pietrasiewicz default n if USB_ETH_RNDIS 14890fccb52SAndrzej Pietrasiewicz default y if USB_ZERO 14990fccb52SAndrzej Pietrasiewicz default y if USB_ETH 15090fccb52SAndrzej Pietrasiewicz default y if USB_G_SERIAL 15190fccb52SAndrzej Pietrasiewicz 15290fccb52SAndrzej Pietrasiewiczconfig USB_R8A66597 15390fccb52SAndrzej Pietrasiewicz tristate "Renesas R8A66597 USB Peripheral Controller" 15490fccb52SAndrzej Pietrasiewicz depends on HAS_DMA 15590fccb52SAndrzej Pietrasiewicz help 15690fccb52SAndrzej Pietrasiewicz R8A66597 is a discrete USB host and peripheral controller chip that 15790fccb52SAndrzej Pietrasiewicz supports both full and high speed USB 2.0 data transfers. 15890fccb52SAndrzej Pietrasiewicz It has nine configurable endpoints, and endpoint zero. 15990fccb52SAndrzej Pietrasiewicz 16090fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 16190fccb52SAndrzej Pietrasiewicz dynamically linked module called "r8a66597_udc" and force all 16290fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 16390fccb52SAndrzej Pietrasiewicz 16490fccb52SAndrzej Pietrasiewiczconfig USB_RENESAS_USBHS_UDC 16590fccb52SAndrzej Pietrasiewicz tristate 'Renesas USBHS controller' 166fa9a582dSGeert Uytterhoeven depends on USB_RENESAS_USBHS && HAS_DMA 16790fccb52SAndrzej Pietrasiewicz help 16890fccb52SAndrzej Pietrasiewicz Renesas USBHS is a discrete USB host and peripheral controller chip 16990fccb52SAndrzej Pietrasiewicz that supports both full and high speed USB 2.0 data transfers. 17090fccb52SAndrzej Pietrasiewicz It has nine or more configurable endpoints, and endpoint zero. 17190fccb52SAndrzej Pietrasiewicz 17290fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 17390fccb52SAndrzej Pietrasiewicz dynamically linked module called "renesas_usbhs" and force all 17490fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 17590fccb52SAndrzej Pietrasiewicz 17690fccb52SAndrzej Pietrasiewiczconfig USB_PXA27X 17790fccb52SAndrzej Pietrasiewicz tristate "PXA 27x" 17890fccb52SAndrzej Pietrasiewicz help 17990fccb52SAndrzej Pietrasiewicz Intel's PXA 27x series XScale ARM v5TE processors include 18090fccb52SAndrzej Pietrasiewicz an integrated full speed USB 1.1 device controller. 18190fccb52SAndrzej Pietrasiewicz 18290fccb52SAndrzej Pietrasiewicz It has up to 23 endpoints, as well as endpoint zero (for 18390fccb52SAndrzej Pietrasiewicz control transfers). 18490fccb52SAndrzej Pietrasiewicz 18590fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 18690fccb52SAndrzej Pietrasiewicz dynamically linked module called "pxa27x_udc" and force all 18790fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 18890fccb52SAndrzej Pietrasiewicz 18990fccb52SAndrzej Pietrasiewiczconfig USB_S3C2410 19090fccb52SAndrzej Pietrasiewicz tristate "S3C2410 USB Device Controller" 19190fccb52SAndrzej Pietrasiewicz depends on ARCH_S3C24XX 19290fccb52SAndrzej Pietrasiewicz help 19390fccb52SAndrzej Pietrasiewicz Samsung's S3C2410 is an ARM-4 processor with an integrated 19490fccb52SAndrzej Pietrasiewicz full speed USB 1.1 device controller. It has 4 configurable 19590fccb52SAndrzej Pietrasiewicz endpoints, as well as endpoint zero (for control transfers). 19690fccb52SAndrzej Pietrasiewicz 19790fccb52SAndrzej Pietrasiewicz This driver has been tested on the S3C2410, S3C2412, and 19890fccb52SAndrzej Pietrasiewicz S3C2440 processors. 19990fccb52SAndrzej Pietrasiewicz 20090fccb52SAndrzej Pietrasiewiczconfig USB_S3C2410_DEBUG 20190fccb52SAndrzej Pietrasiewicz boolean "S3C2410 udc debug messages" 20290fccb52SAndrzej Pietrasiewicz depends on USB_S3C2410 20390fccb52SAndrzej Pietrasiewicz 20490fccb52SAndrzej Pietrasiewiczconfig USB_S3C_HSUDC 20590fccb52SAndrzej Pietrasiewicz tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller" 20690fccb52SAndrzej Pietrasiewicz depends on ARCH_S3C24XX 20790fccb52SAndrzej Pietrasiewicz help 20890fccb52SAndrzej Pietrasiewicz Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC 20990fccb52SAndrzej Pietrasiewicz integrated with dual speed USB 2.0 device controller. It has 21090fccb52SAndrzej Pietrasiewicz 8 endpoints, as well as endpoint zero. 21190fccb52SAndrzej Pietrasiewicz 21290fccb52SAndrzej Pietrasiewicz This driver has been tested on S3C2416 and S3C2450 processors. 21390fccb52SAndrzej Pietrasiewicz 21490fccb52SAndrzej Pietrasiewiczconfig USB_MV_UDC 21590fccb52SAndrzej Pietrasiewicz tristate "Marvell USB2.0 Device Controller" 21690fccb52SAndrzej Pietrasiewicz depends on HAS_DMA 21790fccb52SAndrzej Pietrasiewicz help 21890fccb52SAndrzej Pietrasiewicz Marvell Socs (including PXA and MMP series) include a high speed 21990fccb52SAndrzej Pietrasiewicz USB2.0 OTG controller, which can be configured as high speed or 22090fccb52SAndrzej Pietrasiewicz full speed USB peripheral. 22190fccb52SAndrzej Pietrasiewicz 22290fccb52SAndrzej Pietrasiewiczconfig USB_MV_U3D 22390fccb52SAndrzej Pietrasiewicz depends on HAS_DMA 22490fccb52SAndrzej Pietrasiewicz tristate "MARVELL PXA2128 USB 3.0 controller" 22590fccb52SAndrzej Pietrasiewicz help 22690fccb52SAndrzej Pietrasiewicz MARVELL PXA2128 Processor series include a super speed USB3.0 device 22790fccb52SAndrzej Pietrasiewicz controller, which support super speed USB peripheral. 22890fccb52SAndrzej Pietrasiewicz 22990fccb52SAndrzej Pietrasiewicz# 23090fccb52SAndrzej Pietrasiewicz# Controllers available in both integrated and discrete versions 23190fccb52SAndrzej Pietrasiewicz# 23290fccb52SAndrzej Pietrasiewicz 23390fccb52SAndrzej Pietrasiewiczconfig USB_M66592 23490fccb52SAndrzej Pietrasiewicz tristate "Renesas M66592 USB Peripheral Controller" 23590fccb52SAndrzej Pietrasiewicz help 23690fccb52SAndrzej Pietrasiewicz M66592 is a discrete USB peripheral controller chip that 23790fccb52SAndrzej Pietrasiewicz supports both full and high speed USB 2.0 data transfers. 23890fccb52SAndrzej Pietrasiewicz It has seven configurable endpoints, and endpoint zero. 23990fccb52SAndrzej Pietrasiewicz 24090fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 24190fccb52SAndrzej Pietrasiewicz dynamically linked module called "m66592_udc" and force all 24290fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 24390fccb52SAndrzej Pietrasiewicz 244*efed421aSAshwini Pahujasource "drivers/usb/gadget/udc/bdc/Kconfig" 245*efed421aSAshwini Pahuja 24690fccb52SAndrzej Pietrasiewicz# 24790fccb52SAndrzej Pietrasiewicz# Controllers available only in discrete form (and all PCI controllers) 24890fccb52SAndrzej Pietrasiewicz# 24990fccb52SAndrzej Pietrasiewicz 25090fccb52SAndrzej Pietrasiewiczconfig USB_AMD5536UDC 25190fccb52SAndrzej Pietrasiewicz tristate "AMD5536 UDC" 25290fccb52SAndrzej Pietrasiewicz depends on PCI 25390fccb52SAndrzej Pietrasiewicz help 25490fccb52SAndrzej Pietrasiewicz The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge. 25590fccb52SAndrzej Pietrasiewicz It is a USB Highspeed DMA capable USB device controller. Beside ep0 25690fccb52SAndrzej Pietrasiewicz it provides 4 IN and 4 OUT endpoints (bulk or interrupt type). 25790fccb52SAndrzej Pietrasiewicz The UDC port supports OTG operation, and may be used as a host port 25890fccb52SAndrzej Pietrasiewicz if it's not being used to implement peripheral or OTG roles. 25990fccb52SAndrzej Pietrasiewicz 26090fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 26190fccb52SAndrzej Pietrasiewicz dynamically linked module called "amd5536udc" and force all 26290fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 26390fccb52SAndrzej Pietrasiewicz 26490fccb52SAndrzej Pietrasiewiczconfig USB_FSL_QE 26590fccb52SAndrzej Pietrasiewicz tristate "Freescale QE/CPM USB Device Controller" 26690fccb52SAndrzej Pietrasiewicz depends on FSL_SOC && (QUICC_ENGINE || CPM) 26790fccb52SAndrzej Pietrasiewicz help 26890fccb52SAndrzej Pietrasiewicz Some of Freescale PowerPC processors have a Full Speed 26990fccb52SAndrzej Pietrasiewicz QE/CPM2 USB controller, which support device mode with 4 27090fccb52SAndrzej Pietrasiewicz programmable endpoints. This driver supports the 27190fccb52SAndrzej Pietrasiewicz controller in the MPC8360 and MPC8272, and should work with 27290fccb52SAndrzej Pietrasiewicz controllers having QE or CPM2, given minor tweaks. 27390fccb52SAndrzej Pietrasiewicz 27490fccb52SAndrzej Pietrasiewicz Set CONFIG_USB_GADGET to "m" to build this driver as a 27590fccb52SAndrzej Pietrasiewicz dynamically linked module called "fsl_qe_udc". 27690fccb52SAndrzej Pietrasiewicz 27790fccb52SAndrzej Pietrasiewiczconfig USB_NET2272 27890fccb52SAndrzej Pietrasiewicz tristate "PLX NET2272" 27990fccb52SAndrzej Pietrasiewicz help 28090fccb52SAndrzej Pietrasiewicz PLX NET2272 is a USB peripheral controller which supports 28190fccb52SAndrzej Pietrasiewicz both full and high speed USB 2.0 data transfers. 28290fccb52SAndrzej Pietrasiewicz 28390fccb52SAndrzej Pietrasiewicz It has three configurable endpoints, as well as endpoint zero 28490fccb52SAndrzej Pietrasiewicz (for control transfer). 28590fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 28690fccb52SAndrzej Pietrasiewicz dynamically linked module called "net2272" and force all 28790fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 28890fccb52SAndrzej Pietrasiewicz 28990fccb52SAndrzej Pietrasiewiczconfig USB_NET2272_DMA 29090fccb52SAndrzej Pietrasiewicz boolean "Support external DMA controller" 29190fccb52SAndrzej Pietrasiewicz depends on USB_NET2272 && HAS_DMA 29290fccb52SAndrzej Pietrasiewicz help 29390fccb52SAndrzej Pietrasiewicz The NET2272 part can optionally support an external DMA 29490fccb52SAndrzej Pietrasiewicz controller, but your board has to have support in the 29590fccb52SAndrzej Pietrasiewicz driver itself. 29690fccb52SAndrzej Pietrasiewicz 29790fccb52SAndrzej Pietrasiewicz If unsure, say "N" here. The driver works fine in PIO mode. 29890fccb52SAndrzej Pietrasiewicz 29990fccb52SAndrzej Pietrasiewiczconfig USB_NET2280 30090fccb52SAndrzej Pietrasiewicz tristate "NetChip 228x / PLX USB338x" 30190fccb52SAndrzej Pietrasiewicz depends on PCI 30290fccb52SAndrzej Pietrasiewicz help 30390fccb52SAndrzej Pietrasiewicz NetChip 2280 / 2282 is a PCI based USB peripheral controller which 30490fccb52SAndrzej Pietrasiewicz supports both full and high speed USB 2.0 data transfers. 30590fccb52SAndrzej Pietrasiewicz 30690fccb52SAndrzej Pietrasiewicz It has six configurable endpoints, as well as endpoint zero 30790fccb52SAndrzej Pietrasiewicz (for control transfers) and several endpoints with dedicated 30890fccb52SAndrzej Pietrasiewicz functions. 30990fccb52SAndrzej Pietrasiewicz 31090fccb52SAndrzej Pietrasiewicz PLX 3380 / 3382 is a PCIe based USB peripheral controller which 31190fccb52SAndrzej Pietrasiewicz supports full, high speed USB 2.0 and super speed USB 3.0 31290fccb52SAndrzej Pietrasiewicz data transfers. 31390fccb52SAndrzej Pietrasiewicz 31490fccb52SAndrzej Pietrasiewicz It has eight configurable endpoints, as well as endpoint zero 31590fccb52SAndrzej Pietrasiewicz (for control transfers) and several endpoints with dedicated 31690fccb52SAndrzej Pietrasiewicz functions. 31790fccb52SAndrzej Pietrasiewicz 31890fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 31990fccb52SAndrzej Pietrasiewicz dynamically linked module called "net2280" and force all 32090fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 32190fccb52SAndrzej Pietrasiewicz 32290fccb52SAndrzej Pietrasiewiczconfig USB_GOKU 32390fccb52SAndrzej Pietrasiewicz tristate "Toshiba TC86C001 'Goku-S'" 32490fccb52SAndrzej Pietrasiewicz depends on PCI 32590fccb52SAndrzej Pietrasiewicz help 32690fccb52SAndrzej Pietrasiewicz The Toshiba TC86C001 is a PCI device which includes controllers 32790fccb52SAndrzej Pietrasiewicz for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI). 32890fccb52SAndrzej Pietrasiewicz 32990fccb52SAndrzej Pietrasiewicz The device controller has three configurable (bulk or interrupt) 33090fccb52SAndrzej Pietrasiewicz endpoints, plus endpoint zero (for control transfers). 33190fccb52SAndrzej Pietrasiewicz 33290fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 33390fccb52SAndrzej Pietrasiewicz dynamically linked module called "goku_udc" and to force all 33490fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 33590fccb52SAndrzej Pietrasiewicz 33690fccb52SAndrzej Pietrasiewiczconfig USB_EG20T 337a68df706SBryan O'Donoghue tristate "Intel QUARK X1000/EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC" 33890fccb52SAndrzej Pietrasiewicz depends on PCI 33990fccb52SAndrzej Pietrasiewicz help 34090fccb52SAndrzej Pietrasiewicz This is a USB device driver for EG20T PCH. 34190fccb52SAndrzej Pietrasiewicz EG20T PCH is the platform controller hub that is used in Intel's 34290fccb52SAndrzej Pietrasiewicz general embedded platform. EG20T PCH has USB device interface. 34390fccb52SAndrzej Pietrasiewicz Using this interface, it is able to access system devices connected 34490fccb52SAndrzej Pietrasiewicz to USB device. 34590fccb52SAndrzej Pietrasiewicz This driver enables USB device function. 34690fccb52SAndrzej Pietrasiewicz USB device is a USB peripheral controller which 34790fccb52SAndrzej Pietrasiewicz supports both full and high speed USB 2.0 data transfers. 34890fccb52SAndrzej Pietrasiewicz This driver supports both control transfer and bulk transfer modes. 34990fccb52SAndrzej Pietrasiewicz This driver dose not support interrupt transfer or isochronous 35090fccb52SAndrzej Pietrasiewicz transfer modes. 35190fccb52SAndrzej Pietrasiewicz 35290fccb52SAndrzej Pietrasiewicz This driver also can be used for LAPIS Semiconductor's ML7213 which is 35390fccb52SAndrzej Pietrasiewicz for IVI(In-Vehicle Infotainment) use. 35490fccb52SAndrzej Pietrasiewicz ML7831 is for general purpose use. 35590fccb52SAndrzej Pietrasiewicz ML7213/ML7831 is companion chip for Intel Atom E6xx series. 35690fccb52SAndrzej Pietrasiewicz ML7213/ML7831 is completely compatible for Intel EG20T PCH. 35790fccb52SAndrzej Pietrasiewicz 358a68df706SBryan O'Donoghue This driver can be used with Intel's Quark X1000 SOC platform 3591f7c5166SSubbaraya Sundeep Bhatta 3601f7c5166SSubbaraya Sundeep Bhattaconfig USB_GADGET_XILINX 3611f7c5166SSubbaraya Sundeep Bhatta tristate "Xilinx USB Driver" 362f1113be1SGeert Uytterhoeven depends on HAS_DMA 3631f7c5166SSubbaraya Sundeep Bhatta depends on OF || COMPILE_TEST 3641f7c5166SSubbaraya Sundeep Bhatta help 3651f7c5166SSubbaraya Sundeep Bhatta USB peripheral controller driver for Xilinx USB2 device. 3661f7c5166SSubbaraya Sundeep Bhatta Xilinx USB2 device is a soft IP which supports both full 3671f7c5166SSubbaraya Sundeep Bhatta and high speed USB 2.0 data transfers. It has seven configurable 3681f7c5166SSubbaraya Sundeep Bhatta endpoints(bulk or interrupt or isochronous), as well as 3691f7c5166SSubbaraya Sundeep Bhatta endpoint zero(for control transfers). 3701f7c5166SSubbaraya Sundeep Bhatta 3711f7c5166SSubbaraya Sundeep Bhatta Say "y" to link the driver statically, or "m" to build a 3721f7c5166SSubbaraya Sundeep Bhatta dynamically linked module called "udc-xilinx" and force all 3731f7c5166SSubbaraya Sundeep Bhatta gadget drivers to also be dynamically linked. 3741f7c5166SSubbaraya Sundeep Bhatta 37590fccb52SAndrzej Pietrasiewicz# 37690fccb52SAndrzej Pietrasiewicz# LAST -- dummy/emulated controller 37790fccb52SAndrzej Pietrasiewicz# 37890fccb52SAndrzej Pietrasiewicz 37990fccb52SAndrzej Pietrasiewiczconfig USB_DUMMY_HCD 38090fccb52SAndrzej Pietrasiewicz tristate "Dummy HCD (DEVELOPMENT)" 38190fccb52SAndrzej Pietrasiewicz depends on USB=y || (USB=m && USB_GADGET=m) 38290fccb52SAndrzej Pietrasiewicz help 38390fccb52SAndrzej Pietrasiewicz This host controller driver emulates USB, looping all data transfer 38490fccb52SAndrzej Pietrasiewicz requests back to a USB "gadget driver" in the same host. The host 38590fccb52SAndrzej Pietrasiewicz side is the master; the gadget side is the slave. Gadget drivers 38690fccb52SAndrzej Pietrasiewicz can be high, full, or low speed; and they have access to endpoints 38790fccb52SAndrzej Pietrasiewicz like those from NET2280, PXA2xx, or SA1100 hardware. 38890fccb52SAndrzej Pietrasiewicz 38990fccb52SAndrzej Pietrasiewicz This may help in some stages of creating a driver to embed in a 39090fccb52SAndrzej Pietrasiewicz Linux device, since it lets you debug several parts of the gadget 39190fccb52SAndrzej Pietrasiewicz driver without its hardware or drivers being involved. 39290fccb52SAndrzej Pietrasiewicz 39390fccb52SAndrzej Pietrasiewicz Since such a gadget side driver needs to interoperate with a host 39490fccb52SAndrzej Pietrasiewicz side Linux-USB device driver, this may help to debug both sides 39590fccb52SAndrzej Pietrasiewicz of a USB protocol stack. 39690fccb52SAndrzej Pietrasiewicz 39790fccb52SAndrzej Pietrasiewicz Say "y" to link the driver statically, or "m" to build a 39890fccb52SAndrzej Pietrasiewicz dynamically linked module called "dummy_hcd" and force all 39990fccb52SAndrzej Pietrasiewicz gadget drivers to also be dynamically linked. 40090fccb52SAndrzej Pietrasiewicz 40190fccb52SAndrzej Pietrasiewicz# NOTE: Please keep dummy_hcd LAST so that "real hardware" appears 40290fccb52SAndrzej Pietrasiewicz# first and will be selected by default. 40390fccb52SAndrzej Pietrasiewicz 40490fccb52SAndrzej Pietrasiewiczendmenu 405