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