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