USB Gadget Support
configname: CONFIG_USB_GADGET
Linux Kernel Configuration
└─>Device Drivers
└─>USB support
└─>USB Gadget Support
In linux kernel since version 2.6.20 (release Date: 2007-02-04)
USB is a master/slave protocol, organized with one master
host (such as a PC) controlling up to 127 peripheral devices.
The USB hardware is asymmetric, which makes it easier to set up:
you can't connect a "to-the-host" connector to a peripheral.
Linux can run in the host, or in the peripheral. In both cases
you need a low level bus controller driver, and some software
talking to it. Peripheral controllers are often discrete silicon,
or are integrated with the CPU in a microcontroller. The more
familiar host side controllers have names like "EHCI", "OHCI",
or "UHCI", and are usually integrated into southbridges on PC
motherboards.
Enable this configuration option if you want to run Linux inside
a USB peripheral device. Configure one hardware driver for your
peripheral/device side bus controller, and a "gadget driver" for
your peripheral protocol. (If you use modular gadget drivers,
you may configure more than one.)
If in doubt, say "N" and don't enable these drivers; most people
don't have this kind of hardware (except maybe inside Linux PDAs).
For more information, see <http://www.linux-usb.org/gadget> and
the kernel DocBook documentation for this API.
host (such as a PC) controlling up to 127 peripheral devices.
The USB hardware is asymmetric, which makes it easier to set up:
you can't connect a "to-the-host" connector to a peripheral.
Linux can run in the host, or in the peripheral. In both cases
you need a low level bus controller driver, and some software
talking to it. Peripheral controllers are often discrete silicon,
or are integrated with the CPU in a microcontroller. The more
familiar host side controllers have names like "EHCI", "OHCI",
or "UHCI", and are usually integrated into southbridges on PC
motherboards.
Enable this configuration option if you want to run Linux inside
a USB peripheral device. Configure one hardware driver for your
peripheral/device side bus controller, and a "gadget driver" for
your peripheral protocol. (If you use modular gadget drivers,
you may configure more than one.)
If in doubt, say "N" and don't enable these drivers; most people
don't have this kind of hardware (except maybe inside Linux PDAs).
For more information, see <http://www.linux-usb.org/gadget> and
the kernel DocBook documentation for this API.
is selected by
CONFIG_USB_DWC3CONFIG_USB_CHIPIDEA_UDC
CONFIG_USB_LPC32XX
CONFIG_USB_ATMEL_USBA
CONFIG_USB_FSL_USB2
CONFIG_USB_FUSB300
CONFIG_USB_OMAP
CONFIG_USB_PXA25X
CONFIG_USB_R8A66597
CONFIG_USB_RENESAS_USBHS_UDC
CONFIG_USB_PXA27X
CONFIG_USB_S3C_HSOTG
CONFIG_USB_S3C_HSUDC
CONFIG_USB_MV_UDC
CONFIG_USB_GADGET_MUSB_HDRC
CONFIG_USB_M66592
CONFIG_USB_AMD5536UDC
CONFIG_USB_NET2272
CONFIG_USB_NET2280
CONFIG_USB_EG20T
CONFIG_USB_DUMMY_HCD
CONFIG_USB_DUMMY_HCD
CONFIG_USB_ULPI
CONFIG_TWL6030_USB
CONFIG_USB_MSM_OTG
CONFIG_AB8500_USB
CONFIG_FSL_USB2_OTG
CONFIG_USB_MV_OTG