0001 # SPDX-License-Identifier: GPL-2.0
0002 #
0003 # USB device configuration
0004 #
0005
0006 config USB_OHCI_BIG_ENDIAN_DESC
0007 bool
0008
0009 config USB_OHCI_BIG_ENDIAN_MMIO
0010 bool
0011
0012 config USB_OHCI_LITTLE_ENDIAN
0013 bool
0014 default n if PPC_MPC52xx
0015 default y
0016
0017 config USB_EHCI_BIG_ENDIAN_MMIO
0018 bool
0019
0020 config USB_EHCI_BIG_ENDIAN_DESC
0021 bool
0022
0023 config USB_UHCI_BIG_ENDIAN_MMIO
0024 bool
0025
0026 config USB_UHCI_BIG_ENDIAN_DESC
0027 bool
0028
0029 menuconfig USB_SUPPORT
0030 bool "USB support"
0031 depends on HAS_IOMEM
0032 default y
0033 help
0034 This option adds core support for Universal Serial Bus (USB).
0035 You will also need drivers from the following menu to make use of it.
0036
0037 if USB_SUPPORT
0038
0039 source "drivers/usb/common/Kconfig"
0040
0041 config USB_ARCH_HAS_HCD
0042 def_bool y
0043
0044 config USB
0045 tristate "Support for Host-side USB"
0046 depends on USB_ARCH_HAS_HCD
0047 select GENERIC_ALLOCATOR
0048 select USB_COMMON
0049 select NLS # for UTF-8 strings
0050 help
0051 Universal Serial Bus (USB) is a specification for a serial bus
0052 subsystem which offers higher speeds and more features than the
0053 traditional PC serial port. The bus supplies power to peripherals
0054 and allows for hot swapping. Up to 127 USB peripherals can be
0055 connected to a single USB host in a tree structure.
0056
0057 The USB host is the root of the tree, the peripherals are the
0058 leaves and the inner nodes are special USB devices called hubs.
0059 Most PCs now have USB host ports, used to connect peripherals
0060 such as scanners, keyboards, mice, modems, cameras, disks,
0061 flash memory, network links, and printers to the PC.
0062
0063 Say Y here if your computer has a host-side USB port and you want
0064 to use USB devices. You then need to say Y to at least one of the
0065 Host Controller Driver (HCD) options below. Choose a USB 1.1
0066 controller, such as "UHCI HCD support" or "OHCI HCD support",
0067 and "EHCI HCD (USB 2.0) support" except for older systems that
0068 do not have USB 2.0 support. It doesn't normally hurt to select
0069 them all if you are not certain.
0070
0071 If your system has a device-side USB port, used in the peripheral
0072 side of the USB protocol, see the "USB Gadget" framework instead.
0073
0074 After choosing your HCD, then select drivers for the USB peripherals
0075 you'll be using. You may want to check out the information provided
0076 in <file:Documentation/usb/> and especially the links given in
0077 <file:Documentation/usb/usb-help.rst>.
0078
0079 To compile this driver as a module, choose M here: the
0080 module will be called usbcore.
0081
0082 config USB_PCI
0083 bool "PCI based USB host interface"
0084 depends on PCI
0085 default y
0086 help
0087 Many embedded system SOCs (e.g. freescale T2080) have both
0088 PCI and USB modules with the USB module directly controlled by
0089 registers and having no relationship to the PCI module.
0090
0091 If you have such a device you may say N here and PCI related code
0092 will not be built in the USB driver.
0093
0094 if USB
0095
0096 source "drivers/usb/core/Kconfig"
0097
0098 source "drivers/usb/mon/Kconfig"
0099
0100 source "drivers/usb/host/Kconfig"
0101
0102 source "drivers/usb/renesas_usbhs/Kconfig"
0103
0104 source "drivers/usb/class/Kconfig"
0105
0106 source "drivers/usb/storage/Kconfig"
0107
0108 source "drivers/usb/image/Kconfig"
0109
0110 source "drivers/usb/usbip/Kconfig"
0111
0112 endif
0113
0114 source "drivers/usb/cdns3/Kconfig"
0115
0116 source "drivers/usb/mtu3/Kconfig"
0117
0118 source "drivers/usb/musb/Kconfig"
0119
0120 source "drivers/usb/dwc3/Kconfig"
0121
0122 source "drivers/usb/dwc2/Kconfig"
0123
0124 source "drivers/usb/chipidea/Kconfig"
0125
0126 source "drivers/usb/isp1760/Kconfig"
0127
0128 comment "USB port drivers"
0129
0130 if USB
0131
0132 config USB_USS720
0133 tristate "USS720 parport driver"
0134 depends on PARPORT
0135 select PARPORT_NOT_PC
0136 help
0137 This driver is for USB parallel port adapters that use the Lucent
0138 Technologies USS-720 chip. These cables are plugged into your USB
0139 port and provide USB compatibility to peripherals designed with
0140 parallel port interfaces.
0141
0142 The chip has two modes: automatic mode and manual mode. In automatic
0143 mode, it looks to the computer like a standard USB printer. Only
0144 printers may be connected to the USS-720 in this mode. The generic
0145 USB printer driver ("USB Printer support", above) may be used in
0146 that mode, and you can say N here if you want to use the chip only
0147 in this mode.
0148
0149 Manual mode is not limited to printers, any parallel port
0150 device should work. This driver utilizes manual mode.
0151 Note however that some operations are three orders of magnitude
0152 slower than on a PCI/ISA Parallel Port, so timing critical
0153 applications might not work.
0154
0155 Say Y here if you own an USS-720 USB->Parport cable and intend to
0156 connect anything other than a printer to it.
0157
0158 To compile this driver as a module, choose M here: the
0159 module will be called uss720.
0160
0161 source "drivers/usb/serial/Kconfig"
0162
0163 source "drivers/usb/misc/Kconfig"
0164
0165 source "drivers/usb/atm/Kconfig"
0166
0167 endif # USB
0168
0169 source "drivers/usb/phy/Kconfig"
0170
0171 source "drivers/usb/gadget/Kconfig"
0172
0173 source "drivers/usb/typec/Kconfig"
0174
0175 source "drivers/usb/roles/Kconfig"
0176
0177 endif # USB_SUPPORT