162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# USB Gadget support on a system involves 462306a36Sopenharmony_ci# (a) a peripheral controller, and 562306a36Sopenharmony_ci# (b) the gadget driver using it. 662306a36Sopenharmony_ci# 762306a36Sopenharmony_ci# NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 862306a36Sopenharmony_ci# 962306a36Sopenharmony_ci# - Host systems (like PCs) need CONFIG_USB (with "A" jacks). 1062306a36Sopenharmony_ci# - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks). 1162306a36Sopenharmony_ci# - Some systems have both kinds of controllers. 1262306a36Sopenharmony_ci# 1362306a36Sopenharmony_ci# With help from a special transceiver and a "Mini-AB" jack, systems with 1462306a36Sopenharmony_ci# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). 1562306a36Sopenharmony_ci# 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci# 1862306a36Sopenharmony_ci# USB Peripheral Controller Support 1962306a36Sopenharmony_ci# 2062306a36Sopenharmony_ci# The order here is alphabetical, except that integrated controllers go 2162306a36Sopenharmony_ci# before discrete ones so they will be the initial/default value: 2262306a36Sopenharmony_ci# - integrated/SOC controllers first 2362306a36Sopenharmony_ci# - licensed IP used in both SOC and discrete versions 2462306a36Sopenharmony_ci# - discrete ones (including all PCI-only controllers) 2562306a36Sopenharmony_ci# - debug/dummy gadget+hcd is last. 2662306a36Sopenharmony_ci# 2762306a36Sopenharmony_cimenu "USB Peripheral Controller" 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci# 3062306a36Sopenharmony_ci# Integrated controllers 3162306a36Sopenharmony_ci# 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciconfig USB_AT91 3462306a36Sopenharmony_ci tristate "Atmel AT91 USB Device Port" 3562306a36Sopenharmony_ci depends on ARCH_AT91 3662306a36Sopenharmony_ci depends on OF 3762306a36Sopenharmony_ci help 3862306a36Sopenharmony_ci Many Atmel AT91 processors (such as the AT91RM2000) have a 3962306a36Sopenharmony_ci full speed USB Device Port with support for five configurable 4062306a36Sopenharmony_ci endpoints (plus endpoint zero). 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 4362306a36Sopenharmony_ci dynamically linked module called "at91_udc" and force all 4462306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciconfig USB_LPC32XX 4762306a36Sopenharmony_ci tristate "LPC32XX USB Peripheral Controller" 4862306a36Sopenharmony_ci depends on ARCH_LPC32XX || COMPILE_TEST 4962306a36Sopenharmony_ci depends on I2C 5062306a36Sopenharmony_ci select USB_ISP1301 5162306a36Sopenharmony_ci help 5262306a36Sopenharmony_ci This option selects the USB device controller in the LPC32xx SoC. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 5562306a36Sopenharmony_ci dynamically linked module called "lpc32xx_udc" and force all 5662306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciconfig USB_ATMEL_USBA 5962306a36Sopenharmony_ci tristate "Atmel USBA" 6062306a36Sopenharmony_ci depends on ARCH_AT91 6162306a36Sopenharmony_ci help 6262306a36Sopenharmony_ci USBA is the integrated high-speed USB Device controller on some 6362306a36Sopenharmony_ci AT91SAM9 and AT91CAP9 processors from Atmel. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci The fifo_mode parameter is used to select endpoint allocation mode. 6662306a36Sopenharmony_ci fifo_mode = 0 is used to let the driver autoconfigure the endpoints. 6762306a36Sopenharmony_ci In this case, for ep1 2 banks are allocated if it works in isochronous 6862306a36Sopenharmony_ci mode and only 1 bank otherwise. For the rest of the endpoints 6962306a36Sopenharmony_ci only 1 bank is allocated. 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci fifo_mode = 1 is a generic maximum fifo size (1024 bytes) configuration 7262306a36Sopenharmony_ci allowing the usage of ep1 - ep6 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci fifo_mode = 2 is a generic performance maximum fifo size (1024 bytes) 7562306a36Sopenharmony_ci configuration allowing the usage of ep1 - ep3 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci fifo_mode = 3 is a balanced performance configuration allowing the 7862306a36Sopenharmony_ci the usage of ep1 - ep8 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig USB_BCM63XX_UDC 8162306a36Sopenharmony_ci tristate "Broadcom BCM63xx Peripheral Controller" 8262306a36Sopenharmony_ci depends on BCM63XX 8362306a36Sopenharmony_ci help 8462306a36Sopenharmony_ci Many Broadcom BCM63xx chipsets (such as the BCM6328) have a 8562306a36Sopenharmony_ci high speed USB Device Port with support for four fixed endpoints 8662306a36Sopenharmony_ci (plus endpoint zero). 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 8962306a36Sopenharmony_ci dynamically linked module called "bcm63xx_udc". 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciconfig USB_FSL_USB2 9262306a36Sopenharmony_ci tristate "Freescale Highspeed USB DR Peripheral Controller" 9362306a36Sopenharmony_ci depends on FSL_SOC 9462306a36Sopenharmony_ci help 9562306a36Sopenharmony_ci Some of Freescale PowerPC and i.MX processors have a High Speed 9662306a36Sopenharmony_ci Dual-Role(DR) USB controller, which supports device mode. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci The number of programmable endpoints is different through 9962306a36Sopenharmony_ci SOC revisions. 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 10262306a36Sopenharmony_ci dynamically linked module called "fsl_usb2_udc" and force 10362306a36Sopenharmony_ci all gadget drivers to also be dynamically linked. 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ciconfig USB_FUSB300 10662306a36Sopenharmony_ci tristate "Faraday FUSB300 USB Peripheral Controller" 10762306a36Sopenharmony_ci depends on !PHYS_ADDR_T_64BIT && HAS_DMA 10862306a36Sopenharmony_ci help 10962306a36Sopenharmony_ci Faraday usb device controller FUSB300 driver 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ciconfig USB_GR_UDC 11262306a36Sopenharmony_ci tristate "Aeroflex Gaisler GRUSBDC USB Peripheral Controller Driver" 11362306a36Sopenharmony_ci depends on HAS_DMA 11462306a36Sopenharmony_ci help 11562306a36Sopenharmony_ci Select this to support Aeroflex Gaisler GRUSBDC cores from the GRLIB 11662306a36Sopenharmony_ci VHDL IP core library. 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ciconfig USB_OMAP 11962306a36Sopenharmony_ci tristate "OMAP USB Device Controller" 12062306a36Sopenharmony_ci depends on ARCH_OMAP1 12162306a36Sopenharmony_ci help 12262306a36Sopenharmony_ci Many Texas Instruments OMAP processors have flexible full 12362306a36Sopenharmony_ci speed USB device controllers, with support for up to 30 12462306a36Sopenharmony_ci endpoints (plus endpoint zero). This driver supports the 12562306a36Sopenharmony_ci controller in the OMAP 1611, and should work with controllers 12662306a36Sopenharmony_ci in other OMAP processors too, given minor tweaks. 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 12962306a36Sopenharmony_ci dynamically linked module called "omap_udc" and force all 13062306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ciconfig USB_PXA25X 13362306a36Sopenharmony_ci tristate "PXA 25x or IXP 4xx" 13462306a36Sopenharmony_ci depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX 13562306a36Sopenharmony_ci depends on HAS_IOMEM 13662306a36Sopenharmony_ci help 13762306a36Sopenharmony_ci Intel's PXA 25x series XScale ARM-5TE processors include 13862306a36Sopenharmony_ci an integrated full speed USB 1.1 device controller. The 13962306a36Sopenharmony_ci controller in the IXP 4xx series is register-compatible. 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci It has fifteen fixed-function endpoints, as well as endpoint 14262306a36Sopenharmony_ci zero (for control transfers). 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 14562306a36Sopenharmony_ci dynamically linked module called "pxa25x_udc" and force all 14662306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci# if there's only one gadget driver, using only two bulk endpoints, 14962306a36Sopenharmony_ci# don't waste memory for the other endpoints 15062306a36Sopenharmony_ciconfig USB_PXA25X_SMALL 15162306a36Sopenharmony_ci depends on USB_PXA25X 15262306a36Sopenharmony_ci bool 15362306a36Sopenharmony_ci default n if USB_ETH_RNDIS 15462306a36Sopenharmony_ci default y if USB_ZERO 15562306a36Sopenharmony_ci default y if USB_ETH 15662306a36Sopenharmony_ci default y if USB_G_SERIAL 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ciconfig USB_R8A66597 15962306a36Sopenharmony_ci tristate "Renesas R8A66597 USB Peripheral Controller" 16062306a36Sopenharmony_ci depends on HAS_DMA 16162306a36Sopenharmony_ci help 16262306a36Sopenharmony_ci R8A66597 is a discrete USB host and peripheral controller chip that 16362306a36Sopenharmony_ci supports both full and high speed USB 2.0 data transfers. 16462306a36Sopenharmony_ci It has nine configurable endpoints, and endpoint zero. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 16762306a36Sopenharmony_ci dynamically linked module called "r8a66597_udc" and force all 16862306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ciconfig USB_RENESAS_USBHS_UDC 17162306a36Sopenharmony_ci tristate 'Renesas USBHS controller' 17262306a36Sopenharmony_ci depends on USB_RENESAS_USBHS 17362306a36Sopenharmony_ci help 17462306a36Sopenharmony_ci Renesas USBHS is a discrete USB host and peripheral controller chip 17562306a36Sopenharmony_ci that supports both full and high speed USB 2.0 data transfers. 17662306a36Sopenharmony_ci It has nine or more configurable endpoints, and endpoint zero. 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 17962306a36Sopenharmony_ci dynamically linked module called "renesas_usbhs" and force all 18062306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ciconfig USB_RZV2M_USB3DRD 18362306a36Sopenharmony_ci tristate 'Renesas USB3.1 DRD controller' 18462306a36Sopenharmony_ci depends on ARCH_R9A09G011 || COMPILE_TEST 18562306a36Sopenharmony_ci help 18662306a36Sopenharmony_ci Renesas USB3.1 DRD controller is a USB DRD controller 18762306a36Sopenharmony_ci that supports both host and device switching. 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 19062306a36Sopenharmony_ci dynamically linked module called "rzv2m_usb3drd". 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig USB_RENESAS_USB3 19362306a36Sopenharmony_ci tristate 'Renesas USB3.0 Peripheral controller' 19462306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 19562306a36Sopenharmony_ci depends on USB_RZV2M_USB3DRD || !USB_RZV2M_USB3DRD 19662306a36Sopenharmony_ci depends on EXTCON 19762306a36Sopenharmony_ci select USB_ROLE_SWITCH 19862306a36Sopenharmony_ci help 19962306a36Sopenharmony_ci Renesas USB3.0 Peripheral controller is a USB peripheral controller 20062306a36Sopenharmony_ci that supports super, high, and full speed USB 3.0 data transfers. 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 20362306a36Sopenharmony_ci dynamically linked module called "renesas_usb3" and force all 20462306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ciconfig USB_RENESAS_USBF 20762306a36Sopenharmony_ci tristate 'Renesas USB Function controller' 20862306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 20962306a36Sopenharmony_ci help 21062306a36Sopenharmony_ci Renesas USB Function controller is a USB peripheral controller 21162306a36Sopenharmony_ci available on RZ/N1 Renesas SoCs. 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 21462306a36Sopenharmony_ci dynamically linked module called "renesas_usbf" and force all 21562306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ciconfig USB_PXA27X 21862306a36Sopenharmony_ci tristate "PXA 27x" 21962306a36Sopenharmony_ci depends on HAS_IOMEM 22062306a36Sopenharmony_ci help 22162306a36Sopenharmony_ci Intel's PXA 27x series XScale ARM v5TE processors include 22262306a36Sopenharmony_ci an integrated full speed USB 1.1 device controller. 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci It has up to 23 endpoints, as well as endpoint zero (for 22562306a36Sopenharmony_ci control transfers). 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 22862306a36Sopenharmony_ci dynamically linked module called "pxa27x_udc" and force all 22962306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ciconfig USB_MV_UDC 23262306a36Sopenharmony_ci tristate "Marvell USB2.0 Device Controller" 23362306a36Sopenharmony_ci depends on HAS_DMA 23462306a36Sopenharmony_ci help 23562306a36Sopenharmony_ci Marvell Socs (including PXA and MMP series) include a high speed 23662306a36Sopenharmony_ci USB2.0 OTG controller, which can be configured as high speed or 23762306a36Sopenharmony_ci full speed USB peripheral. 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ciconfig USB_MV_U3D 24062306a36Sopenharmony_ci depends on HAS_DMA 24162306a36Sopenharmony_ci tristate "MARVELL PXA2128 USB 3.0 controller" 24262306a36Sopenharmony_ci help 24362306a36Sopenharmony_ci MARVELL PXA2128 Processor series include a super speed USB3.0 device 24462306a36Sopenharmony_ci controller, which support super speed USB peripheral. 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ciconfig USB_SNP_CORE 24762306a36Sopenharmony_ci depends on (USB_AMD5536UDC || USB_SNP_UDC_PLAT) 24862306a36Sopenharmony_ci depends on HAS_DMA 24962306a36Sopenharmony_ci tristate 25062306a36Sopenharmony_ci help 25162306a36Sopenharmony_ci This enables core driver support for Synopsys USB 2.0 Device 25262306a36Sopenharmony_ci controller. 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci This will be enabled when PCI or Platform driver for this UDC is 25562306a36Sopenharmony_ci selected. Currently, this will be enabled by USB_SNP_UDC_PLAT or 25662306a36Sopenharmony_ci USB_AMD5536UDC options. 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci This IP is different to the High Speed OTG IP that can be enabled 25962306a36Sopenharmony_ci by selecting USB_DWC2 or USB_DWC3 options. 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ciconfig USB_SNP_UDC_PLAT 26262306a36Sopenharmony_ci tristate "Synopsys USB 2.0 Device controller" 26362306a36Sopenharmony_ci depends on USB_GADGET && OF && HAS_DMA 26462306a36Sopenharmony_ci depends on EXTCON || EXTCON=n 26562306a36Sopenharmony_ci select USB_SNP_CORE 26662306a36Sopenharmony_ci default ARCH_BCM_IPROC 26762306a36Sopenharmony_ci help 26862306a36Sopenharmony_ci This adds Platform Device support for Synopsys Designware core 26962306a36Sopenharmony_ci AHB subsystem USB2.0 Device Controller (UDC). 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci This driver works with UDCs integrated into Broadcom's Northstar2 27262306a36Sopenharmony_ci and Cygnus SoCs. 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci If unsure, say N. 27562306a36Sopenharmony_ci# 27662306a36Sopenharmony_ci# Controllers available in both integrated and discrete versions 27762306a36Sopenharmony_ci# 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ciconfig USB_M66592 28062306a36Sopenharmony_ci tristate "Renesas M66592 USB Peripheral Controller" 28162306a36Sopenharmony_ci depends on HAS_IOMEM 28262306a36Sopenharmony_ci help 28362306a36Sopenharmony_ci M66592 is a discrete USB peripheral controller chip that 28462306a36Sopenharmony_ci supports both full and high speed USB 2.0 data transfers. 28562306a36Sopenharmony_ci It has seven configurable endpoints, and endpoint zero. 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 28862306a36Sopenharmony_ci dynamically linked module called "m66592_udc" and force all 28962306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_cisource "drivers/usb/gadget/udc/bdc/Kconfig" 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci# 29462306a36Sopenharmony_ci# Controllers available only in discrete form (and all PCI controllers) 29562306a36Sopenharmony_ci# 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ciconfig USB_AMD5536UDC 29862306a36Sopenharmony_ci tristate "AMD5536 UDC" 29962306a36Sopenharmony_ci depends on USB_PCI && HAS_DMA 30062306a36Sopenharmony_ci select USB_SNP_CORE 30162306a36Sopenharmony_ci help 30262306a36Sopenharmony_ci The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge. 30362306a36Sopenharmony_ci It is a USB Highspeed DMA capable USB device controller. Beside ep0 30462306a36Sopenharmony_ci it provides 4 IN and 4 OUT endpoints (bulk or interrupt type). 30562306a36Sopenharmony_ci The UDC port supports OTG operation, and may be used as a host port 30662306a36Sopenharmony_ci if it's not being used to implement peripheral or OTG roles. 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci This UDC is based on Synopsys USB device controller IP and selects 30962306a36Sopenharmony_ci CONFIG_USB_SNP_CORE option to build the core driver. 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 31262306a36Sopenharmony_ci dynamically linked module called "amd5536udc" and force all 31362306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ciconfig USB_FSL_QE 31662306a36Sopenharmony_ci tristate "Freescale QE/CPM USB Device Controller" 31762306a36Sopenharmony_ci depends on FSL_SOC && (QUICC_ENGINE || CPM) 31862306a36Sopenharmony_ci depends on !64BIT || BROKEN 31962306a36Sopenharmony_ci help 32062306a36Sopenharmony_ci Some of Freescale PowerPC processors have a Full Speed 32162306a36Sopenharmony_ci QE/CPM2 USB controller, which support device mode with 4 32262306a36Sopenharmony_ci programmable endpoints. This driver supports the 32362306a36Sopenharmony_ci controller in the MPC8360 and MPC8272, and should work with 32462306a36Sopenharmony_ci controllers having QE or CPM2, given minor tweaks. 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ci Set CONFIG_USB_GADGET to "m" to build this driver as a 32762306a36Sopenharmony_ci dynamically linked module called "fsl_qe_udc". 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ciconfig USB_NET2272 33062306a36Sopenharmony_ci depends on HAS_IOMEM 33162306a36Sopenharmony_ci tristate "PLX NET2272" 33262306a36Sopenharmony_ci help 33362306a36Sopenharmony_ci PLX NET2272 is a USB peripheral controller which supports 33462306a36Sopenharmony_ci both full and high speed USB 2.0 data transfers. 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci It has three configurable endpoints, as well as endpoint zero 33762306a36Sopenharmony_ci (for control transfer). 33862306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 33962306a36Sopenharmony_ci dynamically linked module called "net2272" and force all 34062306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_ciconfig USB_NET2272_DMA 34362306a36Sopenharmony_ci bool "Support external DMA controller" 34462306a36Sopenharmony_ci depends on USB_NET2272 && HAS_DMA 34562306a36Sopenharmony_ci help 34662306a36Sopenharmony_ci The NET2272 part can optionally support an external DMA 34762306a36Sopenharmony_ci controller, but your board has to have support in the 34862306a36Sopenharmony_ci driver itself. 34962306a36Sopenharmony_ci 35062306a36Sopenharmony_ci If unsure, say "N" here. The driver works fine in PIO mode. 35162306a36Sopenharmony_ci 35262306a36Sopenharmony_ciconfig USB_NET2280 35362306a36Sopenharmony_ci tristate "NetChip NET228x / PLX USB3x8x" 35462306a36Sopenharmony_ci depends on USB_PCI 35562306a36Sopenharmony_ci help 35662306a36Sopenharmony_ci NetChip 2280 / 2282 is a PCI based USB peripheral controller which 35762306a36Sopenharmony_ci supports both full and high speed USB 2.0 data transfers. 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci It has six configurable endpoints, as well as endpoint zero 36062306a36Sopenharmony_ci (for control transfers) and several endpoints with dedicated 36162306a36Sopenharmony_ci functions. 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci PLX 2380 is a PCIe version of the PLX 2380. 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_ci PLX 3380 / 3382 is a PCIe based USB peripheral controller which 36662306a36Sopenharmony_ci supports full, high speed USB 2.0 and super speed USB 3.0 36762306a36Sopenharmony_ci data transfers. 36862306a36Sopenharmony_ci 36962306a36Sopenharmony_ci It has eight configurable endpoints, as well as endpoint zero 37062306a36Sopenharmony_ci (for control transfers) and several endpoints with dedicated 37162306a36Sopenharmony_ci functions. 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 37462306a36Sopenharmony_ci dynamically linked module called "net2280" and force all 37562306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ciconfig USB_GOKU 37862306a36Sopenharmony_ci tristate "Toshiba TC86C001 'Goku-S'" 37962306a36Sopenharmony_ci depends on USB_PCI 38062306a36Sopenharmony_ci help 38162306a36Sopenharmony_ci The Toshiba TC86C001 is a PCI device which includes controllers 38262306a36Sopenharmony_ci for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI). 38362306a36Sopenharmony_ci 38462306a36Sopenharmony_ci The device controller has three configurable (bulk or interrupt) 38562306a36Sopenharmony_ci endpoints, plus endpoint zero (for control transfers). 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 38862306a36Sopenharmony_ci dynamically linked module called "goku_udc" and to force all 38962306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ciconfig USB_EG20T 39262306a36Sopenharmony_ci tristate "Intel QUARK X1000/EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC" 39362306a36Sopenharmony_ci depends on USB_PCI 39462306a36Sopenharmony_ci help 39562306a36Sopenharmony_ci This is a USB device driver for EG20T PCH. 39662306a36Sopenharmony_ci EG20T PCH is the platform controller hub that is used in Intel's 39762306a36Sopenharmony_ci general embedded platform. EG20T PCH has USB device interface. 39862306a36Sopenharmony_ci Using this interface, it is able to access system devices connected 39962306a36Sopenharmony_ci to USB device. 40062306a36Sopenharmony_ci This driver enables USB device function. 40162306a36Sopenharmony_ci USB device is a USB peripheral controller which 40262306a36Sopenharmony_ci supports both full and high speed USB 2.0 data transfers. 40362306a36Sopenharmony_ci This driver supports both control transfer and bulk transfer modes. 40462306a36Sopenharmony_ci This driver dose not support interrupt transfer or isochronous 40562306a36Sopenharmony_ci transfer modes. 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ci This driver also can be used for LAPIS Semiconductor's ML7213 which is 40862306a36Sopenharmony_ci for IVI(In-Vehicle Infotainment) use. 40962306a36Sopenharmony_ci ML7831 is for general purpose use. 41062306a36Sopenharmony_ci ML7213/ML7831 is companion chip for Intel Atom E6xx series. 41162306a36Sopenharmony_ci ML7213/ML7831 is completely compatible for Intel EG20T PCH. 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci This driver can be used with Intel's Quark X1000 SOC platform 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ciconfig USB_GADGET_XILINX 41662306a36Sopenharmony_ci tristate "Xilinx USB Driver" 41762306a36Sopenharmony_ci depends on HAS_DMA 41862306a36Sopenharmony_ci depends on OF 41962306a36Sopenharmony_ci help 42062306a36Sopenharmony_ci USB peripheral controller driver for Xilinx USB2 device. 42162306a36Sopenharmony_ci Xilinx USB2 device is a soft IP which supports both full 42262306a36Sopenharmony_ci and high speed USB 2.0 data transfers. It has seven configurable 42362306a36Sopenharmony_ci endpoints(bulk or interrupt or isochronous), as well as 42462306a36Sopenharmony_ci endpoint zero(for control transfers). 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 42762306a36Sopenharmony_ci dynamically linked module called "udc-xilinx" and force all 42862306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 42962306a36Sopenharmony_ci 43062306a36Sopenharmony_ciconfig USB_MAX3420_UDC 43162306a36Sopenharmony_ci tristate "MAX3420 (USB-over-SPI) support" 43262306a36Sopenharmony_ci depends on SPI 43362306a36Sopenharmony_ci help 43462306a36Sopenharmony_ci The Maxim MAX3420 chip supports USB2.0 full-speed peripheral mode. 43562306a36Sopenharmony_ci The MAX3420 is run by SPI interface, and hence the dependency. 43662306a36Sopenharmony_ci 43762306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module will 43862306a36Sopenharmony_ci be called max3420_udc 43962306a36Sopenharmony_ci 44062306a36Sopenharmony_ciconfig USB_TEGRA_XUDC 44162306a36Sopenharmony_ci tristate "NVIDIA Tegra Superspeed USB 3.0 Device Controller" 44262306a36Sopenharmony_ci depends on ARCH_TEGRA || COMPILE_TEST 44362306a36Sopenharmony_ci depends on PHY_TEGRA_XUSB 44462306a36Sopenharmony_ci help 44562306a36Sopenharmony_ci Enables NVIDIA Tegra USB 3.0 device mode controller driver. 44662306a36Sopenharmony_ci 44762306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 44862306a36Sopenharmony_ci dynamically linked module called "tegra_xudc" and force all 44962306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ciconfig USB_ASPEED_UDC 45262306a36Sopenharmony_ci tristate "Aspeed UDC driver support" 45362306a36Sopenharmony_ci depends on ARCH_ASPEED || COMPILE_TEST 45462306a36Sopenharmony_ci depends on USB_LIBCOMPOSITE 45562306a36Sopenharmony_ci help 45662306a36Sopenharmony_ci Enables Aspeed USB2.0 Device Controller driver for AST260x 45762306a36Sopenharmony_ci family SoCs. The controller supports 1 control endpoint and 45862306a36Sopenharmony_ci 4 programmable endpoints. 45962306a36Sopenharmony_ci 46062306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 46162306a36Sopenharmony_ci dynamically linked module called "aspeed_udc" and force all 46262306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_cisource "drivers/usb/gadget/udc/aspeed-vhub/Kconfig" 46562306a36Sopenharmony_ci 46662306a36Sopenharmony_cisource "drivers/usb/gadget/udc/cdns2/Kconfig" 46762306a36Sopenharmony_ci 46862306a36Sopenharmony_ci# 46962306a36Sopenharmony_ci# LAST -- dummy/emulated controller 47062306a36Sopenharmony_ci# 47162306a36Sopenharmony_ci 47262306a36Sopenharmony_ciconfig USB_DUMMY_HCD 47362306a36Sopenharmony_ci tristate "Dummy HCD (DEVELOPMENT)" 47462306a36Sopenharmony_ci depends on USB=y || (USB=m && USB_GADGET=m) 47562306a36Sopenharmony_ci help 47662306a36Sopenharmony_ci This host controller driver emulates USB, looping all data transfer 47762306a36Sopenharmony_ci requests back to a USB "gadget driver" in the same host. The host 47862306a36Sopenharmony_ci side is the controller; the gadget side is the device. Gadget drivers 47962306a36Sopenharmony_ci can be high, full, or low speed; and they have access to endpoints 48062306a36Sopenharmony_ci like those from NET2280, PXA2xx, or SA1100 hardware. 48162306a36Sopenharmony_ci 48262306a36Sopenharmony_ci This may help in some stages of creating a driver to embed in a 48362306a36Sopenharmony_ci Linux device, since it lets you debug several parts of the gadget 48462306a36Sopenharmony_ci driver without its hardware or drivers being involved. 48562306a36Sopenharmony_ci 48662306a36Sopenharmony_ci Since such a gadget side driver needs to interoperate with a host 48762306a36Sopenharmony_ci side Linux-USB device driver, this may help to debug both sides 48862306a36Sopenharmony_ci of a USB protocol stack. 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ci Say "y" to link the driver statically, or "m" to build a 49162306a36Sopenharmony_ci dynamically linked module called "dummy_hcd" and force all 49262306a36Sopenharmony_ci gadget drivers to also be dynamically linked. 49362306a36Sopenharmony_ci 49462306a36Sopenharmony_ci# NOTE: Please keep dummy_hcd LAST so that "real hardware" appears 49562306a36Sopenharmony_ci# first and will be selected by default. 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ciendmenu 498