Paul Kocialkowski | 68f7c5d | 2015-08-04 17:04:05 +0200 | [diff] [blame] | 1 | menuconfig USB |
| 2 | bool "USB support" |
Masahiro Yamada | 6e7e929 | 2014-11-07 18:48:31 +0900 | [diff] [blame] | 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 | |
Paul Kocialkowski | 68f7c5d | 2015-08-04 17:04:05 +0200 | [diff] [blame] | 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 |
Masahiro Yamada | 6e7e929 | 2014-11-07 18:48:31 +0900 | [diff] [blame] | 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 | |
| 34 | if USB |
| 35 | |
Simon Glass | de31213 | 2015-03-25 12:21:59 -0600 | [diff] [blame] | 36 | config DM_USB |
Tom Rini | be5c060 | 2021-07-09 10:11:56 -0400 | [diff] [blame] | 37 | bool |
| 38 | depends on DM && OF_CONTROL |
Simon Glass | de31213 | 2015-03-25 12:21:59 -0600 | [diff] [blame] | 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 |
Marcin Juszkiewicz | d67df1e | 2020-05-26 19:07:16 +0200 | [diff] [blame] | 42 | (XHCI, EHCI, OHCI) can be attached and used. The 'usb' command works |
| 43 | as normal. |
Simon Glass | de31213 | 2015-03-25 12:21:59 -0600 | [diff] [blame] | 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 |
Simon Glass | abb59cf | 2015-07-06 16:47:51 -0600 | [diff] [blame] | 47 | declared with the U_BOOT_USB_DEVICE() macro and will be |
| 48 | automatically probed when found on the bus. |
Simon Glass | de31213 | 2015-03-25 12:21:59 -0600 | [diff] [blame] | 49 | |
Sven Schwermer | 41a25f4 | 2018-11-21 08:43:53 +0100 | [diff] [blame] | 50 | config SPL_DM_USB |
Fabio Estevam | c6ab91c | 2022-09-17 20:28:29 -0300 | [diff] [blame] | 51 | bool "Enable driver model for USB host mode in SPL" |
Martyn Welch | 16ecb29 | 2018-12-10 11:05:16 +0000 | [diff] [blame] | 52 | depends on SPL_DM && DM_USB |
Pali Rohár | 35ed176 | 2022-05-24 10:58:42 +0200 | [diff] [blame] | 53 | default n if ARCH_MVEBU |
Sven Schwermer | 41a25f4 | 2018-11-21 08:43:53 +0100 | [diff] [blame] | 54 | default y |
| 55 | |
Jean-Jacques Hiblot | 687ab54 | 2018-11-29 10:52:42 +0100 | [diff] [blame] | 56 | config 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 | |
| 63 | config SPL_DM_USB_GADGET |
Marc Ferland | acff02c | 2020-12-23 10:13:22 -0500 | [diff] [blame] | 64 | bool "Enable driver model for USB Gadget in SPL" |
Jean-Jacques Hiblot | 687ab54 | 2018-11-29 10:52:42 +0100 | [diff] [blame] | 65 | depends on SPL_DM_USB |
| 66 | help |
| 67 | Enable driver model for USB Gadget in SPL |
| 68 | (Peripheral mode) |
| 69 | |
Masahiro Yamada | 6e7e929 | 2014-11-07 18:48:31 +0900 | [diff] [blame] | 70 | source "drivers/usb/host/Kconfig" |
| 71 | |
Rui Miguel Silva | 88861a2 | 2022-06-29 11:06:15 +0100 | [diff] [blame] | 72 | source "drivers/usb/isp1760/Kconfig" |
| 73 | |
Vignesh Raghavendra | 7e91f6c | 2019-10-01 17:26:33 +0530 | [diff] [blame] | 74 | source "drivers/usb/cdns3/Kconfig" |
| 75 | |
Sam Protsenko | 3457bba | 2016-04-13 14:20:25 +0300 | [diff] [blame] | 76 | source "drivers/usb/dwc3/Kconfig" |
| 77 | |
Chunfeng Yun | e09b88c | 2020-10-16 11:38:39 +0800 | [diff] [blame] | 78 | source "drivers/usb/mtu3/Kconfig" |
| 79 | |
Adam Ford | e13a9dc | 2017-12-29 09:15:41 -0600 | [diff] [blame] | 80 | source "drivers/usb/musb/Kconfig" |
| 81 | |
Paul Kocialkowski | 5d6c2f4 | 2015-08-04 17:04:07 +0200 | [diff] [blame] | 82 | source "drivers/usb/musb-new/Kconfig" |
| 83 | |
Simon Glass | 019808f | 2015-03-25 12:22:37 -0600 | [diff] [blame] | 84 | source "drivers/usb/emul/Kconfig" |
| 85 | |
Adam Ford | 3b9e2a2 | 2018-01-02 10:38:36 -0600 | [diff] [blame] | 86 | source "drivers/usb/phy/Kconfig" |
| 87 | |
Mateusz Kulikowski | 6b14fbb | 2016-03-31 23:12:18 +0200 | [diff] [blame] | 88 | source "drivers/usb/ulpi/Kconfig" |
| 89 | |
Tom Rini | be5c060 | 2021-07-09 10:11:56 -0400 | [diff] [blame] | 90 | if USB_HOST |
| 91 | |
Paul Kocialkowski | 68f7c5d | 2015-08-04 17:04:05 +0200 | [diff] [blame] | 92 | comment "USB peripherals" |
| 93 | |
Masahiro Yamada | 6e7e929 | 2014-11-07 18:48:31 +0900 | [diff] [blame] | 94 | config 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 | |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 100 | config USB_KEYBOARD |
| 101 | bool "USB Keyboard support" |
Heinrich Schuchardt | 795d605 | 2021-02-28 12:50:49 +0100 | [diff] [blame] | 102 | select DM_KEYBOARD if DM_USB |
Heinrich Schuchardt | 462c117 | 2018-02-21 03:57:09 +0000 | [diff] [blame] | 103 | select SYS_STDIO_DEREGISTER |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 104 | ---help--- |
| 105 | Say Y here if you want to use a USB keyboard for U-Boot command line |
| 106 | input. |
| 107 | |
Fabrice Gasnier | ba1fa2a | 2022-12-12 11:44:35 +0100 | [diff] [blame] | 108 | config 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 | |
Heinrich Schuchardt | 4042ce7 | 2023-01-25 19:40:16 +0100 | [diff] [blame] | 118 | config 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 | |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 129 | if USB_KEYBOARD |
| 130 | |
Heinrich Schuchardt | 87e91bc | 2019-11-23 18:15:21 +0100 | [diff] [blame] | 131 | config 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 | |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 137 | choice |
| 138 | prompt "USB keyboard polling" |
Andre Przywara | 48313fe | 2020-02-20 17:51:14 +0000 | [diff] [blame] | 139 | default SYS_USB_EVENT_POLL_VIA_INT_QUEUE if ARCH_SUNXI |
Bin Meng | 2e5026a | 2017-09-13 01:19:43 -0700 | [diff] [blame] | 140 | default SYS_USB_EVENT_POLL |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 141 | ---help--- |
| 142 | Enable a polling mechanism for USB keyboard. |
| 143 | |
Ruben Di Battista | 67e62c7 | 2020-08-06 12:12:30 +0200 | [diff] [blame] | 144 | config SYS_USB_EVENT_POLL |
| 145 | bool "Interrupt polling" |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 146 | |
Ruben Di Battista | 67e62c7 | 2020-08-06 12:12:30 +0200 | [diff] [blame] | 147 | config SYS_USB_EVENT_POLL_VIA_INT_QUEUE |
| 148 | bool "Poll via interrupt queue" |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 149 | |
Ruben Di Battista | 67e62c7 | 2020-08-06 12:12:30 +0200 | [diff] [blame] | 150 | config SYS_USB_EVENT_POLL_VIA_CONTROL_EP |
| 151 | bool "Poll via control EP" |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 152 | |
| 153 | endchoice |
| 154 | |
Masahiro Yamada | 6e7e929 | 2014-11-07 18:48:31 +0900 | [diff] [blame] | 155 | endif |
Nikita Kiryanov | b2f2eea | 2015-07-23 17:19:36 +0300 | [diff] [blame] | 156 | |
Yuiko Oshino | d2c3197 | 2017-08-11 12:44:58 -0400 | [diff] [blame] | 157 | source "drivers/usb/eth/Kconfig" |
| 158 | |
Masahiro Yamada | ed36323 | 2014-09-16 16:32:58 +0900 | [diff] [blame] | 159 | endif |
Tom Rini | be5c060 | 2021-07-09 10:11:56 -0400 | [diff] [blame] | 160 | |
| 161 | source "drivers/usb/gadget/Kconfig" |
| 162 | |
| 163 | endif |