Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) # USB Gadget support on a system involves
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) #    (a) a peripheral controller, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) #    (b) the gadget driver using it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) # NOTE:  Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #  - Host systems (like PCs) need CONFIG_USB (with "A" jacks).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #  - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #  - Some systems have both kinds of controllers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) # With help from a special transceiver and a "Mini-AB" jack, systems with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) # both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) # USB Peripheral Controller Support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) # The order here is alphabetical, except that integrated controllers go
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) # before discrete ones so they will be the initial/default value:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #   - integrated/SOC controllers first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) #   - licensed IP used in both SOC and discrete versions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) #   - discrete ones (including all PCI-only controllers)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) #   - debug/dummy gadget+hcd is last.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) menu "USB Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) # Integrated controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) config USB_AT91
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	tristate "Atmel AT91 USB Device Port"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	depends on ARCH_AT91
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	depends on OF || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	   Many Atmel AT91 processors (such as the AT91RM2000) have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	   full speed USB Device Port with support for five configurable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	   endpoints (plus endpoint zero).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	   dynamically linked module called "at91_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) config USB_LPC32XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	tristate "LPC32XX USB Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	depends on ARCH_LPC32XX || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	depends on I2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	select USB_ISP1301
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	   This option selects the USB device controller in the LPC32xx SoC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	   dynamically linked module called "lpc32xx_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) config USB_ATMEL_USBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	tristate "Atmel USBA"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	depends on ARCH_AT91
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	  USBA is the integrated high-speed USB Device controller on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	  the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	  The fifo_mode parameter is used to select endpoint allocation mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	  fifo_mode = 0 is used to let the driver autoconfigure the endpoints.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	  In this case, for ep1 2 banks are allocated if it works in isochronous
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	  mode and only 1 bank otherwise. For the rest of the endpoints
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	  only 1 bank is allocated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	  fifo_mode = 1 is a generic maximum fifo size (1024 bytes) configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	  allowing the usage of ep1 - ep6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	  fifo_mode = 2 is a generic performance maximum fifo size (1024 bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	  configuration allowing the usage of ep1 - ep3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	  fifo_mode = 3 is a balanced performance configuration allowing the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	  the usage of ep1 - ep8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) config USB_BCM63XX_UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	tristate "Broadcom BCM63xx Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	depends on BCM63XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	   Many Broadcom BCM63xx chipsets (such as the BCM6328) have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	   high speed USB Device Port with support for four fixed endpoints
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	   (plus endpoint zero).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	   dynamically linked module called "bcm63xx_udc".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) config USB_FSL_USB2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	tristate "Freescale Highspeed USB DR Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	depends on FSL_SOC || ARCH_MXC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	   Some of Freescale PowerPC and i.MX processors have a High Speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	   Dual-Role(DR) USB controller, which supports device mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	   The number of programmable endpoints is different through
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	   SOC revisions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	   dynamically linked module called "fsl_usb2_udc" and force
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	   all gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) config USB_FUSB300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	tristate "Faraday FUSB300 USB Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	depends on !PHYS_ADDR_T_64BIT && HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	   Faraday usb device controller FUSB300 driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) config USB_FOTG210_UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	tristate "Faraday FOTG210 USB Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	   Faraday USB2.0 OTG controller which can be configured as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	   high speed or full speed USB device. This driver supppors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	   Bulk Transfer so far.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	   dynamically linked module called "fotg210_udc".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) config USB_GR_UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	tristate "Aeroflex Gaisler GRUSBDC USB Peripheral Controller Driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	  Select this to support Aeroflex Gaisler GRUSBDC cores from the GRLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	  VHDL IP core library.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) config USB_OMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 	tristate "OMAP USB Device Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	depends on ARCH_OMAP1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	depends on ISP1301_OMAP || !(MACH_OMAP_H2 || MACH_OMAP_H3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 	   Many Texas Instruments OMAP processors have flexible full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	   speed USB device controllers, with support for up to 30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	   endpoints (plus endpoint zero).  This driver supports the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 	   controller in the OMAP 1611, and should work with controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	   in other OMAP processors too, given minor tweaks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	   dynamically linked module called "omap_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) config USB_PXA25X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	tristate "PXA 25x or IXP 4xx"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	depends on HAS_IOMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	   Intel's PXA 25x series XScale ARM-5TE processors include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	   an integrated full speed USB 1.1 device controller.  The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	   controller in the IXP 4xx series is register-compatible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	   It has fifteen fixed-function endpoints, as well as endpoint
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	   zero (for control transfers).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	   dynamically linked module called "pxa25x_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) # if there's only one gadget driver, using only two bulk endpoints,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) # don't waste memory for the other endpoints
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) config USB_PXA25X_SMALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 	depends on USB_PXA25X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 	bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	default n if USB_ETH_RNDIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	default y if USB_ZERO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	default y if USB_ETH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 	default y if USB_G_SERIAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) config USB_R8A66597
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	tristate "Renesas R8A66597 USB Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	   R8A66597 is a discrete USB host and peripheral controller chip that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 	   supports both full and high speed USB 2.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	   It has nine configurable endpoints, and endpoint zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 	   dynamically linked module called "r8a66597_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) config USB_RENESAS_USBHS_UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 	tristate 'Renesas USBHS controller'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	depends on USB_RENESAS_USBHS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	   Renesas USBHS is a discrete USB host and peripheral controller chip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 	   that supports both full and high speed USB 2.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 	   It has nine or more configurable endpoints, and endpoint zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 	   dynamically linked module called "renesas_usbhs" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) config USB_RENESAS_USB3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 	tristate 'Renesas USB3.0 Peripheral controller'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 	depends on ARCH_RENESAS || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 	depends on EXTCON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	select USB_ROLE_SWITCH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	   Renesas USB3.0 Peripheral controller is a USB peripheral controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 	   that supports super, high, and full speed USB 3.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	   dynamically linked module called "renesas_usb3" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) config USB_PXA27X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 	tristate "PXA 27x"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 	depends on HAS_IOMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 	   Intel's PXA 27x series XScale ARM v5TE processors include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 	   an integrated full speed USB 1.1 device controller.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	   It has up to 23 endpoints, as well as endpoint zero (for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 	   control transfers).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	   dynamically linked module called "pxa27x_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) config USB_S3C2410
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 	tristate "S3C2410 USB Device Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	depends on ARCH_S3C24XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 	  Samsung's S3C2410 is an ARM-4 processor with an integrated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 	  full speed USB 1.1 device controller.  It has 4 configurable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 	  endpoints, as well as endpoint zero (for control transfers).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 	  This driver has been tested on the S3C2410, S3C2412, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 	  S3C2440 processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) config USB_S3C2410_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	bool "S3C2410 udc debug messages"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	depends on USB_S3C2410
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) config USB_S3C_HSUDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	depends on ARCH_S3C24XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	  Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 	  integrated with dual speed USB 2.0 device controller. It has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	  8 endpoints, as well as endpoint zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	  This driver has been tested on S3C2416 and S3C2450 processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) config USB_MV_UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	tristate "Marvell USB2.0 Device Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	  Marvell Socs (including PXA and MMP series) include a high speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 	  USB2.0 OTG controller, which can be configured as high speed or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	  full speed USB peripheral.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) config USB_MV_U3D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 	tristate "MARVELL PXA2128 USB 3.0 controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 	  MARVELL PXA2128 Processor series include a super speed USB3.0 device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	  controller, which support super speed USB peripheral.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) config USB_SNP_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 	depends on (USB_AMD5536UDC || USB_SNP_UDC_PLAT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 	tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 	  This enables core driver support for Synopsys USB 2.0 Device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 	  controller.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 	  This will be enabled when PCI or Platform driver for this UDC is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 	  selected. Currently, this will be enabled by USB_SNP_UDC_PLAT or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 	  USB_AMD5536UDC options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 	  This IP is different to the High Speed OTG IP that can be enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 	  by selecting USB_DWC2 or USB_DWC3 options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) config USB_SNP_UDC_PLAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 	tristate "Synopsys USB 2.0 Device controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 	depends on USB_GADGET && OF && HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 	depends on EXTCON || EXTCON=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 	select USB_SNP_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 	default ARCH_BCM_IPROC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 	  This adds Platform Device support for Synopsys Designware core
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 	  AHB subsystem USB2.0 Device Controller (UDC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 	  This driver works with UDCs integrated into Broadcom's Northstar2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 	  and Cygnus SoCs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 	  If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) # Controllers available in both integrated and discrete versions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) config USB_M66592
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 	tristate "Renesas M66592 USB Peripheral Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 	depends on HAS_IOMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 	   M66592 is a discrete USB peripheral controller chip that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 	   supports both full and high speed USB 2.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 	   It has seven configurable endpoints, and endpoint zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 	   dynamically linked module called "m66592_udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) source "drivers/usb/gadget/udc/bdc/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) # Controllers available only in discrete form (and all PCI controllers)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) config USB_AMD5536UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 	tristate "AMD5536 UDC"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 	depends on USB_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 	select USB_SNP_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 	   The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 	   It is a USB Highspeed DMA capable USB device controller. Beside ep0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) 	   it provides 4 IN and 4 OUT endpoints (bulk or interrupt type).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 	   The UDC port supports OTG operation, and may be used as a host port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 	   if it's not being used to implement peripheral or OTG roles.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 	   This UDC is based on Synopsys USB device controller IP and selects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 	   CONFIG_USB_SNP_CORE option to build the core driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 	   dynamically linked module called "amd5536udc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) config USB_FSL_QE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 	tristate "Freescale QE/CPM USB Device Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 	depends on FSL_SOC && (QUICC_ENGINE || CPM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 	depends on !64BIT || BROKEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 	   Some of Freescale PowerPC processors have a Full Speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 	   QE/CPM2 USB controller, which support device mode with 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 	   programmable endpoints. This driver supports the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 	   controller in the MPC8360 and MPC8272, and should work with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 	   controllers having QE or CPM2, given minor tweaks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 	   Set CONFIG_USB_GADGET to "m" to build this driver as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 	   dynamically linked module called "fsl_qe_udc".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) config USB_NET2272
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 	depends on HAS_IOMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 	tristate "PLX NET2272"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 	  PLX NET2272 is a USB peripheral controller which supports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 	  both full and high speed USB 2.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 	  It has three configurable endpoints, as well as endpoint zero
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 	  (for control transfer).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) 	  Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 	  dynamically linked module called "net2272" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 	  gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) config USB_NET2272_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 	bool "Support external DMA controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 	depends on USB_NET2272 && HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 	  The NET2272 part can optionally support an external DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 	  controller, but your board has to have support in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 	  driver itself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 	  If unsure, say "N" here.  The driver works fine in PIO mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) config USB_NET2280
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 	tristate "NetChip NET228x / PLX USB3x8x"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 	depends on USB_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 	   NetChip 2280 / 2282 is a PCI based USB peripheral controller which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 	   supports both full and high speed USB 2.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 	   It has six configurable endpoints, as well as endpoint zero
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 	   (for control transfers) and several endpoints with dedicated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 	   functions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 	   PLX 2380 is a PCIe version of the PLX 2380.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 	   PLX 3380 / 3382 is a PCIe based USB peripheral controller which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 	   supports full, high speed USB 2.0 and super speed USB 3.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 	   data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 	   It has eight configurable endpoints, as well as endpoint zero
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 	   (for control transfers) and several endpoints with dedicated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 	   functions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 	   dynamically linked module called "net2280" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) config USB_GOKU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) 	tristate "Toshiba TC86C001 'Goku-S'"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 	depends on USB_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 	   The Toshiba TC86C001 is a PCI device which includes controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 	   for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 	   The device controller has three configurable (bulk or interrupt)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) 	   endpoints, plus endpoint zero (for control transfers).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	   Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 	   dynamically linked module called "goku_udc" and to force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 	   gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) config USB_EG20T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 	tristate "Intel QUARK X1000/EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 	depends on USB_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 	  This is a USB device driver for EG20T PCH.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 	  EG20T PCH is the platform controller hub that is used in Intel's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 	  general embedded platform. EG20T PCH has USB device interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 	  Using this interface, it is able to access system devices connected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 	  to USB device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 	  This driver enables USB device function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) 	  USB device is a USB peripheral controller which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 	  supports both full and high speed USB 2.0 data transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 	  This driver supports both control transfer and bulk transfer modes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 	  This driver dose not support interrupt transfer or isochronous
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 	  transfer modes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	  This driver also can be used for LAPIS Semiconductor's ML7213 which is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 	  for IVI(In-Vehicle Infotainment) use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 	  ML7831 is for general purpose use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 	  ML7213/ML7831 is companion chip for Intel Atom E6xx series.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 	  ML7213/ML7831 is completely compatible for Intel EG20T PCH.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 	  This driver can be used with Intel's Quark X1000 SOC platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) config USB_GADGET_XILINX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 	tristate "Xilinx USB Driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 	depends on HAS_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 	depends on OF || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 	  USB peripheral controller driver for Xilinx USB2 device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 	  Xilinx USB2 device is a soft IP which supports both full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 	  and high speed USB 2.0 data transfers. It has seven configurable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 	  endpoints(bulk or interrupt or isochronous), as well as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 	  endpoint zero(for control transfers).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 	  Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 	  dynamically linked module called "udc-xilinx" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 	  gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) config USB_MAX3420_UDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) 	tristate "MAX3420 (USB-over-SPI) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 	depends on SPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) 	  The Maxim MAX3420 chip supports USB2.0 full-speed peripheral mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 	  The MAX3420 is run by SPI interface, and hence the dependency.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 	  To compile this driver as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 	  be called max3420_udc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) config USB_TEGRA_XUDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 	tristate "NVIDIA Tegra Superspeed USB 3.0 Device Controller"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 	depends on ARCH_TEGRA || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 	depends on PHY_TEGRA_XUSB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 	 Enables NVIDIA Tegra USB 3.0 device mode controller driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 	 Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 	 dynamically linked module called "tegra_xudc" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 	 gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) source "drivers/usb/gadget/udc/aspeed-vhub/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) # LAST -- dummy/emulated controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) config USB_DUMMY_HCD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) 	tristate "Dummy HCD (DEVELOPMENT)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 	depends on USB=y || (USB=m && USB_GADGET=m)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 	  This host controller driver emulates USB, looping all data transfer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) 	  requests back to a USB "gadget driver" in the same host.  The host
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 	  side is the controller; the gadget side is the device.  Gadget drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 	  can be high, full, or low speed; and they have access to endpoints
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 	  like those from NET2280, PXA2xx, or SA1100 hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 	  This may help in some stages of creating a driver to embed in a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 	  Linux device, since it lets you debug several parts of the gadget
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 	  driver without its hardware or drivers being involved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 	  Since such a gadget side driver needs to interoperate with a host
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) 	  side Linux-USB device driver, this may help to debug both sides
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 	  of a USB protocol stack.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 	  Say "y" to link the driver statically, or "m" to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) 	  dynamically linked module called "dummy_hcd" and force all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 	  gadget drivers to also be dynamically linked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) # NOTE:  Please keep dummy_hcd LAST so that "real hardware" appears
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) # first and will be selected by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) endmenu