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