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 48badf6d47SArnd Bergmann select USB_COMMON 49a853a3d4SClemens Ladisch select NLS # for UTF-8 strings 501da177e4SLinus Torvalds ---help--- 511da177e4SLinus Torvalds Universal Serial Bus (USB) is a specification for a serial bus 521da177e4SLinus Torvalds subsystem which offers higher speeds and more features than the 531da177e4SLinus Torvalds traditional PC serial port. The bus supplies power to peripherals 541da177e4SLinus Torvalds and allows for hot swapping. Up to 127 USB peripherals can be 551da177e4SLinus Torvalds connected to a single USB host in a tree structure. 561da177e4SLinus Torvalds 571da177e4SLinus Torvalds The USB host is the root of the tree, the peripherals are the 581da177e4SLinus Torvalds leaves and the inner nodes are special USB devices called hubs. 591da177e4SLinus Torvalds Most PCs now have USB host ports, used to connect peripherals 601da177e4SLinus Torvalds such as scanners, keyboards, mice, modems, cameras, disks, 611da177e4SLinus Torvalds flash memory, network links, and printers to the PC. 621da177e4SLinus Torvalds 631da177e4SLinus Torvalds Say Y here if your computer has a host-side USB port and you want 641da177e4SLinus Torvalds to use USB devices. You then need to say Y to at least one of the 651da177e4SLinus Torvalds Host Controller Driver (HCD) options below. Choose a USB 1.1 661da177e4SLinus Torvalds controller, such as "UHCI HCD support" or "OHCI HCD support", 671da177e4SLinus Torvalds and "EHCI HCD (USB 2.0) support" except for older systems that 681da177e4SLinus Torvalds do not have USB 2.0 support. It doesn't normally hurt to select 691da177e4SLinus Torvalds them all if you are not certain. 701da177e4SLinus Torvalds 711da177e4SLinus Torvalds If your system has a device-side USB port, used in the peripheral 721da177e4SLinus Torvalds side of the USB protocol, see the "USB Gadget" framework instead. 731da177e4SLinus Torvalds 741da177e4SLinus Torvalds After choosing your HCD, then select drivers for the USB peripherals 751da177e4SLinus Torvalds you'll be using. You may want to check out the information provided 761da177e4SLinus Torvalds in <file:Documentation/usb/> and especially the links given in 77*ecefae6dSMauro Carvalho Chehab <file:Documentation/usb/usb-help.rst>. 781da177e4SLinus Torvalds 791da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 801da177e4SLinus Torvalds module will be called usbcore. 811da177e4SLinus Torvalds 822c93e790Syuan linyuconfig USB_PCI 832c93e790Syuan linyu bool "PCI based USB host interface" 842c93e790Syuan linyu depends on PCI 852c93e790Syuan linyu default y 862c93e790Syuan linyu ---help--- 872bb80de7SChris Mayo Many embedded system SOCs (e.g. freescale T2080) have both 882bb80de7SChris Mayo PCI and USB modules with the USB module directly controlled by 892bb80de7SChris Mayo registers and having no relationship to the PCI module. 902c93e790Syuan linyu 912bb80de7SChris Mayo If you have such a device you may say N here and PCI related code 922bb80de7SChris Mayo will not be built in the USB driver. 932c93e790Syuan linyu 9425e11ec4SFlorian Fainelliif USB 951da177e4SLinus Torvalds 9625e11ec4SFlorian Fainellisource "drivers/usb/core/Kconfig" 9772246da4SFelipe Balbi 983bea302dSSimon Arlottsource "drivers/usb/mon/Kconfig" 993bea302dSSimon Arlott 100470cc415SGreg Kroah-Hartmansource "drivers/usb/wusbcore/Kconfig" 101470cc415SGreg Kroah-Hartman 1021da177e4SLinus Torvaldssource "drivers/usb/host/Kconfig" 1031da177e4SLinus Torvalds 104f1407d5cSKuninori Morimotosource "drivers/usb/renesas_usbhs/Kconfig" 105f1407d5cSKuninori Morimoto 1061da177e4SLinus Torvaldssource "drivers/usb/class/Kconfig" 1071da177e4SLinus Torvalds 1081da177e4SLinus Torvaldssource "drivers/usb/storage/Kconfig" 1091da177e4SLinus Torvalds 1101da177e4SLinus Torvaldssource "drivers/usb/image/Kconfig" 1111da177e4SLinus Torvalds 11296c27377SValentina Maneasource "drivers/usb/usbip/Kconfig" 11396c27377SValentina Manea 11425e11ec4SFlorian Fainelliendif 11525e11ec4SFlorian Fainelli 116df2069acSChunfeng Yunsource "drivers/usb/mtu3/Kconfig" 117df2069acSChunfeng Yun 118845c071bSEzequiel Garciasource "drivers/usb/musb/Kconfig" 119845c071bSEzequiel Garcia 12025e11ec4SFlorian Fainellisource "drivers/usb/dwc3/Kconfig" 12125e11ec4SFlorian Fainelli 122197ba5f4SPaul Zimmermansource "drivers/usb/dwc2/Kconfig" 123197ba5f4SPaul Zimmerman 12425e11ec4SFlorian Fainellisource "drivers/usb/chipidea/Kconfig" 12525e11ec4SFlorian Fainelli 1267ef077a8SLaurent Pinchartsource "drivers/usb/isp1760/Kconfig" 1277ef077a8SLaurent Pinchart 1281da177e4SLinus Torvaldscomment "USB port drivers" 12925e11ec4SFlorian Fainelli 13025e11ec4SFlorian Fainelliif USB 1311da177e4SLinus Torvalds 1321da177e4SLinus Torvaldsconfig USB_USS720 1331da177e4SLinus Torvalds tristate "USS720 parport driver" 13425e11ec4SFlorian Fainelli depends on PARPORT 1351da177e4SLinus Torvalds select PARPORT_NOT_PC 1361da177e4SLinus Torvalds ---help--- 1371da177e4SLinus Torvalds This driver is for USB parallel port adapters that use the Lucent 1381da177e4SLinus Torvalds Technologies USS-720 chip. These cables are plugged into your USB 1391da177e4SLinus Torvalds port and provide USB compatibility to peripherals designed with 1401da177e4SLinus Torvalds parallel port interfaces. 1411da177e4SLinus Torvalds 1421da177e4SLinus Torvalds The chip has two modes: automatic mode and manual mode. In automatic 1431da177e4SLinus Torvalds mode, it looks to the computer like a standard USB printer. Only 1441da177e4SLinus Torvalds printers may be connected to the USS-720 in this mode. The generic 1451da177e4SLinus Torvalds USB printer driver ("USB Printer support", above) may be used in 1461da177e4SLinus Torvalds that mode, and you can say N here if you want to use the chip only 1471da177e4SLinus Torvalds in this mode. 1481da177e4SLinus Torvalds 1491da177e4SLinus Torvalds Manual mode is not limited to printers, any parallel port 1501da177e4SLinus Torvalds device should work. This driver utilizes manual mode. 1511da177e4SLinus Torvalds Note however that some operations are three orders of magnitude 1521da177e4SLinus Torvalds slower than on a PCI/ISA Parallel Port, so timing critical 1531da177e4SLinus Torvalds applications might not work. 1541da177e4SLinus Torvalds 1551da177e4SLinus Torvalds Say Y here if you own an USS-720 USB->Parport cable and intend to 1561da177e4SLinus Torvalds connect anything other than a printer to it. 1571da177e4SLinus Torvalds 1581da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 1591da177e4SLinus Torvalds module will be called uss720. 1601da177e4SLinus Torvalds 1611da177e4SLinus Torvaldssource "drivers/usb/serial/Kconfig" 1621da177e4SLinus Torvalds 1631da177e4SLinus Torvaldssource "drivers/usb/misc/Kconfig" 1641da177e4SLinus Torvalds 1651da177e4SLinus Torvaldssource "drivers/usb/atm/Kconfig" 1661da177e4SLinus Torvalds 16725e11ec4SFlorian Fainelliendif # USB 16825e11ec4SFlorian Fainelli 16925e11ec4SFlorian Fainellisource "drivers/usb/phy/Kconfig" 17025e11ec4SFlorian Fainelli 1711da177e4SLinus Torvaldssource "drivers/usb/gadget/Kconfig" 1721da177e4SLinus Torvalds 173fab92884SHeikki Krogerussource "drivers/usb/typec/Kconfig" 174fab92884SHeikki Krogerus 175f6fb9ec0SHans de Goedesource "drivers/usb/roles/Kconfig" 176f6fb9ec0SHans de Goede 1770cfbd328SMichal Sojkaconfig USB_LED_TRIG 1780cfbd328SMichal Sojka bool "USB LED Triggers" 179cb9c1cfcSPeter Chen depends on LEDS_CLASS && LEDS_TRIGGERS 180cb9c1cfcSPeter Chen select USB_COMMON 1810cfbd328SMichal Sojka help 1820cfbd328SMichal Sojka This option adds LED triggers for USB host and/or gadget activity. 1830cfbd328SMichal Sojka 1840cfbd328SMichal Sojka Say Y here if you are working on a system with led-class supported 1850cfbd328SMichal Sojka LEDs and you want to use them as activity indicators for USB host or 1860cfbd328SMichal Sojka gadget. 1870cfbd328SMichal Sojka 188ad764c49SPeter Chenconfig USB_ULPI_BUS 189ad764c49SPeter Chen tristate "USB ULPI PHY interface support" 190cb9c1cfcSPeter Chen select USB_COMMON 191ad764c49SPeter Chen help 192ad764c49SPeter Chen UTMI+ Low Pin Interface (ULPI) is specification for a commonly used 193ad764c49SPeter Chen USB 2.0 PHY interface. The ULPI specification defines a standard set 194ad764c49SPeter Chen of registers that can be used to detect the vendor and product which 195ad764c49SPeter Chen allows ULPI to be handled as a bus. This module is the driver for that 196ad764c49SPeter Chen bus. 197ad764c49SPeter Chen 198ad764c49SPeter Chen The ULPI interfaces (the buses) are registered by the drivers for USB 199ad764c49SPeter Chen controllers which support ULPI register access and have ULPI PHY 200ad764c49SPeter Chen attached to them. The ULPI PHY drivers themselves are normal PHY 201ad764c49SPeter Chen drivers. 202ad764c49SPeter Chen 203ad764c49SPeter Chen ULPI PHYs provide often functions such as ADP sensing/probing (OTG 204ad764c49SPeter Chen protocol) and USB charger detection. 205ad764c49SPeter Chen 206ad764c49SPeter Chen To compile this driver as a module, choose M here: the module will 207ad764c49SPeter Chen be called ulpi. 208ad764c49SPeter Chen 20904d06ad0SJan Engelhardtendif # USB_SUPPORT 210