11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# USB Core configuration 31da177e4SLinus Torvalds# 41da177e4SLinus Torvaldsconfig USB_DEBUG 51da177e4SLinus Torvalds bool "USB verbose debug messages" 61da177e4SLinus Torvalds depends on USB 71da177e4SLinus Torvalds help 81da177e4SLinus Torvalds Say Y here if you want the USB core & hub drivers to produce a bunch 91da177e4SLinus Torvalds of debug messages to the system log. Select this if you are having a 101da177e4SLinus Torvalds problem with USB support and want to see more of what is going on. 111da177e4SLinus Torvalds 12f2a383e4SGreg Kroah-Hartmanconfig USB_ANNOUNCE_NEW_DEVICES 13f2a383e4SGreg Kroah-Hartman bool "USB announce new devices" 14f2a383e4SGreg Kroah-Hartman depends on USB 15f2a383e4SGreg Kroah-Hartman default N 16f2a383e4SGreg Kroah-Hartman help 17f2a383e4SGreg Kroah-Hartman Say Y here if you want the USB core to always announce the 18f2a383e4SGreg Kroah-Hartman idVendor, idProduct, Manufacturer, Product, and SerialNumber 19f2a383e4SGreg Kroah-Hartman strings for every new USB device to the syslog. This option is 20f2a383e4SGreg Kroah-Hartman usually used by distro vendors to help with debugging and to 21f2a383e4SGreg Kroah-Hartman let users know what specific device was added to the machine 22f2a383e4SGreg Kroah-Hartman in what location. 23f2a383e4SGreg Kroah-Hartman 24f2a383e4SGreg Kroah-Hartman If you do not want this kind of information sent to the system 25f2a383e4SGreg Kroah-Hartman log, or have any doubts about this, say N here. 26f2a383e4SGreg Kroah-Hartman 271da177e4SLinus Torvaldscomment "Miscellaneous USB options" 281da177e4SLinus Torvalds depends on USB 291da177e4SLinus Torvalds 301da177e4SLinus Torvaldsconfig USB_DEVICEFS 311da177e4SLinus Torvalds bool "USB device filesystem" 321da177e4SLinus Torvalds depends on USB 331da177e4SLinus Torvalds ---help--- 341da177e4SLinus Torvalds If you say Y here (and to "/proc file system support" in the "File 351da177e4SLinus Torvalds systems" section, above), you will get a file /proc/bus/usb/devices 361da177e4SLinus Torvalds which lists the devices currently connected to your USB bus or 371da177e4SLinus Torvalds busses, and for every connected device a file named 381da177e4SLinus Torvalds "/proc/bus/usb/xxx/yyy", where xxx is the bus number and yyy the 391da177e4SLinus Torvalds device number; the latter files can be used by user space programs 401da177e4SLinus Torvalds to talk directly to the device. These files are "virtual", meaning 411da177e4SLinus Torvalds they are generated on the fly and not stored on the hard drive. 421da177e4SLinus Torvalds 431da177e4SLinus Torvalds You may need to mount the usbfs file system to see the files, use 441da177e4SLinus Torvalds mount -t usbfs none /proc/bus/usb 451da177e4SLinus Torvalds 461da177e4SLinus Torvalds For the format of the various /proc/bus/usb/ files, please read 471da177e4SLinus Torvalds <file:Documentation/usb/proc_usb_info.txt>. 481da177e4SLinus Torvalds 499f8b17e6SKay Sievers Usbfs files can't handle Access Control Lists (ACL), which are the 509f8b17e6SKay Sievers default way to grant access to USB devices for untrusted users of a 519f8b17e6SKay Sievers desktop system. The usbfs functionality is replaced by real 529f8b17e6SKay Sievers device-nodes managed by udev. These nodes live in /dev/bus/usb and 539f8b17e6SKay Sievers are used by libusb. 549f8b17e6SKay Sievers 559f8b17e6SKay Sieversconfig USB_DEVICE_CLASS 569f8b17e6SKay Sievers bool "USB device class-devices (DEPRECATED)" 579f8b17e6SKay Sievers depends on USB 58dda034bcSKay Sievers default y 599f8b17e6SKay Sievers ---help--- 609f8b17e6SKay Sievers Userspace access to USB devices is granted by device-nodes exported 619f8b17e6SKay Sievers directly from the usbdev in sysfs. Old versions of the driver 629f8b17e6SKay Sievers core and udev needed additional class devices to export device nodes. 639f8b17e6SKay Sievers 649f8b17e6SKay Sievers These additional devices are difficult to handle in userspace, if 65dda034bcSKay Sievers information about USB interfaces must be available. One device 66dda034bcSKay Sievers contains the device node, the other device contains the interface 67dda034bcSKay Sievers data. Both devices are at the same level in sysfs (siblings) and one 68dda034bcSKay Sievers can't access the other. The device node created directly by the 69dda034bcSKay Sievers usb device is the parent device of the interface and therefore 70dda034bcSKay Sievers easily accessible from the interface event. 719f8b17e6SKay Sievers 72dda034bcSKay Sievers This option provides backward compatibility for libusb device 73dda034bcSKay Sievers nodes (lsusb) when usbfs is not used, and the following udev rule 74dda034bcSKay Sievers doesn't exist: 75dda034bcSKay Sievers SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \ 76dda034bcSKay Sievers NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644" 771da177e4SLinus Torvalds 781da177e4SLinus Torvaldsconfig USB_DYNAMIC_MINORS 79b6719996SRobert P. J. Day bool "Dynamic USB minor allocation" 80b6719996SRobert P. J. Day depends on USB 811da177e4SLinus Torvalds help 821da177e4SLinus Torvalds If you say Y here, the USB subsystem will use dynamic minor 831da177e4SLinus Torvalds allocation for any device that uses the USB major number. 841da177e4SLinus Torvalds This means that you can have more than 16 of a single type 851da177e4SLinus Torvalds of device (like USB printers). 861da177e4SLinus Torvalds 871da177e4SLinus Torvalds If you are unsure about this, say N here. 881da177e4SLinus Torvalds 891da177e4SLinus Torvaldsconfig USB_SUSPEND 90c2c8d1fdSAlan Stern bool "USB selective suspend/resume and wakeup" 91c2c8d1fdSAlan Stern depends on USB && PM 921da177e4SLinus Torvalds help 931da177e4SLinus Torvalds If you say Y here, you can use driver calls or the sysfs 94c2c8d1fdSAlan Stern "power/level" file to suspend or resume individual USB 95c2c8d1fdSAlan Stern peripherals and to enable or disable autosuspend (see 96c2c8d1fdSAlan Stern Documentation/usb/power-management.txt for more details). 97f3f3253dSDavid Brownell 98f3f3253dSDavid Brownell Also, USB "remote wakeup" signaling is supported, whereby some 99f3f3253dSDavid Brownell USB devices (like keyboards and network adapters) can wake up 100f3f3253dSDavid Brownell their parent hub. That wakeup cascades up the USB tree, and 101f3f3253dSDavid Brownell could wake the system from states like suspend-to-RAM. 1021da177e4SLinus Torvalds 1031da177e4SLinus Torvalds If you are unsure about this, say N here. 1041da177e4SLinus Torvalds 1051da177e4SLinus Torvaldsconfig USB_OTG 1061da177e4SLinus Torvalds bool 1071da177e4SLinus Torvalds depends on USB && EXPERIMENTAL 1081da177e4SLinus Torvalds select USB_SUSPEND 1091da177e4SLinus Torvalds default n 1101da177e4SLinus Torvalds 1111da177e4SLinus Torvalds 1121da177e4SLinus Torvaldsconfig USB_OTG_WHITELIST 1131da177e4SLinus Torvalds bool "Rely on OTG Targeted Peripherals List" 11422552b28SRobin Getz depends on USB_OTG || EMBEDDED 11522552b28SRobin Getz default y if USB_OTG 11622552b28SRobin Getz default n if EMBEDDED 1171da177e4SLinus Torvalds help 1181da177e4SLinus Torvalds If you say Y here, the "otg_whitelist.h" file will be used as a 1191da177e4SLinus Torvalds product whitelist, so USB peripherals not listed there will be 1201da177e4SLinus Torvalds rejected during enumeration. This behavior is required by the 1211da177e4SLinus Torvalds USB OTG specification for all devices not on your product's 12222552b28SRobin Getz "Targeted Peripherals List". "Embedded Hosts" are likewise 12322552b28SRobin Getz allowed to support only a limited number of peripherals. 1241da177e4SLinus Torvalds 1251da177e4SLinus Torvalds Otherwise, peripherals not listed there will only generate a 1261da177e4SLinus Torvalds warning and enumeration will continue. That's more like what 1271da177e4SLinus Torvalds normal Linux-USB hosts do (other than the warning), and is 1281da177e4SLinus Torvalds convenient for many stages of product development. 1291da177e4SLinus Torvalds 13089ccbdc9SDavid Brownellconfig USB_OTG_BLACKLIST_HUB 13189ccbdc9SDavid Brownell bool "Disable external hubs" 13222552b28SRobin Getz depends on USB_OTG || EMBEDDED 13389ccbdc9SDavid Brownell help 13489ccbdc9SDavid Brownell If you say Y here, then Linux will refuse to enumerate 13589ccbdc9SDavid Brownell external hubs. OTG hosts are allowed to reduce hardware 13622552b28SRobin Getz and software costs by not supporting external hubs. So 137*bc45df95SPeter Korsgaard are "Embedded Hosts" that don't offer OTG support. 1381da177e4SLinus Torvalds 139