xref: /openbmc/u-boot/drivers/usb/gadget/Kconfig (revision f221db0e)
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