xref: /OK3568_Linux_fs/u-boot/drivers/usb/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunmenuconfig USB
2*4882a593Smuzhiyun	bool "USB support"
3*4882a593Smuzhiyun	---help---
4*4882a593Smuzhiyun	  Universal Serial Bus (USB) is a specification for a serial bus
5*4882a593Smuzhiyun	  subsystem which offers higher speeds and more features than the
6*4882a593Smuzhiyun	  traditional PC serial port.  The bus supplies power to peripherals
7*4882a593Smuzhiyun	  and allows for hot swapping.  Up to 127 USB peripherals can be
8*4882a593Smuzhiyun	  connected to a single USB host in a tree structure.
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun	  The USB host is the root of the tree, the peripherals are the
11*4882a593Smuzhiyun	  leaves and the inner nodes are special USB devices called hubs.
12*4882a593Smuzhiyun	  Most PCs now have USB host ports, used to connect peripherals
13*4882a593Smuzhiyun	  such as scanners, keyboards, mice, modems, cameras, disks,
14*4882a593Smuzhiyun	  flash memory, network links, and printers to the PC.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	  Say Y here if your device has an USB port, either host, peripheral or
17*4882a593Smuzhiyun	  dual-role.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	  For an USB host port, you then need to say Y to at least one of the
20*4882a593Smuzhiyun	  Host Controller Driver (HCD) options below.  Choose a USB 1.1
21*4882a593Smuzhiyun	  controller, such as "UHCI HCD support" or "OHCI HCD support",
22*4882a593Smuzhiyun	  and "EHCI HCD (USB 2.0) support" except for older systems that
23*4882a593Smuzhiyun	  do not have USB 2.0 support.  It doesn't normally hurt to select
24*4882a593Smuzhiyun	  them all if you are not certain.
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	  If your system has a device-side USB port, used in the peripheral
27*4882a593Smuzhiyun	  side of the USB protocol, see the "USB Gadget" framework instead.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	  After choosing your HCD, then select drivers for the USB peripherals
30*4882a593Smuzhiyun	  you'll be using.  You may want to check out the information provided
31*4882a593Smuzhiyun	  in <file:Documentation/usb/> and especially the links given in
32*4882a593Smuzhiyun	  <file:Documentation/usb/usb-help.txt>.
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunif USB
35*4882a593Smuzhiyun
36*4882a593Smuzhiyunconfig DM_USB
37*4882a593Smuzhiyun	bool "Enable driver model for USB"
38*4882a593Smuzhiyun	depends on USB && DM
39*4882a593Smuzhiyun	help
40*4882a593Smuzhiyun	  Enable driver model for USB. The USB interface is then implemented
41*4882a593Smuzhiyun	  by the USB uclass. Multiple USB controllers of different types
42*4882a593Smuzhiyun	  (XHCI, EHCI) can be attached and used. The 'usb' command works as
43*4882a593Smuzhiyun	  normal. OCHI is not supported at present.
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	  Much of the code is shared but with this option enabled the USB
46*4882a593Smuzhiyun	  uclass takes care of device enumeration. USB devices can be
47*4882a593Smuzhiyun	  declared with the U_BOOT_USB_DEVICE() macro and will be
48*4882a593Smuzhiyun	  automatically probed when found on the bus.
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig SPL_DM_USB
51*4882a593Smuzhiyun	bool "Enable driver model for USB in SPL"
52*4882a593Smuzhiyun	depends on SPL_DM && DM_USB
53*4882a593Smuzhiyun	default y
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig DM_USB_GADGET
56*4882a593Smuzhiyun	bool "Enable driver model for USB Gadget"
57*4882a593Smuzhiyun	depends on DM_USB
58*4882a593Smuzhiyun	help
59*4882a593Smuzhiyun	  Enable driver model for USB Gadget (Peripheral
60*4882a593Smuzhiyun	  mode)
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunconfig SPL_DM_USB_GADGET
63*4882a593Smuzhiyun	bool "Enable driver model for USB Gadget in sPL"
64*4882a593Smuzhiyun	depends on SPL_DM_USB
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  Enable driver model for USB Gadget in SPL
67*4882a593Smuzhiyun	  (Peripheral mode)
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunsource "drivers/usb/host/Kconfig"
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunsource "drivers/usb/cdns3/Kconfig"
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunsource "drivers/usb/dwc3/Kconfig"
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunsource "drivers/usb/musb-new/Kconfig"
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunsource "drivers/usb/emul/Kconfig"
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunsource "drivers/usb/ulpi/Kconfig"
80*4882a593Smuzhiyun
81*4882a593Smuzhiyuncomment "USB peripherals"
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunconfig USB_STORAGE
84*4882a593Smuzhiyun	bool "USB Mass Storage support"
85*4882a593Smuzhiyun	depends on !(BLK && !DM_USB)
86*4882a593Smuzhiyun	---help---
87*4882a593Smuzhiyun	  Say Y here if you want to connect USB mass storage devices to your
88*4882a593Smuzhiyun	  board's USB port.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunconfig USB_KEYBOARD
91*4882a593Smuzhiyun	bool "USB Keyboard support"
92*4882a593Smuzhiyun	select SYS_STDIO_DEREGISTER
93*4882a593Smuzhiyun	---help---
94*4882a593Smuzhiyun	  Say Y here if you want to use a USB keyboard for U-Boot command line
95*4882a593Smuzhiyun	  input.
96*4882a593Smuzhiyun
97*4882a593Smuzhiyunif USB_KEYBOARD
98*4882a593Smuzhiyun
99*4882a593Smuzhiyunconfig USB_KEYBOARD_FN_KEYS
100*4882a593Smuzhiyun	bool "USB keyboard function key support"
101*4882a593Smuzhiyun	help
102*4882a593Smuzhiyun	  Say Y here if you want support for keys F1 - F12, INS, HOME, DELETE,
103*4882a593Smuzhiyun	  END, PAGE UP, and PAGE DOWN.
104*4882a593Smuzhiyun
105*4882a593Smuzhiyunchoice
106*4882a593Smuzhiyun	prompt "USB keyboard polling"
107*4882a593Smuzhiyun	default SYS_USB_EVENT_POLL
108*4882a593Smuzhiyun	---help---
109*4882a593Smuzhiyun	  Enable a polling mechanism for USB keyboard.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	config SYS_USB_EVENT_POLL
112*4882a593Smuzhiyun		bool "Interrupt polling"
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun	config SYS_USB_EVENT_POLL_VIA_INT_QUEUE
115*4882a593Smuzhiyun		bool "Poll via interrupt queue"
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun	config SYS_USB_EVENT_POLL_VIA_CONTROL_EP
118*4882a593Smuzhiyun		bool "Poll via control EP"
119*4882a593Smuzhiyun
120*4882a593Smuzhiyunendchoice
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunendif
123*4882a593Smuzhiyun
124*4882a593Smuzhiyunsource "drivers/usb/gadget/Kconfig"
125*4882a593Smuzhiyun
126*4882a593Smuzhiyunsource "drivers/usb/eth/Kconfig"
127*4882a593Smuzhiyun
128*4882a593Smuzhiyunendif
129