| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | # |
| 3 | # USB Core configuration |
| 4 | # |
| 5 | config USB_ANNOUNCE_NEW_DEVICES |
| 6 | bool "USB announce new devices" |
| 7 | help |
| 8 | Say Y here if you want the USB core to always announce the |
| 9 | idVendor, idProduct, Manufacturer, Product, and SerialNumber |
| 10 | strings for every new USB device to the syslog. This option is |
| 11 | usually used by distro vendors to help with debugging and to |
| 12 | let users know what specific device was added to the machine |
| 13 | in what location. |
| 14 | |
| 15 | If you do not want this kind of information sent to the system |
| 16 | log, or have any doubts about this, say N here. |
| 17 | |
| 18 | comment "Miscellaneous USB options" |
| 19 | |
| 20 | config USB_DEFAULT_PERSIST |
| 21 | bool "Enable USB persist by default" |
| 22 | default y |
| 23 | help |
| 24 | Say N here if you don't want USB power session persistence |
| 25 | enabled by default. If you say N it will make suspended USB |
| 26 | devices that lose power get reenumerated as if they had been |
| 27 | unplugged, causing any mounted filesystems to be lost. The |
| 28 | persist feature can still be enabled for individual devices |
| 29 | through the power/persist sysfs node. See |
| 30 | Documentation/driver-api/usb/persist.rst for more info. |
| 31 | |
| 32 | If you have any questions about this, say Y here, only say N |
| 33 | if you know exactly what you are doing. |
| 34 | |
| 35 | config USB_FEW_INIT_RETRIES |
| 36 | bool "Limit USB device initialization to only a few retries" |
| 37 | help |
| 38 | When a new USB device is detected, the kernel tries very hard |
| 39 | to initialize and enumerate it, with lots of nested retry loops. |
| 40 | This almost always works, but when it fails it can take a long time. |
| 41 | This option tells the kernel to make only a few retry attempts, |
| 42 | so that the total time required for a failed initialization is |
| 43 | no more than 30 seconds (as required by the USB OTG spec). |
| 44 | |
| 45 | Say N here unless you require new-device enumeration failure to |
| 46 | occur within 30 seconds (as might be needed in an embedded |
| 47 | application). |
| 48 | |
| 49 | config USB_DYNAMIC_MINORS |
| 50 | bool "Dynamic USB minor allocation" |
| 51 | help |
| 52 | If you say Y here, the USB subsystem will use dynamic minor |
| 53 | allocation for any device that uses the USB major number. |
| 54 | This means that you can have more than 16 of a single type |
| 55 | of device (like USB printers). |
| 56 | |
| 57 | If you are unsure about this, say N here. |
| 58 | |
| 59 | config USB_OTG |
| 60 | bool "OTG support" |
| 61 | depends on PM |
| 62 | help |
| 63 | The most notable feature of USB OTG is support for a |
| 64 | "Dual-Role" device, which can act as either a device |
| 65 | or a host. The initial role is decided by the type of |
| 66 | plug inserted and can be changed later when two dual |
| 67 | role devices talk to each other. |
| 68 | |
| 69 | Select this only if your board has Mini-AB/Micro-AB |
| 70 | connector. |
| 71 | |
| 72 | config USB_OTG_PRODUCTLIST |
| 73 | bool "Rely on OTG and EH Targeted Peripherals List" |
| 74 | depends on USB |
| 75 | help |
| 76 | If you say Y here, the "otg_productlist.h" file will be used as a |
| 77 | product list, so USB peripherals not listed there will be |
| 78 | rejected during enumeration. This behavior is required by the |
| 79 | USB OTG and EH specification for all devices not on your product's |
| 80 | "Targeted Peripherals List". "Embedded Hosts" are likewise |
| 81 | allowed to support only a limited number of peripherals. |
| 82 | |
| 83 | config USB_OTG_DISABLE_EXTERNAL_HUB |
| 84 | bool "Disable external hubs" |
| 85 | depends on USB_OTG || EXPERT |
| 86 | help |
| 87 | If you say Y here, then Linux will refuse to enumerate |
| 88 | external hubs. OTG hosts are allowed to reduce hardware |
| 89 | and software costs by not supporting external hubs. So |
| 90 | are "Embedded Hosts" that don't offer OTG support. |
| 91 | |
| 92 | config USB_OTG_FSM |
| 93 | tristate "USB 2.0 OTG FSM implementation" |
| 94 | depends on USB && USB_OTG |
| 95 | select USB_PHY |
| 96 | help |
| 97 | Implements OTG Finite State Machine as specified in On-The-Go |
| 98 | and Embedded Host Supplement to the USB Revision 2.0 Specification. |
| 99 | |
| 100 | config USB_LEDS_TRIGGER_USBPORT |
| 101 | tristate "USB port LED trigger" |
| 102 | depends on USB && LEDS_TRIGGERS |
| 103 | help |
| 104 | This driver allows LEDs to be controlled by USB events. Enabling this |
| 105 | trigger allows specifying list of USB ports that should turn on LED |
| 106 | when some USB device gets connected. |
| 107 | |
| 108 | config USB_AUTOSUSPEND_DELAY |
| 109 | int "Default autosuspend delay" |
| 110 | depends on USB |
| 111 | default 2 |
| 112 | help |
| 113 | The default autosuspend delay in seconds. Can be overridden |
| 114 | with the usbcore.autosuspend command line or module parameter. |
| 115 | |
| 116 | The default value Linux has always had is 2 seconds. Change |
| 117 | this value if you want a different delay and cannot modify |
| 118 | the command line or module parameter. |
| 119 | |
| 120 | config USB_DEFAULT_AUTHORIZATION_MODE |
| 121 | int "Default authorization mode for USB devices" |
| 122 | range 0 2 |
| 123 | default 1 |
| 124 | depends on USB |
| 125 | help |
| 126 | Select the default USB device authorization mode. Can be overridden |
| 127 | with usbcore.authorized_default command line or module parameter. |
| 128 | |
| 129 | This option allows you to choose whether USB devices that are |
| 130 | connected to the system can be used by default, or if they are |
| 131 | locked down. |
| 132 | |
| 133 | With value 0 all connected USB devices with the exception of root |
| 134 | hub require user space authorization before they can be used. |
| 135 | |
| 136 | With value 1 (default) no user space authorization is required to |
| 137 | use connected USB devices. |
| 138 | |
| 139 | With value 2 all connected USB devices with exception of internal |
| 140 | USB devices require user space authorization before they can be |
| 141 | used. Note that in this mode the differentiation between internal |
| 142 | and external USB devices relies on ACPI, and on systems without |
| 143 | ACPI selecting value 2 is analogous to selecting value 0. |
| 144 | |
| 145 | If unsure, keep the default value. |