1menuconfig USB
2	bool "USB support"
3	select BLK
4	---help---
5	  Universal Serial Bus (USB) is a specification for a serial bus
6	  subsystem which offers higher speeds and more features than the
7	  traditional PC serial port.  The bus supplies power to peripherals
8	  and allows for hot swapping.  Up to 127 USB peripherals can be
9	  connected to a single USB host in a tree structure.
10
11	  The USB host is the root of the tree, the peripherals are the
12	  leaves and the inner nodes are special USB devices called hubs.
13	  Most PCs now have USB host ports, used to connect peripherals
14	  such as scanners, keyboards, mice, modems, cameras, disks,
15	  flash memory, network links, and printers to the PC.
16
17	  Say Y here if your device has an USB port, either host, peripheral or
18	  dual-role.
19
20	  For an USB host port, you then need to say Y to at least one of the
21	  Host Controller Driver (HCD) options below.  Choose a USB 1.1
22	  controller, such as "UHCI HCD support" or "OHCI HCD support",
23	  and "EHCI HCD (USB 2.0) support" except for older systems that
24	  do not have USB 2.0 support.  It doesn't normally hurt to select
25	  them all if you are not certain.
26
27	  If your system has a device-side USB port, used in the peripheral
28	  side of the USB protocol, see the "USB Gadget" framework instead.
29
30	  After choosing your HCD, then select drivers for the USB peripherals
31	  you'll be using.  You may want to check out the information provided
32	  in <file:Documentation/usb/> and especially the links given in
33	  <file:Documentation/usb/usb-help.txt>.
34
35if USB
36
37config DM_USB
38	bool
39	depends on DM && OF_CONTROL
40	help
41	  Enable driver model for USB. The USB interface is then implemented
42	  by the USB uclass. Multiple USB controllers of different types
43	  (XHCI, EHCI, OHCI) can be attached and used. The 'usb' command works
44	  as normal.
45
46	  Much of the code is shared but with this option enabled the USB
47	  uclass takes care of device enumeration. USB devices can be
48	  declared with the U_BOOT_USB_DEVICE() macro and will be
49	  automatically probed when found on the bus.
50
51config SPL_DM_USB
52	bool "Enable driver model for USB host mode in SPL"
53	depends on SPL_DM && DM_USB
54	default n if ARCH_MVEBU
55	default y
56
57config DM_USB_GADGET
58	bool "Enable driver model for USB Gadget"
59	depends on DM_USB
60	help
61	  Enable driver model for USB Gadget (Peripheral
62	  mode)
63
64config SPL_DM_USB_GADGET
65	bool "Enable driver model for USB Gadget in SPL"
66	depends on SPL_DM_USB
67	help
68	  Enable driver model for USB Gadget in SPL
69	  (Peripheral mode)
70
71source "drivers/usb/host/Kconfig"
72
73source "drivers/usb/isp1760/Kconfig"
74
75source "drivers/usb/cdns3/Kconfig"
76
77source "drivers/usb/dwc3/Kconfig"
78
79source "drivers/usb/mtu3/Kconfig"
80
81source "drivers/usb/musb/Kconfig"
82
83source "drivers/usb/musb-new/Kconfig"
84
85source "drivers/usb/emul/Kconfig"
86
87source "drivers/usb/phy/Kconfig"
88
89source "drivers/usb/tcpm/Kconfig"
90
91source "drivers/usb/ulpi/Kconfig"
92
93if USB_HOST
94
95comment "USB peripherals"
96
97config USB_STORAGE
98	bool "USB Mass Storage support"
99	---help---
100	  Say Y here if you want to connect USB mass storage devices to your
101	  board's USB port.
102
103config USB_KEYBOARD
104	bool "USB Keyboard support"
105	depends on DM_USB
106	select DM_KEYBOARD
107	select SYS_STDIO_DEREGISTER
108	---help---
109	  Say Y here if you want to use a USB keyboard for U-Boot command line
110	  input.
111
112config USB_ONBOARD_HUB
113	bool "Onboard USB hub support"
114	depends on DM_USB
115	select DEVRES
116	---help---
117	  Say Y here if you want to support discrete onboard USB hubs that
118	  don't require an additional control bus for initialization, but
119	  need some non-trivial form of initialization, such as enabling a
120	  power regulator. An example for such a hub is the Microchip
121	  USB2514B.
122
123config USB_HUB_DEBOUNCE_TIMEOUT
124	int "Timeout in milliseconds for USB HUB connection"
125	default 1000
126	help
127	  Value in milliseconds of the USB connection timeout, the max delay to
128	  wait the hub port status to be connected steadily after being powered
129	  off and powered on in the usb hub driver.
130	  This define allows to increase the HUB_DEBOUNCE_TIMEOUT default
131	  value = 1s because some usb device needs around 1.5s to be initialized
132	  and a 2s value should solve detection issue on problematic USB keys.
133
134if SPL_USB_HOST
135
136comment "USB peripherals in SPL"
137
138config SPL_USB_STORAGE
139	bool "Support loading from USB"
140	help
141	  Enable support for USB devices in SPL. This allows use of USB
142	  devices such as hard drives and flash drivers for loading U-Boot.
143	  The actual drivers are enabled separately using the normal U-Boot
144	  config options. This enables loading from USB using a configured
145	  device.
146
147config SYS_USB_FAT_BOOT_PARTITION
148	int "Partition on USB to use to load U-Boot from"
149	depends on SPL_USB_STORAGE
150	default 1
151	help
152	  Partition on the USB storage device to load U-Boot from.
153
154endif
155
156if USB_KEYBOARD
157
158config USB_KEYBOARD_FN_KEYS
159	bool "USB keyboard function key support"
160	help
161	  Say Y here if you want support for keys F1 - F12, INS, HOME, DELETE,
162	  END, PAGE UP, and PAGE DOWN.
163
164choice
165	prompt "USB keyboard polling"
166	default SYS_USB_EVENT_POLL_VIA_INT_QUEUE if ARCH_SUNXI
167	default SYS_USB_EVENT_POLL
168	---help---
169	  Enable a polling mechanism for USB keyboard.
170
171config SYS_USB_EVENT_POLL
172    bool "Interrupt polling"
173
174config SYS_USB_EVENT_POLL_VIA_INT_QUEUE
175    bool "Poll via interrupt queue"
176
177config SYS_USB_EVENT_POLL_VIA_CONTROL_EP
178    bool "Poll via control EP"
179
180endchoice
181
182endif
183
184source "drivers/usb/eth/Kconfig"
185
186endif
187
188source "drivers/usb/gadget/Kconfig"
189
190endif
191