1cae8dc3bSGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# USB device configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 6900e0621SDavid Daneyconfig USB_OHCI_BIG_ENDIAN_DESC 7900e0621SDavid Daney bool 8900e0621SDavid Daney 9900e0621SDavid Daneyconfig USB_OHCI_BIG_ENDIAN_MMIO 10900e0621SDavid Daney bool 11900e0621SDavid Daney 12900e0621SDavid Daneyconfig USB_OHCI_LITTLE_ENDIAN 13900e0621SDavid Daney bool 14900e0621SDavid Daney default n if STB03xxx || PPC_MPC52xx 15900e0621SDavid Daney default y 16900e0621SDavid Daney 17900e0621SDavid Daneyconfig USB_EHCI_BIG_ENDIAN_MMIO 18900e0621SDavid Daney bool 19900e0621SDavid Daney 20900e0621SDavid Daneyconfig USB_EHCI_BIG_ENDIAN_DESC 21900e0621SDavid Daney bool 22900e0621SDavid Daney 23ec897569SJames Hoganconfig USB_UHCI_BIG_ENDIAN_MMIO 24ec897569SJames Hogan bool 25ec897569SJames Hogan 26ec897569SJames Hoganconfig USB_UHCI_BIG_ENDIAN_DESC 27ec897569SJames Hogan bool 28ec897569SJames Hogan 29a8edc42aSDavid Daneymenuconfig USB_SUPPORT 30a8edc42aSDavid Daney bool "USB support" 31a8edc42aSDavid Daney depends on HAS_IOMEM 32a8edc42aSDavid Daney default y 33a8edc42aSDavid Daney ---help--- 34a8edc42aSDavid Daney This option adds core support for Universal Serial Bus (USB). 35a8edc42aSDavid Daney You will also need drivers from the following menu to make use of it. 36a8edc42aSDavid Daney 3753c6bc24SDavid Daneyif USB_SUPPORT 3853c6bc24SDavid Daney 3953c6bc24SDavid Daneyconfig USB_COMMON 4053c6bc24SDavid Daney tristate 4153c6bc24SDavid Daney 4253c6bc24SDavid Daneyconfig USB_ARCH_HAS_HCD 43d9ea21a7SArnd Bergmann def_bool y 4453c6bc24SDavid Daney 451da177e4SLinus Torvaldsconfig USB 461da177e4SLinus Torvalds tristate "Support for Host-side USB" 471da177e4SLinus Torvalds depends on USB_ARCH_HAS_HCD 48*b0310c2fSLaurentiu Tudor select GENERIC_ALLOCATOR 49badf6d47SArnd Bergmann select USB_COMMON 50a853a3d4SClemens Ladisch select NLS # for UTF-8 strings 511da177e4SLinus Torvalds ---help--- 521da177e4SLinus Torvalds Universal Serial Bus (USB) is a specification for a serial bus 531da177e4SLinus Torvalds subsystem which offers higher speeds and more features than the 541da177e4SLinus Torvalds traditional PC serial port. The bus supplies power to peripherals 551da177e4SLinus Torvalds and allows for hot swapping. Up to 127 USB peripherals can be 561da177e4SLinus Torvalds connected to a single USB host in a tree structure. 571da177e4SLinus Torvalds 581da177e4SLinus Torvalds The USB host is the root of the tree, the peripherals are the 591da177e4SLinus Torvalds leaves and the inner nodes are special USB devices called hubs. 601da177e4SLinus Torvalds Most PCs now have USB host ports, used to connect peripherals 611da177e4SLinus Torvalds such as scanners, keyboards, mice, modems, cameras, disks, 621da177e4SLinus Torvalds flash memory, network links, and printers to the PC. 631da177e4SLinus Torvalds 641da177e4SLinus Torvalds Say Y here if your computer has a host-side USB port and you want 651da177e4SLinus Torvalds to use USB devices. You then need to say Y to at least one of the 661da177e4SLinus Torvalds Host Controller Driver (HCD) options below. Choose a USB 1.1 671da177e4SLinus Torvalds controller, such as "UHCI HCD support" or "OHCI HCD support", 681da177e4SLinus Torvalds and "EHCI HCD (USB 2.0) support" except for older systems that 691da177e4SLinus Torvalds do not have USB 2.0 support. It doesn't normally hurt to select 701da177e4SLinus Torvalds them all if you are not certain. 711da177e4SLinus Torvalds 721da177e4SLinus Torvalds If your system has a device-side USB port, used in the peripheral 731da177e4SLinus Torvalds side of the USB protocol, see the "USB Gadget" framework instead. 741da177e4SLinus Torvalds 751da177e4SLinus Torvalds After choosing your HCD, then select drivers for the USB peripherals 761da177e4SLinus Torvalds you'll be using. You may want to check out the information provided 771da177e4SLinus Torvalds in <file:Documentation/usb/> and especially the links given in 781da177e4SLinus Torvalds <file:Documentation/usb/usb-help.txt>. 791da177e4SLinus Torvalds 801da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 811da177e4SLinus Torvalds module will be called usbcore. 821da177e4SLinus Torvalds 832c93e790Syuan linyuconfig USB_PCI 842c93e790Syuan linyu bool "PCI based USB host interface" 852c93e790Syuan linyu depends on PCI 862c93e790Syuan linyu default y 872c93e790Syuan linyu ---help--- 882bb80de7SChris Mayo Many embedded system SOCs (e.g. freescale T2080) have both 892bb80de7SChris Mayo PCI and USB modules with the USB module directly controlled by 902bb80de7SChris Mayo registers and having no relationship to the PCI module. 912c93e790Syuan linyu 922bb80de7SChris Mayo If you have such a device you may say N here and PCI related code 932bb80de7SChris Mayo will not be built in the USB driver. 942c93e790Syuan linyu 9525e11ec4SFlorian Fainelliif USB 961da177e4SLinus Torvalds 9725e11ec4SFlorian Fainellisource "drivers/usb/core/Kconfig" 9872246da4SFelipe Balbi 993bea302dSSimon Arlottsource "drivers/usb/mon/Kconfig" 1003bea302dSSimon Arlott 101470cc415SGreg Kroah-Hartmansource "drivers/usb/wusbcore/Kconfig" 102470cc415SGreg Kroah-Hartman 1031da177e4SLinus Torvaldssource "drivers/usb/host/Kconfig" 1041da177e4SLinus Torvalds 105f1407d5cSKuninori Morimotosource "drivers/usb/renesas_usbhs/Kconfig" 106f1407d5cSKuninori Morimoto 1071da177e4SLinus Torvaldssource "drivers/usb/class/Kconfig" 1081da177e4SLinus Torvalds 1091da177e4SLinus Torvaldssource "drivers/usb/storage/Kconfig" 1101da177e4SLinus Torvalds 1111da177e4SLinus Torvaldssource "drivers/usb/image/Kconfig" 1121da177e4SLinus Torvalds 11396c27377SValentina Maneasource "drivers/usb/usbip/Kconfig" 11496c27377SValentina Manea 11525e11ec4SFlorian Fainelliendif 11625e11ec4SFlorian Fainelli 117df2069acSChunfeng Yunsource "drivers/usb/mtu3/Kconfig" 118df2069acSChunfeng Yun 119845c071bSEzequiel Garciasource "drivers/usb/musb/Kconfig" 120845c071bSEzequiel Garcia 12125e11ec4SFlorian Fainellisource "drivers/usb/dwc3/Kconfig" 12225e11ec4SFlorian Fainelli 123197ba5f4SPaul Zimmermansource "drivers/usb/dwc2/Kconfig" 124197ba5f4SPaul Zimmerman 12525e11ec4SFlorian Fainellisource "drivers/usb/chipidea/Kconfig" 12625e11ec4SFlorian Fainelli 1277ef077a8SLaurent Pinchartsource "drivers/usb/isp1760/Kconfig" 1287ef077a8SLaurent Pinchart 1291da177e4SLinus Torvaldscomment "USB port drivers" 13025e11ec4SFlorian Fainelli 13125e11ec4SFlorian Fainelliif USB 1321da177e4SLinus Torvalds 1331da177e4SLinus Torvaldsconfig USB_USS720 1341da177e4SLinus Torvalds tristate "USS720 parport driver" 13525e11ec4SFlorian Fainelli depends on PARPORT 1361da177e4SLinus Torvalds select PARPORT_NOT_PC 1371da177e4SLinus Torvalds ---help--- 1381da177e4SLinus Torvalds This driver is for USB parallel port adapters that use the Lucent 1391da177e4SLinus Torvalds Technologies USS-720 chip. These cables are plugged into your USB 1401da177e4SLinus Torvalds port and provide USB compatibility to peripherals designed with 1411da177e4SLinus Torvalds parallel port interfaces. 1421da177e4SLinus Torvalds 1431da177e4SLinus Torvalds The chip has two modes: automatic mode and manual mode. In automatic 1441da177e4SLinus Torvalds mode, it looks to the computer like a standard USB printer. Only 1451da177e4SLinus Torvalds printers may be connected to the USS-720 in this mode. The generic 1461da177e4SLinus Torvalds USB printer driver ("USB Printer support", above) may be used in 1471da177e4SLinus Torvalds that mode, and you can say N here if you want to use the chip only 1481da177e4SLinus Torvalds in this mode. 1491da177e4SLinus Torvalds 1501da177e4SLinus Torvalds Manual mode is not limited to printers, any parallel port 1511da177e4SLinus Torvalds device should work. This driver utilizes manual mode. 1521da177e4SLinus Torvalds Note however that some operations are three orders of magnitude 1531da177e4SLinus Torvalds slower than on a PCI/ISA Parallel Port, so timing critical 1541da177e4SLinus Torvalds applications might not work. 1551da177e4SLinus Torvalds 1561da177e4SLinus Torvalds Say Y here if you own an USS-720 USB->Parport cable and intend to 1571da177e4SLinus Torvalds connect anything other than a printer to it. 1581da177e4SLinus Torvalds 1591da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 1601da177e4SLinus Torvalds module will be called uss720. 1611da177e4SLinus Torvalds 1621da177e4SLinus Torvaldssource "drivers/usb/serial/Kconfig" 1631da177e4SLinus Torvalds 1641da177e4SLinus Torvaldssource "drivers/usb/misc/Kconfig" 1651da177e4SLinus Torvalds 1661da177e4SLinus Torvaldssource "drivers/usb/atm/Kconfig" 1671da177e4SLinus Torvalds 16825e11ec4SFlorian Fainelliendif # USB 16925e11ec4SFlorian Fainelli 17025e11ec4SFlorian Fainellisource "drivers/usb/phy/Kconfig" 17125e11ec4SFlorian Fainelli 1721da177e4SLinus Torvaldssource "drivers/usb/gadget/Kconfig" 1731da177e4SLinus Torvalds 174fab92884SHeikki Krogerussource "drivers/usb/typec/Kconfig" 175fab92884SHeikki Krogerus 176f6fb9ec0SHans de Goedesource "drivers/usb/roles/Kconfig" 177f6fb9ec0SHans de Goede 1780cfbd328SMichal Sojkaconfig USB_LED_TRIG 1790cfbd328SMichal Sojka bool "USB LED Triggers" 180cb9c1cfcSPeter Chen depends on LEDS_CLASS && LEDS_TRIGGERS 181cb9c1cfcSPeter Chen select USB_COMMON 1820cfbd328SMichal Sojka help 1830cfbd328SMichal Sojka This option adds LED triggers for USB host and/or gadget activity. 1840cfbd328SMichal Sojka 1850cfbd328SMichal Sojka Say Y here if you are working on a system with led-class supported 1860cfbd328SMichal Sojka LEDs and you want to use them as activity indicators for USB host or 1870cfbd328SMichal Sojka gadget. 1880cfbd328SMichal Sojka 189ad764c49SPeter Chenconfig USB_ULPI_BUS 190ad764c49SPeter Chen tristate "USB ULPI PHY interface support" 191cb9c1cfcSPeter Chen select USB_COMMON 192ad764c49SPeter Chen help 193ad764c49SPeter Chen UTMI+ Low Pin Interface (ULPI) is specification for a commonly used 194ad764c49SPeter Chen USB 2.0 PHY interface. The ULPI specification defines a standard set 195ad764c49SPeter Chen of registers that can be used to detect the vendor and product which 196ad764c49SPeter Chen allows ULPI to be handled as a bus. This module is the driver for that 197ad764c49SPeter Chen bus. 198ad764c49SPeter Chen 199ad764c49SPeter Chen The ULPI interfaces (the buses) are registered by the drivers for USB 200ad764c49SPeter Chen controllers which support ULPI register access and have ULPI PHY 201ad764c49SPeter Chen attached to them. The ULPI PHY drivers themselves are normal PHY 202ad764c49SPeter Chen drivers. 203ad764c49SPeter Chen 204ad764c49SPeter Chen ULPI PHYs provide often functions such as ADP sensing/probing (OTG 205ad764c49SPeter Chen protocol) and USB charger detection. 206ad764c49SPeter Chen 207ad764c49SPeter Chen To compile this driver as a module, choose M here: the module will 208ad764c49SPeter Chen be called ulpi. 209ad764c49SPeter Chen 21004d06ad0SJan Engelhardtendif # USB_SUPPORT 211