xref: /openbmc/linux/drivers/usb/Kconfig (revision ecefae6d)
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