Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfashe...
[linux-2.6] / drivers / usb / core / Kconfig
1 #
2 # USB Core configuration
3 #
4 config USB_DEBUG
5         bool "USB verbose debug messages"
6         depends on USB
7         help
8           Say Y here if you want the USB core & hub drivers to produce a bunch
9           of debug messages to the system log. Select this if you are having a
10           problem with USB support and want to see more of what is going on.
11
12 comment "Miscellaneous USB options"
13         depends on USB
14
15 config USB_DEVICEFS
16         bool "USB device filesystem"
17         depends on USB
18         ---help---
19           If you say Y here (and to "/proc file system support" in the "File
20           systems" section, above), you will get a file /proc/bus/usb/devices
21           which lists the devices currently connected to your USB bus or
22           busses, and for every connected device a file named
23           "/proc/bus/usb/xxx/yyy", where xxx is the bus number and yyy the
24           device number; the latter files can be used by user space programs
25           to talk directly to the device. These files are "virtual", meaning
26           they are generated on the fly and not stored on the hard drive.
27
28           You may need to mount the usbfs file system to see the files, use
29           mount -t usbfs none /proc/bus/usb
30
31           For the format of the various /proc/bus/usb/ files, please read
32           <file:Documentation/usb/proc_usb_info.txt>.
33
34           Usbfs files can't handle Access Control Lists (ACL), which are the
35           default way to grant access to USB devices for untrusted users of a
36           desktop system. The usbfs functionality is replaced by real
37           device-nodes managed by udev. These nodes live in /dev/bus/usb and
38           are used by libusb.
39
40 config USB_DEVICE_CLASS
41         bool "USB device class-devices (DEPRECATED)"
42         depends on USB
43         default y
44         ---help---
45           Userspace access to USB devices is granted by device-nodes exported
46           directly from the usbdev in sysfs. Old versions of the driver
47           core and udev needed additional class devices to export device nodes.
48
49           These additional devices are difficult to handle in userspace, if
50           information about USB interfaces must be available. One device
51           contains the device node, the other device contains the interface
52           data. Both devices are at the same level in sysfs (siblings) and one
53           can't access the other. The device node created directly by the
54           usb device is the parent device of the interface and therefore
55           easily accessible from the interface event.
56
57           This option provides backward compatibility for libusb device
58           nodes (lsusb) when usbfs is not used, and the following udev rule
59           doesn't exist:
60             SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \
61             NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
62
63 config USB_DYNAMIC_MINORS
64         bool "Dynamic USB minor allocation (EXPERIMENTAL)"
65         depends on USB && EXPERIMENTAL
66         help
67           If you say Y here, the USB subsystem will use dynamic minor
68           allocation for any device that uses the USB major number.
69           This means that you can have more than 16 of a single type
70           of device (like USB printers).
71
72           If you are unsure about this, say N here.
73
74 config USB_SUSPEND
75         bool "USB selective suspend/resume and wakeup (EXPERIMENTAL)"
76         depends on USB && PM && EXPERIMENTAL
77         help
78           If you say Y here, you can use driver calls or the sysfs
79           "power/state" file to suspend or resume individual USB
80           peripherals.
81
82           Also, USB "remote wakeup" signaling is supported, whereby some
83           USB devices (like keyboards and network adapters) can wake up
84           their parent hub.  That wakeup cascades up the USB tree, and
85           could wake the system from states like suspend-to-RAM.
86
87           If you are unsure about this, say N here.
88
89 config USB_OTG
90         bool
91         depends on USB && EXPERIMENTAL
92         select USB_SUSPEND
93         default n
94
95
96 config USB_OTG_WHITELIST
97         bool "Rely on OTG Targeted Peripherals List"
98         depends on USB_OTG
99         default y
100         help
101           If you say Y here, the "otg_whitelist.h" file will be used as a
102           product whitelist, so USB peripherals not listed there will be
103           rejected during enumeration.  This behavior is required by the
104           USB OTG specification for all devices not on your product's
105           "Targeted Peripherals List".
106
107           Otherwise, peripherals not listed there will only generate a
108           warning and enumeration will continue.  That's more like what
109           normal Linux-USB hosts do (other than the warning), and is
110           convenient for many stages of product development.
111
112 config USB_OTG_BLACKLIST_HUB
113         bool "Disable external hubs"
114         depends on USB_OTG
115         help
116           If you say Y here, then Linux will refuse to enumerate
117           external hubs.  OTG hosts are allowed to reduce hardware
118           and software costs by not supporting external hubs.
119