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