1f9d0fd8aSSam Protsenko# 2f9d0fd8aSSam Protsenko# USB Gadget support on a system involves 3f9d0fd8aSSam Protsenko# (a) a peripheral controller, and 4f9d0fd8aSSam Protsenko# (b) the gadget driver using it. 5f9d0fd8aSSam Protsenko# 6f9d0fd8aSSam Protsenko# NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 7f9d0fd8aSSam Protsenko# 8f9d0fd8aSSam Protsenko# - Host systems (like PCs) need CONFIG_USB (with "A" jacks). 9f9d0fd8aSSam Protsenko# - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks). 10f9d0fd8aSSam Protsenko# - Some systems have both kinds of controllers. 11f9d0fd8aSSam Protsenko# 12f9d0fd8aSSam Protsenko# With help from a special transceiver and a "Mini-AB" jack, systems with 13f9d0fd8aSSam Protsenko# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). 14f9d0fd8aSSam Protsenko# 15f9d0fd8aSSam Protsenko 16f9d0fd8aSSam Protsenkomenuconfig USB_GADGET 17f9d0fd8aSSam Protsenko bool "USB Gadget Support" 18f9d0fd8aSSam Protsenko help 19f9d0fd8aSSam Protsenko USB is a master/slave protocol, organized with one master 20f9d0fd8aSSam Protsenko host (such as a PC) controlling up to 127 peripheral devices. 21f9d0fd8aSSam Protsenko The USB hardware is asymmetric, which makes it easier to set up: 22f9d0fd8aSSam Protsenko you can't connect a "to-the-host" connector to a peripheral. 23f9d0fd8aSSam Protsenko 24f9d0fd8aSSam Protsenko U-Boot can run in the host, or in the peripheral. In both cases 25f9d0fd8aSSam Protsenko you need a low level bus controller driver, and some software 26f9d0fd8aSSam Protsenko talking to it. Peripheral controllers are often discrete silicon, 27f9d0fd8aSSam Protsenko or are integrated with the CPU in a microcontroller. The more 28f9d0fd8aSSam Protsenko familiar host side controllers have names like "EHCI", "OHCI", 29f9d0fd8aSSam Protsenko or "UHCI", and are usually integrated into southbridges on PC 30f9d0fd8aSSam Protsenko motherboards. 31f9d0fd8aSSam Protsenko 32f9d0fd8aSSam Protsenko Enable this configuration option if you want to run U-Boot inside 33f9d0fd8aSSam Protsenko a USB peripheral device. Configure one hardware driver for your 34f9d0fd8aSSam Protsenko peripheral/device side bus controller, and a "gadget driver" for 35f9d0fd8aSSam Protsenko your peripheral protocol. 36a59a77f8SSam Protsenko 37a59a77f8SSam Protsenkoif USB_GADGET 38a59a77f8SSam Protsenko 393457bbafSSam Protsenkoconfig USB_GADGET_ATMEL_USBA 403457bbafSSam Protsenko bool "Atmel USBA" 413457bbafSSam Protsenko select USB_GADGET_DUALSPEED 423457bbafSSam Protsenko help 433457bbafSSam Protsenko USBA is the integrated high-speed USB Device controller on 443457bbafSSam Protsenko the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel. 453457bbafSSam Protsenko 463457bbafSSam Protsenkoconfig USB_GADGET_DWC2_OTG 473457bbafSSam Protsenko bool "DesignWare USB2.0 HS OTG controller (gadget mode)" 483457bbafSSam Protsenko select USB_GADGET_DUALSPEED 493457bbafSSam Protsenko help 503457bbafSSam Protsenko The Designware USB2.0 high-speed gadget controller 513457bbafSSam Protsenko integrated into many SoCs. Select this option if you want the 523457bbafSSam Protsenko driver to operate in Peripheral mode. This option requires 533457bbafSSam Protsenko USB_GADGET to be enabled. 543457bbafSSam Protsenko 55*f221db0eSSteve Raeif USB_GADGET_DWC2_OTG 56*f221db0eSSteve Rae 57*f221db0eSSteve Raeconfig USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 58*f221db0eSSteve Rae bool "DesignWare USB2.0 HS OTG controller 8-bit PHY bus width" 59*f221db0eSSteve Rae help 60*f221db0eSSteve Rae Set the Designware USB2.0 high-speed OTG controller 61*f221db0eSSteve Rae PHY interface width to 8 bits, rather than the default (16 bits). 62*f221db0eSSteve Rae 63*f221db0eSSteve Raeendif # USB_GADGET_DWC2_OTG 64*f221db0eSSteve Rae 653457bbafSSam Protsenkoconfig CI_UDC 663457bbafSSam Protsenko bool "ChipIdea device controller" 673457bbafSSam Protsenko select USB_GADGET_DUALSPEED 683457bbafSSam Protsenko help 693457bbafSSam Protsenko Say Y here to enable device controller functionality of the 703457bbafSSam Protsenko ChipIdea driver. 713457bbafSSam Protsenko 72a59a77f8SSam Protsenkoconfig USB_GADGET_VBUS_DRAW 73a59a77f8SSam Protsenko int "Maximum VBUS Power usage (2-500 mA)" 74a59a77f8SSam Protsenko range 2 500 75a59a77f8SSam Protsenko default 2 76a59a77f8SSam Protsenko help 77a59a77f8SSam Protsenko Some devices need to draw power from USB when they are 78a59a77f8SSam Protsenko configured, perhaps to operate circuitry or to recharge 79a59a77f8SSam Protsenko batteries. This is in addition to any local power supply, 80a59a77f8SSam Protsenko such as an AC adapter or batteries. 81a59a77f8SSam Protsenko 82a59a77f8SSam Protsenko Enter the maximum power your device draws through USB, in 83a59a77f8SSam Protsenko milliAmperes. The permitted range of values is 2 - 500 mA; 84a59a77f8SSam Protsenko 0 mA would be legal, but can make some hosts misbehave. 85a59a77f8SSam Protsenko 86a59a77f8SSam Protsenko This value will be used except for system-specific gadget 87a59a77f8SSam Protsenko drivers that have more specific information. 88a59a77f8SSam Protsenko 893457bbafSSam Protsenko# Selected by UDC drivers that support high-speed operation. 903457bbafSSam Protsenkoconfig USB_GADGET_DUALSPEED 913457bbafSSam Protsenko bool 923457bbafSSam Protsenko 93aaa4a9e3SSam Protsenkoconfig USB_GADGET_DOWNLOAD 94aaa4a9e3SSam Protsenko bool "Enable USB download gadget" 95aaa4a9e3SSam Protsenko help 96aaa4a9e3SSam Protsenko Composite USB download gadget support (g_dnl) for download functions. 97aaa4a9e3SSam Protsenko This code works on top of composite gadget. 98aaa4a9e3SSam Protsenko 99e6c0bc06SSam Protsenkoif USB_GADGET_DOWNLOAD 100e6c0bc06SSam Protsenko 101e6c0bc06SSam Protsenkoconfig G_DNL_MANUFACTURER 102e6c0bc06SSam Protsenko string "Vendor name of USB device" 103e6c0bc06SSam Protsenko 104e6c0bc06SSam Protsenkoconfig G_DNL_VENDOR_NUM 105e6c0bc06SSam Protsenko hex "Vendor ID of USB device" 106e6c0bc06SSam Protsenko 107e6c0bc06SSam Protsenkoconfig G_DNL_PRODUCT_NUM 108e6c0bc06SSam Protsenko hex "Product ID of USB device" 109e6c0bc06SSam Protsenko 110e6c0bc06SSam Protsenkoendif # USB_GADGET_DOWNLOAD 111e6c0bc06SSam Protsenko 112a59a77f8SSam Protsenkoendif # USB_GADGET 113