xref: /linux/drivers/usb/Kconfig (revision d39d0ed196aa1685bb24771e92f78633c66ac9cb)
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	# PPC:
45	default y if STB03xxx
46	default y if PPC_MPC52xx
47	# MIPS:
48	default y if MIPS_ALCHEMY
49	default y if MACH_JZ4740
50	# SH:
51	default y if CPU_SUBTYPE_SH7720
52	default y if CPU_SUBTYPE_SH7721
53	default y if CPU_SUBTYPE_SH7763
54	default y if CPU_SUBTYPE_SH7786
55	# more:
56	default PCI
57
58# some non-PCI hcds implement EHCI
59config USB_ARCH_HAS_EHCI
60	boolean
61	default y if PPC_83xx
62	default y if SOC_AU1200
63	default y if ARCH_IXP4XX
64	default y if ARCH_W90X900
65	default y if ARCH_AT91SAM9G45
66	default y if ARCH_MXC
67	default y if ARCH_OMAP3
68	default PCI
69
70# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
71config USB
72	tristate "Support for Host-side USB"
73	depends on USB_ARCH_HAS_HCD
74	select NLS  # for UTF-8 strings
75	---help---
76	  Universal Serial Bus (USB) is a specification for a serial bus
77	  subsystem which offers higher speeds and more features than the
78	  traditional PC serial port.  The bus supplies power to peripherals
79	  and allows for hot swapping.  Up to 127 USB peripherals can be
80	  connected to a single USB host in a tree structure.
81
82	  The USB host is the root of the tree, the peripherals are the
83	  leaves and the inner nodes are special USB devices called hubs.
84	  Most PCs now have USB host ports, used to connect peripherals
85	  such as scanners, keyboards, mice, modems, cameras, disks,
86	  flash memory, network links, and printers to the PC.
87
88	  Say Y here if your computer has a host-side USB port and you want
89	  to use USB devices.  You then need to say Y to at least one of the
90	  Host Controller Driver (HCD) options below.  Choose a USB 1.1
91	  controller, such as "UHCI HCD support" or "OHCI HCD support",
92	  and "EHCI HCD (USB 2.0) support" except for older systems that
93	  do not have USB 2.0 support.  It doesn't normally hurt to select
94	  them all if you are not certain.
95
96	  If your system has a device-side USB port, used in the peripheral
97	  side of the USB protocol, see the "USB Gadget" framework instead.
98
99	  After choosing your HCD, then select drivers for the USB peripherals
100	  you'll be using.  You may want to check out the information provided
101	  in <file:Documentation/usb/> and especially the links given in
102	  <file:Documentation/usb/usb-help.txt>.
103
104	  To compile this driver as a module, choose M here: the
105	  module will be called usbcore.
106
107source "drivers/usb/core/Kconfig"
108
109source "drivers/usb/mon/Kconfig"
110
111source "drivers/usb/wusbcore/Kconfig"
112
113source "drivers/usb/host/Kconfig"
114
115source "drivers/usb/musb/Kconfig"
116
117source "drivers/usb/class/Kconfig"
118
119source "drivers/usb/storage/Kconfig"
120
121source "drivers/usb/image/Kconfig"
122
123comment "USB port drivers"
124	depends on USB
125
126config USB_USS720
127	tristate "USS720 parport driver"
128	depends on USB && PARPORT
129	select PARPORT_NOT_PC
130	---help---
131	  This driver is for USB parallel port adapters that use the Lucent
132	  Technologies USS-720 chip. These cables are plugged into your USB
133	  port and provide USB compatibility to peripherals designed with
134	  parallel port interfaces.
135
136	  The chip has two modes: automatic mode and manual mode. In automatic
137	  mode, it looks to the computer like a standard USB printer. Only
138	  printers may be connected to the USS-720 in this mode. The generic
139	  USB printer driver ("USB Printer support", above) may be used in
140	  that mode, and you can say N here if you want to use the chip only
141	  in this mode.
142
143	  Manual mode is not limited to printers, any parallel port
144	  device should work. This driver utilizes manual mode.
145	  Note however that some operations are three orders of magnitude
146	  slower than on a PCI/ISA Parallel Port, so timing critical
147	  applications might not work.
148
149	  Say Y here if you own an USS-720 USB->Parport cable and intend to
150	  connect anything other than a printer to it.
151
152	  To compile this driver as a module, choose M here: the
153	  module will be called uss720.
154
155source "drivers/usb/serial/Kconfig"
156
157source "drivers/usb/misc/Kconfig"
158
159source "drivers/usb/atm/Kconfig"
160
161source "drivers/usb/gadget/Kconfig"
162
163source "drivers/usb/otg/Kconfig"
164
165endif # USB_SUPPORT
166