xref: /openbmc/u-boot/drivers/usb/gadget/Kconfig (revision f9d0fd8a)
1*f9d0fd8aSSam Protsenko#
2*f9d0fd8aSSam Protsenko# USB Gadget support on a system involves
3*f9d0fd8aSSam Protsenko#    (a) a peripheral controller, and
4*f9d0fd8aSSam Protsenko#    (b) the gadget driver using it.
5*f9d0fd8aSSam Protsenko#
6*f9d0fd8aSSam Protsenko# NOTE:  Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
7*f9d0fd8aSSam Protsenko#
8*f9d0fd8aSSam Protsenko#  - Host systems (like PCs) need CONFIG_USB (with "A" jacks).
9*f9d0fd8aSSam Protsenko#  - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks).
10*f9d0fd8aSSam Protsenko#  - Some systems have both kinds of controllers.
11*f9d0fd8aSSam Protsenko#
12*f9d0fd8aSSam Protsenko# With help from a special transceiver and a "Mini-AB" jack, systems with
13*f9d0fd8aSSam Protsenko# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG).
14*f9d0fd8aSSam Protsenko#
15*f9d0fd8aSSam Protsenko
16*f9d0fd8aSSam Protsenkomenuconfig USB_GADGET
17*f9d0fd8aSSam Protsenko	bool "USB Gadget Support"
18*f9d0fd8aSSam Protsenko	help
19*f9d0fd8aSSam Protsenko	   USB is a master/slave protocol, organized with one master
20*f9d0fd8aSSam Protsenko	   host (such as a PC) controlling up to 127 peripheral devices.
21*f9d0fd8aSSam Protsenko	   The USB hardware is asymmetric, which makes it easier to set up:
22*f9d0fd8aSSam Protsenko	   you can't connect a "to-the-host" connector to a peripheral.
23*f9d0fd8aSSam Protsenko
24*f9d0fd8aSSam Protsenko	   U-Boot can run in the host, or in the peripheral.  In both cases
25*f9d0fd8aSSam Protsenko	   you need a low level bus controller driver, and some software
26*f9d0fd8aSSam Protsenko	   talking to it.  Peripheral controllers are often discrete silicon,
27*f9d0fd8aSSam Protsenko	   or are integrated with the CPU in a microcontroller.  The more
28*f9d0fd8aSSam Protsenko	   familiar host side controllers have names like "EHCI", "OHCI",
29*f9d0fd8aSSam Protsenko	   or "UHCI", and are usually integrated into southbridges on PC
30*f9d0fd8aSSam Protsenko	   motherboards.
31*f9d0fd8aSSam Protsenko
32*f9d0fd8aSSam Protsenko	   Enable this configuration option if you want to run U-Boot inside
33*f9d0fd8aSSam Protsenko	   a USB peripheral device.  Configure one hardware driver for your
34*f9d0fd8aSSam Protsenko	   peripheral/device side bus controller, and a "gadget driver" for
35*f9d0fd8aSSam Protsenko	   your peripheral protocol.
36