xref: /openbmc/linux/drivers/usb/Kconfig (revision df2634f43f5106947f3735a0b61a6527a4b278cd)
1#
2# USB device configuration
3#
4
5menuconfig USB_SUPPORT
6	bool "USB support"
7	depends on HAS_IOMEM
8	default y
9	---help---
10	  This option adds core support for Universal Serial Bus (USB).
11	  You will also need drivers from the following menu to make use of it.
12
13if USB_SUPPORT
14
15# Host-side USB depends on having a host controller
16# NOTE:  dummy_hcd is always an option, but it's ignored here ...
17# NOTE:  SL-811 option should be board-specific ...
18config USB_ARCH_HAS_HCD
19	boolean
20	default y if USB_ARCH_HAS_OHCI
21	default y if USB_ARCH_HAS_EHCI
22	default y if PCMCIA && !M32R			# sl811_cs
23	default y if ARM				# SL-811
24	default y if BLACKFIN				# SL-811
25	default y if SUPERH				# r8a66597-hcd
26	default PCI
27
28# many non-PCI SOC chips embed OHCI
29config USB_ARCH_HAS_OHCI
30	boolean
31	# ARM:
32	default y if SA1111
33	default y if ARCH_OMAP
34	default y if ARCH_LH7A404
35	default y if ARCH_S3C2410
36	default y if PXA27x
37	default y if PXA3xx
38	default y if ARCH_EP93XX
39	default y if ARCH_AT91
40	default y if ARCH_PNX4008 && I2C
41	default y if MFD_TC6393XB
42	default y if ARCH_W90X900
43	default y if ARCH_DAVINCI_DA8XX
44	default y if ARCH_CNS3XXX
45	default y if PLAT_SPEAR
46	# PPC:
47	default y if STB03xxx
48	default y if PPC_MPC52xx
49	# MIPS:
50	default y if MIPS_ALCHEMY
51	default y if MACH_JZ4740
52	# more:
53	default PCI
54
55# some non-PCI hcds implement EHCI
56config USB_ARCH_HAS_EHCI
57	boolean
58	default y if PPC_83xx
59	default y if PPC_MPC512x
60	default y if SOC_AU1200
61	default y if ARCH_IXP4XX
62	default y if ARCH_W90X900
63	default y if ARCH_AT91SAM9G45
64	default y if ARCH_MXC
65	default y if ARCH_OMAP3
66	default y if ARCH_CNS3XXX
67	default y if ARCH_VT8500
68	default y if PLAT_SPEAR
69	default y if ARCH_MSM
70	default PCI
71
72# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
73config USB
74	tristate "Support for Host-side USB"
75	depends on USB_ARCH_HAS_HCD
76	select NLS  # for UTF-8 strings
77	---help---
78	  Universal Serial Bus (USB) is a specification for a serial bus
79	  subsystem which offers higher speeds and more features than the
80	  traditional PC serial port.  The bus supplies power to peripherals
81	  and allows for hot swapping.  Up to 127 USB peripherals can be
82	  connected to a single USB host in a tree structure.
83
84	  The USB host is the root of the tree, the peripherals are the
85	  leaves and the inner nodes are special USB devices called hubs.
86	  Most PCs now have USB host ports, used to connect peripherals
87	  such as scanners, keyboards, mice, modems, cameras, disks,
88	  flash memory, network links, and printers to the PC.
89
90	  Say Y here if your computer has a host-side USB port and you want
91	  to use USB devices.  You then need to say Y to at least one of the
92	  Host Controller Driver (HCD) options below.  Choose a USB 1.1
93	  controller, such as "UHCI HCD support" or "OHCI HCD support",
94	  and "EHCI HCD (USB 2.0) support" except for older systems that
95	  do not have USB 2.0 support.  It doesn't normally hurt to select
96	  them all if you are not certain.
97
98	  If your system has a device-side USB port, used in the peripheral
99	  side of the USB protocol, see the "USB Gadget" framework instead.
100
101	  After choosing your HCD, then select drivers for the USB peripherals
102	  you'll be using.  You may want to check out the information provided
103	  in <file:Documentation/usb/> and especially the links given in
104	  <file:Documentation/usb/usb-help.txt>.
105
106	  To compile this driver as a module, choose M here: the
107	  module will be called usbcore.
108
109source "drivers/usb/core/Kconfig"
110
111source "drivers/usb/mon/Kconfig"
112
113source "drivers/usb/wusbcore/Kconfig"
114
115source "drivers/usb/host/Kconfig"
116
117source "drivers/usb/musb/Kconfig"
118
119source "drivers/usb/class/Kconfig"
120
121source "drivers/usb/storage/Kconfig"
122
123source "drivers/usb/image/Kconfig"
124
125comment "USB port drivers"
126	depends on USB
127
128config USB_USS720
129	tristate "USS720 parport driver"
130	depends on USB && PARPORT
131	select PARPORT_NOT_PC
132	---help---
133	  This driver is for USB parallel port adapters that use the Lucent
134	  Technologies USS-720 chip. These cables are plugged into your USB
135	  port and provide USB compatibility to peripherals designed with
136	  parallel port interfaces.
137
138	  The chip has two modes: automatic mode and manual mode. In automatic
139	  mode, it looks to the computer like a standard USB printer. Only
140	  printers may be connected to the USS-720 in this mode. The generic
141	  USB printer driver ("USB Printer support", above) may be used in
142	  that mode, and you can say N here if you want to use the chip only
143	  in this mode.
144
145	  Manual mode is not limited to printers, any parallel port
146	  device should work. This driver utilizes manual mode.
147	  Note however that some operations are three orders of magnitude
148	  slower than on a PCI/ISA Parallel Port, so timing critical
149	  applications might not work.
150
151	  Say Y here if you own an USS-720 USB->Parport cable and intend to
152	  connect anything other than a printer to it.
153
154	  To compile this driver as a module, choose M here: the
155	  module will be called uss720.
156
157source "drivers/usb/serial/Kconfig"
158
159source "drivers/usb/misc/Kconfig"
160
161source "drivers/usb/atm/Kconfig"
162
163source "drivers/usb/gadget/Kconfig"
164
165source "drivers/usb/otg/Kconfig"
166
167endif # USB_SUPPORT
168