drivers/usb/gadget/udc/Kconfig

Source file repositories/reference/linux-study-clean/drivers/usb/gadget/udc/Kconfig

File Facts

System
Linux kernel
Corpus path
drivers/usb/gadget/udc/Kconfig
Extension
[no extension]
Size
16140 bytes
Lines
454
Domain
Driver Families
Bucket
drivers/usb
Inferred role
Driver Families: build/configuration rule
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0
#
# USB Gadget support on a system involves
#    (a) a peripheral controller, and
#    (b) the gadget driver using it.
#
# NOTE:  Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
#
#  - Host systems (like PCs) need CONFIG_USB (with "A" jacks).
#  - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks).
#  - Some systems have both kinds of controllers.
#
# With help from a special transceiver and a "Mini-AB" jack, systems with
# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG).
#

#
# USB Peripheral Controller Support
#
# The order here is alphabetical, except that integrated controllers go
# before discrete ones so they will be the initial/default value:
#   - integrated/SOC controllers first
#   - licensed IP used in both SOC and discrete versions
#   - discrete ones (including all PCI-only controllers)
#   - debug/dummy gadget+hcd is last.
#
menu "USB Peripheral Controller"

#
# Integrated controllers
#

config USB_AT91
	tristate "Atmel AT91 USB Device Port"
	depends on ARCH_AT91
	depends on OF
	help
	   Many Atmel AT91 processors (such as the AT91RM2000) have a
	   full speed USB Device Port with support for five configurable
	   endpoints (plus endpoint zero).

	   Say "y" to link the driver statically, or "m" to build a
	   dynamically linked module called "at91_udc" and force all
	   gadget drivers to also be dynamically linked.

config USB_LPC32XX
	tristate "LPC32XX USB Peripheral Controller"
	depends on ARCH_LPC32XX || COMPILE_TEST
	depends on I2C
	select USB_ISP1301
	help
	   This option selects the USB device controller in the LPC32xx SoC.

	   Say "y" to link the driver statically, or "m" to build a
	   dynamically linked module called "lpc32xx_udc" and force all
	   gadget drivers to also be dynamically linked.

config USB_ATMEL_USBA
	tristate "Atmel USBA"
	depends on ARCH_AT91
	help
	  USBA is the integrated high-speed USB Device controller on some
	  AT91SAM9 and AT91CAP9 processors from Atmel.

	  The fifo_mode parameter is used to select endpoint allocation mode.
	  fifo_mode = 0 is used to let the driver autoconfigure the endpoints.
	  In this case, for ep1 2 banks are allocated if it works in isochronous
	  mode and only 1 bank otherwise. For the rest of the endpoints
	  only 1 bank is allocated.

Annotation

Implementation Notes