Name
USB_GADGET — Support for USB Gadgets
Description
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 that talks
to it. Peripheral controllers can be either discrete silicon or
integrated with the CPU in a microcontroller. The more familiar
host side controllers have names like such as 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 no and don't enable these drivers; most people
don't have this kind of hardware (except maybe inside Linux PDAs).
For more information, see
https://www.linux-usb.org/gadget
and the kernel DocBook documentation for this API.