| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | What:		/sys/bus/usb/devices/INTERFACE/authorized | 
|  | 2 | Date:		August 2015 | 
|  | 3 | Description: | 
|  | 4 | This allows to authorize (1) or deauthorize (0) | 
|  | 5 | individual interfaces instead a whole device | 
|  | 6 | in contrast to the device authorization. | 
|  | 7 | If a deauthorized interface will be authorized | 
|  | 8 | so the driver probing must be triggered manually | 
|  | 9 | by writing INTERFACE to /sys/bus/usb/drivers_probe | 
|  | 10 | This allows to avoid side-effects with drivers | 
|  | 11 | that need multiple interfaces. | 
|  | 12 | A deauthorized interface cannot be probed or claimed. | 
|  | 13 |  | 
|  | 14 | What:		/sys/bus/usb/devices/usbX/interface_authorized_default | 
|  | 15 | Date:		August 2015 | 
|  | 16 | Description: | 
|  | 17 | This is used as value that determines if interfaces | 
|  | 18 | would be authorized by default. | 
|  | 19 | The value can be 1 or 0. It's by default 1. | 
|  | 20 |  | 
|  | 21 | What:		/sys/bus/usb/device/.../authorized | 
|  | 22 | Date:		July 2008 | 
|  | 23 | KernelVersion:	2.6.26 | 
|  | 24 | Contact:	David Vrabel <david.vrabel@csr.com> | 
|  | 25 | Description: | 
|  | 26 | Authorized devices are available for use by device | 
|  | 27 | drivers, non-authorized one are not.  By default, wired | 
|  | 28 | USB devices are authorized. | 
|  | 29 |  | 
|  | 30 | Certified Wireless USB devices are not authorized | 
|  | 31 | initially and should be (by writing 1) after the | 
|  | 32 | device has been authenticated. | 
|  | 33 |  | 
|  | 34 | What:		/sys/bus/usb/device/.../wusb_cdid | 
|  | 35 | Date:		July 2008 | 
|  | 36 | KernelVersion:	2.6.27 | 
|  | 37 | Contact:	David Vrabel <david.vrabel@csr.com> | 
|  | 38 | Description: | 
|  | 39 | For Certified Wireless USB devices only. | 
|  | 40 |  | 
|  | 41 | A devices's CDID, as 16 space-separated hex octets. | 
|  | 42 |  | 
|  | 43 | What:		/sys/bus/usb/device/.../wusb_ck | 
|  | 44 | Date:		July 2008 | 
|  | 45 | KernelVersion:	2.6.27 | 
|  | 46 | Contact:	David Vrabel <david.vrabel@csr.com> | 
|  | 47 | Description: | 
|  | 48 | For Certified Wireless USB devices only. | 
|  | 49 |  | 
|  | 50 | Write the device's connection key (CK) to start the | 
|  | 51 | authentication of the device.  The CK is 16 | 
|  | 52 | space-separated hex octets. | 
|  | 53 |  | 
|  | 54 | What:		/sys/bus/usb/device/.../wusb_disconnect | 
|  | 55 | Date:		July 2008 | 
|  | 56 | KernelVersion:	2.6.27 | 
|  | 57 | Contact:	David Vrabel <david.vrabel@csr.com> | 
|  | 58 | Description: | 
|  | 59 | For Certified Wireless USB devices only. | 
|  | 60 |  | 
|  | 61 | Write a 1 to force the device to disconnect | 
|  | 62 | (equivalent to unplugging a wired USB device). | 
|  | 63 |  | 
|  | 64 | What:		/sys/bus/usb/drivers/.../new_id | 
|  | 65 | Date:		October 2011 | 
|  | 66 | Contact:	linux-usb@vger.kernel.org | 
|  | 67 | Description: | 
|  | 68 | Writing a device ID to this file will attempt to | 
|  | 69 | dynamically add a new device ID to a USB device driver. | 
|  | 70 | This may allow the driver to support more hardware than | 
|  | 71 | was included in the driver's static device ID support | 
|  | 72 | table at compile time. The format for the device ID is: | 
|  | 73 | idVendor idProduct bInterfaceClass RefIdVendor RefIdProduct | 
|  | 74 | The vendor ID and device ID fields are required, the | 
|  | 75 | rest is optional. The Ref* tuple can be used to tell the | 
|  | 76 | driver to use the same driver_data for the new device as | 
|  | 77 | it is used for the reference device. | 
|  | 78 | Upon successfully adding an ID, the driver will probe | 
|  | 79 | for the device and attempt to bind to it.  For example: | 
|  | 80 | # echo "8086 10f5" > /sys/bus/usb/drivers/foo/new_id | 
|  | 81 |  | 
|  | 82 | Here add a new device (0458:7045) using driver_data from | 
|  | 83 | an already supported device (0458:704c): | 
|  | 84 | # echo "0458 7045 0 0458 704c" > /sys/bus/usb/drivers/foo/new_id | 
|  | 85 |  | 
|  | 86 | Reading from this file will list all dynamically added | 
|  | 87 | device IDs in the same format, with one entry per | 
|  | 88 | line. For example: | 
|  | 89 | # cat /sys/bus/usb/drivers/foo/new_id | 
|  | 90 | 8086 10f5 | 
|  | 91 | dead beef 06 | 
|  | 92 | f00d cafe | 
|  | 93 |  | 
|  | 94 | The list will be truncated at PAGE_SIZE bytes due to | 
|  | 95 | sysfs restrictions. | 
|  | 96 |  | 
|  | 97 | What:		/sys/bus/usb-serial/drivers/.../new_id | 
|  | 98 | Date:		October 2011 | 
|  | 99 | Contact:	linux-usb@vger.kernel.org | 
|  | 100 | Description: | 
|  | 101 | For serial USB drivers, this attribute appears under the | 
|  | 102 | extra bus folder "usb-serial" in sysfs; apart from that | 
|  | 103 | difference, all descriptions from the entry | 
|  | 104 | "/sys/bus/usb/drivers/.../new_id" apply. | 
|  | 105 |  | 
|  | 106 | What:		/sys/bus/usb/drivers/.../remove_id | 
|  | 107 | Date:		November 2009 | 
|  | 108 | Contact:	CHENG Renquan <rqcheng@smu.edu.sg> | 
|  | 109 | Description: | 
|  | 110 | Writing a device ID to this file will remove an ID | 
|  | 111 | that was dynamically added via the new_id sysfs entry. | 
|  | 112 | The format for the device ID is: | 
|  | 113 | idVendor idProduct.	After successfully | 
|  | 114 | removing an ID, the driver will no longer support the | 
|  | 115 | device.  This is useful to ensure auto probing won't | 
|  | 116 | match the driver to the device.  For example: | 
|  | 117 | # echo "046d c315" > /sys/bus/usb/drivers/foo/remove_id | 
|  | 118 |  | 
|  | 119 | Reading from this file will list the dynamically added | 
|  | 120 | device IDs, exactly like reading from the entry | 
|  | 121 | "/sys/bus/usb/drivers/.../new_id" | 
|  | 122 |  | 
|  | 123 | What:		/sys/bus/usb/devices/.../power/usb2_hardware_lpm | 
|  | 124 | Date:		September 2011 | 
|  | 125 | Contact:	Andiry Xu <andiry.xu@amd.com> | 
|  | 126 | Description: | 
|  | 127 | If CONFIG_PM is set and a USB 2.0 lpm-capable device is plugged | 
|  | 128 | in to a xHCI host which support link PM, it will perform a LPM | 
|  | 129 | test; if the test is passed and host supports USB2 hardware LPM | 
|  | 130 | (xHCI 1.0 feature), USB2 hardware LPM will be enabled for the | 
|  | 131 | device and the USB device directory will contain a file named | 
|  | 132 | power/usb2_hardware_lpm.  The file holds a string value (enable | 
|  | 133 | or disable) indicating whether or not USB2 hardware LPM is | 
|  | 134 | enabled for the device. Developer can write y/Y/1 or n/N/0 to | 
|  | 135 | the file to enable/disable the feature. | 
|  | 136 |  | 
|  | 137 | What:		/sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1 | 
|  | 138 | /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2 | 
|  | 139 | Date:		November 2015 | 
|  | 140 | Contact:	Kevin Strasser <kevin.strasser@linux.intel.com> | 
|  | 141 | Lu Baolu <baolu.lu@linux.intel.com> | 
|  | 142 | Description: | 
|  | 143 | If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged | 
|  | 144 | in to a xHCI host which supports link PM, it will check if U1 | 
|  | 145 | and U2 exit latencies have been set in the BOS descriptor; if | 
|  | 146 | the check is passed and the host supports USB3 hardware LPM, | 
|  | 147 | USB3 hardware LPM will be enabled for the device and the USB | 
|  | 148 | device directory will contain two files named | 
|  | 149 | power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These | 
|  | 150 | files hold a string value (enable or disable) indicating whether | 
|  | 151 | or not USB3 hardware LPM U1 or U2 is enabled for the device. | 
|  | 152 |  | 
|  | 153 | What:		/sys/bus/usb/devices/.../removable | 
|  | 154 | Date:		February 2012 | 
|  | 155 | Contact:	Matthew Garrett <mjg@redhat.com> | 
|  | 156 | Description: | 
|  | 157 | Some information about whether a given USB device is | 
|  | 158 | physically fixed to the platform can be inferred from a | 
|  | 159 | combination of hub descriptor bits and platform-specific data | 
|  | 160 | such as ACPI. This file will read either "removable" or | 
|  | 161 | "fixed" if the information is available, and "unknown" | 
|  | 162 | otherwise. | 
|  | 163 |  | 
|  | 164 | What:		/sys/bus/usb/devices/.../ltm_capable | 
|  | 165 | Date:		July 2012 | 
|  | 166 | Contact:	Sarah Sharp <sarah.a.sharp@linux.intel.com> | 
|  | 167 | Description: | 
|  | 168 | USB 3.0 devices may optionally support Latency Tolerance | 
|  | 169 | Messaging (LTM).  They indicate their support by setting a bit | 
|  | 170 | in the bmAttributes field of their SuperSpeed BOS descriptors. | 
|  | 171 | If that bit is set for the device, ltm_capable will read "yes". | 
|  | 172 | If the device doesn't support LTM, the file will read "no". | 
|  | 173 | The file will be present for all speeds of USB devices, and will | 
|  | 174 | always read "no" for USB 1.1 and USB 2.0 devices. | 
|  | 175 |  | 
|  | 176 | What:		/sys/bus/usb/devices/.../(hub interface)/portX | 
|  | 177 | Date:		August 2012 | 
|  | 178 | Contact:	Lan Tianyu <tianyu.lan@intel.com> | 
|  | 179 | Description: | 
|  | 180 | The /sys/bus/usb/devices/.../(hub interface)/portX | 
|  | 181 | is usb port device's sysfs directory. | 
|  | 182 |  | 
|  | 183 | What:		/sys/bus/usb/devices/.../(hub interface)/portX/connect_type | 
|  | 184 | Date:		January 2013 | 
|  | 185 | Contact:	Lan Tianyu <tianyu.lan@intel.com> | 
|  | 186 | Description: | 
|  | 187 | Some platforms provide usb port connect types through ACPI. | 
|  | 188 | This attribute is to expose these information to user space. | 
|  | 189 | The file will read "hotplug", "wired" and "not used" if the | 
|  | 190 | information is available, and "unknown" otherwise. | 
|  | 191 |  | 
|  | 192 | What:		/sys/bus/usb/devices/.../(hub interface)/portX/quirks | 
|  | 193 | Date:		May 2018 | 
|  | 194 | Contact:	Nicolas Boichat <drinkcat@chromium.org> | 
|  | 195 | Description: | 
|  | 196 | In some cases, we care about time-to-active for devices | 
|  | 197 | connected on a specific port (e.g. non-standard USB port like | 
|  | 198 | pogo pins), where the device to be connected is known in | 
|  | 199 | advance, and behaves well according to the specification. | 
|  | 200 | This attribute is a bit-field that controls the behavior of | 
|  | 201 | a specific port: | 
|  | 202 | - Bit 0 of this field selects the "old" enumeration scheme, | 
|  | 203 | as it is considerably faster (it only causes one USB reset | 
|  | 204 | instead of 2). | 
|  | 205 | The old enumeration scheme can also be selected globally | 
|  | 206 | using /sys/module/usbcore/parameters/old_scheme_first, but | 
|  | 207 | it is often not desirable as the new scheme was introduced to | 
|  | 208 | increase compatibility with more devices. | 
|  | 209 | - Bit 1 reduces TRSTRCY to the 10 ms that are required by the | 
|  | 210 | USB 2.0 specification, instead of the 50 ms that are normally | 
|  | 211 | used to help make enumeration work better on some high speed | 
|  | 212 | devices. | 
|  | 213 |  | 
|  | 214 | What:		/sys/bus/usb/devices/.../(hub interface)/portX/over_current_count | 
|  | 215 | Date:		February 2018 | 
|  | 216 | Contact:	Richard Leitner <richard.leitner@skidata.com> | 
|  | 217 | Description: | 
|  | 218 | Most hubs are able to detect over-current situations on their | 
|  | 219 | ports and report them to the kernel. This attribute is to expose | 
|  | 220 | the number of over-current situation occurred on a specific port | 
|  | 221 | to user space. This file will contain an unsigned 32 bit value | 
|  | 222 | which wraps to 0 after its maximum is reached. | 
|  | 223 |  | 
|  | 224 | What:		/sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit | 
|  | 225 | Date:		November 2015 | 
|  | 226 | Contact:	Lu Baolu <baolu.lu@linux.intel.com> | 
|  | 227 | Description: | 
|  | 228 | Some USB3.0 devices are not friendly to USB3 LPM.  usb3_lpm_permit | 
|  | 229 | attribute allows enabling/disabling usb3 lpm of a port. It takes | 
|  | 230 | effect both before and after a usb device is enumerated. Supported | 
|  | 231 | values are "0" if both u1 and u2 are NOT permitted, "u1" if only u1 | 
|  | 232 | is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and | 
|  | 233 | u2 are permitted. | 
|  | 234 |  | 
|  | 235 | What:		/sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout | 
|  | 236 | Date:		May 2013 | 
|  | 237 | Contact:	Mathias Nyman <mathias.nyman@linux.intel.com> | 
|  | 238 | Description: | 
|  | 239 | USB 2.0 devices may support hardware link power management (LPM) | 
|  | 240 | L1 sleep state. The usb2_lpm_l1_timeout attribute allows | 
|  | 241 | tuning the timeout for L1 inactivity timer (LPM timer), e.g. | 
|  | 242 | needed inactivity time before host requests the device to go to L1 sleep. | 
|  | 243 | Useful for power management tuning. | 
|  | 244 | Supported values are 0 - 65535 microseconds. | 
|  | 245 |  | 
|  | 246 | What:		/sys/bus/usb/devices/.../power/usb2_lpm_besl | 
|  | 247 | Date:		May 2013 | 
|  | 248 | Contact:	Mathias Nyman <mathias.nyman@linux.intel.com> | 
|  | 249 | Description: | 
|  | 250 | USB 2.0 devices that support hardware link power management (LPM) | 
|  | 251 | L1 sleep state now use a best effort service latency value (BESL) to | 
|  | 252 | indicate the best effort to resumption of service to the device after the | 
|  | 253 | initiation of the resume event. | 
|  | 254 | If the device does not have a preferred besl value then the host can select | 
|  | 255 | one instead. This usb2_lpm_besl attribute allows to tune the host selected besl | 
|  | 256 | value in order to tune power saving and service latency. | 
|  | 257 |  | 
|  | 258 | Supported values are 0 - 15. | 
|  | 259 | More information on how besl values map to microseconds can be found in | 
|  | 260 | USB 2.0 ECN Errata for Link Power Management, section 4.10) | 
|  | 261 |  | 
|  | 262 | What:		/sys/bus/usb/devices/.../rx_lanes | 
|  | 263 | Date:		March 2018 | 
|  | 264 | Contact:	Mathias Nyman <mathias.nyman@linux.intel.com> | 
|  | 265 | Description: | 
|  | 266 | Number of rx lanes the device is using. | 
|  | 267 | USB 3.2 adds Dual-lane support, 2 rx and 2 tx lanes over Type-C. | 
|  | 268 | Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per | 
|  | 269 | direction. Devices before USB 3.2 are single lane (rx_lanes = 1) | 
|  | 270 |  | 
|  | 271 | What:		/sys/bus/usb/devices/.../tx_lanes | 
|  | 272 | Date:		March 2018 | 
|  | 273 | Contact:	Mathias Nyman <mathias.nyman@linux.intel.com> | 
|  | 274 | Description: | 
|  | 275 | Number of tx lanes the device is using. | 
|  | 276 | USB 3.2 adds Dual-lane support, 2 rx and 2 tx -lanes over Type-C. | 
|  | 277 | Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per | 
|  | 278 | direction. Devices before USB 3.2 are single lane (tx_lanes = 1) |