Sam Protsenko | f9d0fd8 | 2016-03-25 16:39:47 +0200 | [diff] [blame] | 1 | # |
| 2 | # USB Gadget support on a system involves |
| 3 | # (a) a peripheral controller, and |
| 4 | # (b) the gadget driver using it. |
| 5 | # |
| 6 | # NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! |
| 7 | # |
| 8 | # - Host systems (like PCs) need CONFIG_USB (with "A" jacks). |
| 9 | # - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks). |
| 10 | # - Some systems have both kinds of controllers. |
| 11 | # |
| 12 | # With help from a special transceiver and a "Mini-AB" jack, systems with |
| 13 | # both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). |
| 14 | # |
| 15 | |
| 16 | menuconfig USB_GADGET |
| 17 | bool "USB Gadget Support" |
| 18 | help |
| 19 | USB is a master/slave protocol, organized with one master |
| 20 | host (such as a PC) controlling up to 127 peripheral devices. |
| 21 | The USB hardware is asymmetric, which makes it easier to set up: |
| 22 | you can't connect a "to-the-host" connector to a peripheral. |
| 23 | |
| 24 | U-Boot can run in the host, or in the peripheral. In both cases |
| 25 | you need a low level bus controller driver, and some software |
| 26 | talking to it. Peripheral controllers are often discrete silicon, |
| 27 | or are integrated with the CPU in a microcontroller. The more |
| 28 | familiar host side controllers have names like "EHCI", "OHCI", |
| 29 | or "UHCI", and are usually integrated into southbridges on PC |
| 30 | motherboards. |
| 31 | |
| 32 | Enable this configuration option if you want to run U-Boot inside |
| 33 | a USB peripheral device. Configure one hardware driver for your |
| 34 | peripheral/device side bus controller, and a "gadget driver" for |
| 35 | your peripheral protocol. |
Sam Protsenko | a59a77f | 2016-04-13 14:20:24 +0300 | [diff] [blame] | 36 | |
| 37 | if USB_GADGET |
| 38 | |
Sam Protsenko | 3457bba | 2016-04-13 14:20:25 +0300 | [diff] [blame^] | 39 | config USB_GADGET_ATMEL_USBA |
| 40 | bool "Atmel USBA" |
| 41 | select USB_GADGET_DUALSPEED |
| 42 | help |
| 43 | USBA is the integrated high-speed USB Device controller on |
| 44 | the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel. |
| 45 | |
| 46 | config USB_GADGET_DWC2_OTG |
| 47 | bool "DesignWare USB2.0 HS OTG controller (gadget mode)" |
| 48 | select USB_GADGET_DUALSPEED |
| 49 | help |
| 50 | The Designware USB2.0 high-speed gadget controller |
| 51 | integrated into many SoCs. Select this option if you want the |
| 52 | driver to operate in Peripheral mode. This option requires |
| 53 | USB_GADGET to be enabled. |
| 54 | |
| 55 | config CI_UDC |
| 56 | bool "ChipIdea device controller" |
| 57 | select USB_GADGET_DUALSPEED |
| 58 | help |
| 59 | Say Y here to enable device controller functionality of the |
| 60 | ChipIdea driver. |
| 61 | |
Sam Protsenko | a59a77f | 2016-04-13 14:20:24 +0300 | [diff] [blame] | 62 | config USB_GADGET_VBUS_DRAW |
| 63 | int "Maximum VBUS Power usage (2-500 mA)" |
| 64 | range 2 500 |
| 65 | default 2 |
| 66 | help |
| 67 | Some devices need to draw power from USB when they are |
| 68 | configured, perhaps to operate circuitry or to recharge |
| 69 | batteries. This is in addition to any local power supply, |
| 70 | such as an AC adapter or batteries. |
| 71 | |
| 72 | Enter the maximum power your device draws through USB, in |
| 73 | milliAmperes. The permitted range of values is 2 - 500 mA; |
| 74 | 0 mA would be legal, but can make some hosts misbehave. |
| 75 | |
| 76 | This value will be used except for system-specific gadget |
| 77 | drivers that have more specific information. |
| 78 | |
Sam Protsenko | 3457bba | 2016-04-13 14:20:25 +0300 | [diff] [blame^] | 79 | # Selected by UDC drivers that support high-speed operation. |
| 80 | config USB_GADGET_DUALSPEED |
| 81 | bool |
| 82 | |
Sam Protsenko | a59a77f | 2016-04-13 14:20:24 +0300 | [diff] [blame] | 83 | endif # USB_GADGET |