^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