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 | |
Steve Rae | e016f0b | 2016-08-15 17:26:26 -0700 | [diff] [blame] | 46 | config USB_GADGET_BCM_UDC_OTG_PHY |
| 47 | bool "Broadcom UDC OTG PHY" |
| 48 | help |
| 49 | Enable the Broadcom UDC OTG physical device interface. |
| 50 | |
Sam Protsenko | 3457bba | 2016-04-13 14:20:25 +0300 | [diff] [blame] | 51 | config USB_GADGET_DWC2_OTG |
| 52 | bool "DesignWare USB2.0 HS OTG controller (gadget mode)" |
| 53 | select USB_GADGET_DUALSPEED |
| 54 | help |
| 55 | The Designware USB2.0 high-speed gadget controller |
| 56 | integrated into many SoCs. Select this option if you want the |
| 57 | driver to operate in Peripheral mode. This option requires |
| 58 | USB_GADGET to be enabled. |
| 59 | |
Steve Rae | f221db0 | 2016-06-07 15:35:21 -0700 | [diff] [blame] | 60 | if USB_GADGET_DWC2_OTG |
| 61 | |
| 62 | config USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 |
| 63 | bool "DesignWare USB2.0 HS OTG controller 8-bit PHY bus width" |
| 64 | help |
| 65 | Set the Designware USB2.0 high-speed OTG controller |
| 66 | PHY interface width to 8 bits, rather than the default (16 bits). |
| 67 | |
| 68 | endif # USB_GADGET_DWC2_OTG |
| 69 | |
Sam Protsenko | 3457bba | 2016-04-13 14:20:25 +0300 | [diff] [blame] | 70 | config CI_UDC |
| 71 | bool "ChipIdea device controller" |
| 72 | select USB_GADGET_DUALSPEED |
| 73 | help |
| 74 | Say Y here to enable device controller functionality of the |
| 75 | ChipIdea driver. |
| 76 | |
Sam Protsenko | a59a77f | 2016-04-13 14:20:24 +0300 | [diff] [blame] | 77 | config USB_GADGET_VBUS_DRAW |
| 78 | int "Maximum VBUS Power usage (2-500 mA)" |
| 79 | range 2 500 |
| 80 | default 2 |
| 81 | help |
| 82 | Some devices need to draw power from USB when they are |
| 83 | configured, perhaps to operate circuitry or to recharge |
| 84 | batteries. This is in addition to any local power supply, |
| 85 | such as an AC adapter or batteries. |
| 86 | |
| 87 | Enter the maximum power your device draws through USB, in |
| 88 | milliAmperes. The permitted range of values is 2 - 500 mA; |
| 89 | 0 mA would be legal, but can make some hosts misbehave. |
| 90 | |
| 91 | This value will be used except for system-specific gadget |
| 92 | drivers that have more specific information. |
| 93 | |
Sam Protsenko | 3457bba | 2016-04-13 14:20:25 +0300 | [diff] [blame] | 94 | # Selected by UDC drivers that support high-speed operation. |
| 95 | config USB_GADGET_DUALSPEED |
| 96 | bool |
| 97 | |
Sam Protsenko | aaa4a9e | 2016-04-13 14:20:26 +0300 | [diff] [blame] | 98 | config USB_GADGET_DOWNLOAD |
| 99 | bool "Enable USB download gadget" |
| 100 | help |
| 101 | Composite USB download gadget support (g_dnl) for download functions. |
| 102 | This code works on top of composite gadget. |
| 103 | |
Sam Protsenko | e6c0bc0 | 2016-04-13 14:20:30 +0300 | [diff] [blame] | 104 | if USB_GADGET_DOWNLOAD |
| 105 | |
| 106 | config G_DNL_MANUFACTURER |
| 107 | string "Vendor name of USB device" |
| 108 | |
| 109 | config G_DNL_VENDOR_NUM |
| 110 | hex "Vendor ID of USB device" |
| 111 | |
| 112 | config G_DNL_PRODUCT_NUM |
| 113 | hex "Product ID of USB device" |
| 114 | |
| 115 | endif # USB_GADGET_DOWNLOAD |
| 116 | |
Sam Protsenko | a59a77f | 2016-04-13 14:20:24 +0300 | [diff] [blame] | 117 | endif # USB_GADGET |