2015-08-26 02:10:10 +07:00
|
|
|
What: /sys/bus/usb/devices/INTERFACE/authorized
|
|
|
|
Date: August 2015
|
|
|
|
Description:
|
|
|
|
This allows to authorize (1) or deauthorize (0)
|
|
|
|
individual interfaces instead a whole device
|
|
|
|
in contrast to the device authorization.
|
|
|
|
If a deauthorized interface will be authorized
|
|
|
|
so the driver probing must be triggered manually
|
|
|
|
by writing INTERFACE to /sys/bus/usb/drivers_probe
|
|
|
|
This allows to avoid side-effects with drivers
|
|
|
|
that need multiple interfaces.
|
|
|
|
A deauthorized interface cannot be probed or claimed.
|
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/usbX/interface_authorized_default
|
|
|
|
Date: August 2015
|
|
|
|
Description:
|
|
|
|
This is used as value that determines if interfaces
|
|
|
|
would be authorized by default.
|
|
|
|
The value can be 1 or 0. It's by default 1.
|
|
|
|
|
2008-09-17 22:34:41 +07:00
|
|
|
What: /sys/bus/usb/device/.../authorized
|
|
|
|
Date: July 2008
|
|
|
|
KernelVersion: 2.6.26
|
|
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
|
|
Description:
|
|
|
|
Authorized devices are available for use by device
|
|
|
|
drivers, non-authorized one are not. By default, wired
|
|
|
|
USB devices are authorized.
|
|
|
|
|
|
|
|
Certified Wireless USB devices are not authorized
|
|
|
|
initially and should be (by writing 1) after the
|
|
|
|
device has been authenticated.
|
|
|
|
|
|
|
|
What: /sys/bus/usb/device/.../wusb_cdid
|
|
|
|
Date: July 2008
|
|
|
|
KernelVersion: 2.6.27
|
|
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
|
|
Description:
|
|
|
|
For Certified Wireless USB devices only.
|
|
|
|
|
|
|
|
A devices's CDID, as 16 space-separated hex octets.
|
|
|
|
|
|
|
|
What: /sys/bus/usb/device/.../wusb_ck
|
|
|
|
Date: July 2008
|
|
|
|
KernelVersion: 2.6.27
|
|
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
|
|
Description:
|
|
|
|
For Certified Wireless USB devices only.
|
|
|
|
|
|
|
|
Write the device's connection key (CK) to start the
|
|
|
|
authentication of the device. The CK is 16
|
|
|
|
space-separated hex octets.
|
|
|
|
|
|
|
|
What: /sys/bus/usb/device/.../wusb_disconnect
|
|
|
|
Date: July 2008
|
|
|
|
KernelVersion: 2.6.27
|
|
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
|
|
Description:
|
|
|
|
For Certified Wireless USB devices only.
|
|
|
|
|
|
|
|
Write a 1 to force the device to disconnect
|
|
|
|
(equivalent to unplugging a wired USB device).
|
2009-11-22 00:28:52 +07:00
|
|
|
|
2011-10-23 19:22:29 +07:00
|
|
|
What: /sys/bus/usb/drivers/.../new_id
|
|
|
|
Date: October 2011
|
|
|
|
Contact: linux-usb@vger.kernel.org
|
|
|
|
Description:
|
|
|
|
Writing a device ID to this file will attempt to
|
|
|
|
dynamically add a new device ID to a USB device driver.
|
|
|
|
This may allow the driver to support more hardware than
|
|
|
|
was included in the driver's static device ID support
|
|
|
|
table at compile time. The format for the device ID is:
|
2014-01-11 01:36:42 +07:00
|
|
|
idVendor idProduct bInterfaceClass RefIdVendor RefIdProduct
|
2011-10-23 19:22:29 +07:00
|
|
|
The vendor ID and device ID fields are required, the
|
2014-01-11 01:36:42 +07:00
|
|
|
rest is optional. The Ref* tuple can be used to tell the
|
|
|
|
driver to use the same driver_data for the new device as
|
|
|
|
it is used for the reference device.
|
2011-10-23 19:22:29 +07:00
|
|
|
Upon successfully adding an ID, the driver will probe
|
|
|
|
for the device and attempt to bind to it. For example:
|
|
|
|
# echo "8086 10f5" > /sys/bus/usb/drivers/foo/new_id
|
|
|
|
|
2014-01-11 01:36:42 +07:00
|
|
|
Here add a new device (0458:7045) using driver_data from
|
|
|
|
an already supported device (0458:704c):
|
|
|
|
# echo "0458 7045 0 0458 704c" > /sys/bus/usb/drivers/foo/new_id
|
|
|
|
|
2012-05-13 17:34:59 +07:00
|
|
|
Reading from this file will list all dynamically added
|
|
|
|
device IDs in the same format, with one entry per
|
|
|
|
line. For example:
|
|
|
|
# cat /sys/bus/usb/drivers/foo/new_id
|
|
|
|
8086 10f5
|
|
|
|
dead beef 06
|
|
|
|
f00d cafe
|
|
|
|
|
|
|
|
The list will be truncated at PAGE_SIZE bytes due to
|
|
|
|
sysfs restrictions.
|
|
|
|
|
2011-10-23 19:22:29 +07:00
|
|
|
What: /sys/bus/usb-serial/drivers/.../new_id
|
|
|
|
Date: October 2011
|
|
|
|
Contact: linux-usb@vger.kernel.org
|
|
|
|
Description:
|
|
|
|
For serial USB drivers, this attribute appears under the
|
|
|
|
extra bus folder "usb-serial" in sysfs; apart from that
|
|
|
|
difference, all descriptions from the entry
|
|
|
|
"/sys/bus/usb/drivers/.../new_id" apply.
|
|
|
|
|
2009-11-22 00:28:52 +07:00
|
|
|
What: /sys/bus/usb/drivers/.../remove_id
|
|
|
|
Date: November 2009
|
|
|
|
Contact: CHENG Renquan <rqcheng@smu.edu.sg>
|
|
|
|
Description:
|
|
|
|
Writing a device ID to this file will remove an ID
|
|
|
|
that was dynamically added via the new_id sysfs entry.
|
|
|
|
The format for the device ID is:
|
|
|
|
idVendor idProduct. After successfully
|
|
|
|
removing an ID, the driver will no longer support the
|
|
|
|
device. This is useful to ensure auto probing won't
|
|
|
|
match the driver to the device. For example:
|
|
|
|
# echo "046d c315" > /sys/bus/usb/drivers/foo/remove_id
|
2010-01-16 07:33:03 +07:00
|
|
|
|
2012-05-13 17:34:59 +07:00
|
|
|
Reading from this file will list the dynamically added
|
|
|
|
device IDs, exactly like reading from the entry
|
|
|
|
"/sys/bus/usb/drivers/.../new_id"
|
|
|
|
|
2011-09-24 04:19:53 +07:00
|
|
|
What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm
|
|
|
|
Date: September 2011
|
|
|
|
Contact: Andiry Xu <andiry.xu@amd.com>
|
|
|
|
Description:
|
2014-11-30 05:47:05 +07:00
|
|
|
If CONFIG_PM is set and a USB 2.0 lpm-capable device is plugged
|
|
|
|
in to a xHCI host which support link PM, it will perform a LPM
|
|
|
|
test; if the test is passed and host supports USB2 hardware LPM
|
|
|
|
(xHCI 1.0 feature), USB2 hardware LPM will be enabled for the
|
|
|
|
device and the USB device directory will contain a file named
|
|
|
|
power/usb2_hardware_lpm. The file holds a string value (enable
|
|
|
|
or disable) indicating whether or not USB2 hardware LPM is
|
|
|
|
enabled for the device. Developer can write y/Y/1 or n/N/0 to
|
|
|
|
the file to enable/disable the feature.
|
2012-02-04 05:11:54 +07:00
|
|
|
|
2015-11-14 15:26:32 +07:00
|
|
|
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1
|
|
|
|
/sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2
|
|
|
|
Date: November 2015
|
2015-06-17 00:35:30 +07:00
|
|
|
Contact: Kevin Strasser <kevin.strasser@linux.intel.com>
|
2015-11-14 15:26:32 +07:00
|
|
|
Lu Baolu <baolu.lu@linux.intel.com>
|
2015-06-17 00:35:30 +07:00
|
|
|
Description:
|
2015-07-29 14:08:53 +07:00
|
|
|
If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged
|
|
|
|
in to a xHCI host which supports link PM, it will check if U1
|
|
|
|
and U2 exit latencies have been set in the BOS descriptor; if
|
2015-11-14 15:26:32 +07:00
|
|
|
the check is passed and the host supports USB3 hardware LPM,
|
2015-07-29 14:08:53 +07:00
|
|
|
USB3 hardware LPM will be enabled for the device and the USB
|
2015-11-14 15:26:32 +07:00
|
|
|
device directory will contain two files named
|
|
|
|
power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These
|
|
|
|
files hold a string value (enable or disable) indicating whether
|
|
|
|
or not USB3 hardware LPM U1 or U2 is enabled for the device.
|
2015-06-17 00:35:30 +07:00
|
|
|
|
2012-02-04 05:11:54 +07:00
|
|
|
What: /sys/bus/usb/devices/.../removable
|
|
|
|
Date: February 2012
|
|
|
|
Contact: Matthew Garrett <mjg@redhat.com>
|
|
|
|
Description:
|
|
|
|
Some information about whether a given USB device is
|
|
|
|
physically fixed to the platform can be inferred from a
|
2012-04-09 22:22:13 +07:00
|
|
|
combination of hub descriptor bits and platform-specific data
|
2012-02-04 05:11:54 +07:00
|
|
|
such as ACPI. This file will read either "removable" or
|
|
|
|
"fixed" if the information is available, and "unknown"
|
2012-04-09 22:22:13 +07:00
|
|
|
otherwise.
|
2012-07-06 07:17:24 +07:00
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/.../ltm_capable
|
|
|
|
Date: July 2012
|
|
|
|
Contact: Sarah Sharp <sarah.a.sharp@linux.intel.com>
|
|
|
|
Description:
|
|
|
|
USB 3.0 devices may optionally support Latency Tolerance
|
|
|
|
Messaging (LTM). They indicate their support by setting a bit
|
|
|
|
in the bmAttributes field of their SuperSpeed BOS descriptors.
|
|
|
|
If that bit is set for the device, ltm_capable will read "yes".
|
|
|
|
If the device doesn't support LTM, the file will read "no".
|
|
|
|
The file will be present for all speeds of USB devices, and will
|
|
|
|
always read "no" for USB 1.1 and USB 2.0 devices.
|
2012-09-05 12:44:31 +07:00
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX
|
|
|
|
Date: August 2012
|
|
|
|
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
|
|
|
Description:
|
|
|
|
The /sys/bus/usb/devices/.../(hub interface)/portX
|
|
|
|
is usb port device's sysfs directory.
|
2013-01-20 00:53:32 +07:00
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type
|
|
|
|
Date: January 2013
|
|
|
|
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
|
|
|
Description:
|
|
|
|
Some platforms provide usb port connect types through ACPI.
|
|
|
|
This attribute is to expose these information to user space.
|
2019-02-02 04:55:07 +07:00
|
|
|
The file will read "hotplug", "hardwired" and "not used" if the
|
2013-01-20 00:53:32 +07:00
|
|
|
information is available, and "unknown" otherwise.
|
2013-05-23 21:14:31 +07:00
|
|
|
|
2018-09-28 20:40:31 +07:00
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/location
|
|
|
|
Date: October 2018
|
|
|
|
Contact: Bjørn Mork <bjorn@mork.no>
|
|
|
|
Description:
|
|
|
|
Some platforms provide usb port physical location through
|
|
|
|
firmware. This is used by the kernel to pair up logical ports
|
|
|
|
mapping to the same physical connector. The attribute exposes the
|
|
|
|
raw location value as a hex integer.
|
|
|
|
|
|
|
|
|
2018-05-28 13:32:18 +07:00
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/quirks
|
|
|
|
Date: May 2018
|
|
|
|
Contact: Nicolas Boichat <drinkcat@chromium.org>
|
|
|
|
Description:
|
|
|
|
In some cases, we care about time-to-active for devices
|
|
|
|
connected on a specific port (e.g. non-standard USB port like
|
|
|
|
pogo pins), where the device to be connected is known in
|
|
|
|
advance, and behaves well according to the specification.
|
|
|
|
This attribute is a bit-field that controls the behavior of
|
|
|
|
a specific port:
|
|
|
|
- Bit 0 of this field selects the "old" enumeration scheme,
|
|
|
|
as it is considerably faster (it only causes one USB reset
|
|
|
|
instead of 2).
|
|
|
|
The old enumeration scheme can also be selected globally
|
|
|
|
using /sys/module/usbcore/parameters/old_scheme_first, but
|
|
|
|
it is often not desirable as the new scheme was introduced to
|
|
|
|
increase compatibility with more devices.
|
2018-05-28 13:32:19 +07:00
|
|
|
- Bit 1 reduces TRSTRCY to the 10 ms that are required by the
|
|
|
|
USB 2.0 specification, instead of the 50 ms that are normally
|
|
|
|
used to help make enumeration work better on some high speed
|
|
|
|
devices.
|
2018-05-28 13:32:18 +07:00
|
|
|
|
2018-03-20 17:17:13 +07:00
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/over_current_count
|
|
|
|
Date: February 2018
|
|
|
|
Contact: Richard Leitner <richard.leitner@skidata.com>
|
|
|
|
Description:
|
|
|
|
Most hubs are able to detect over-current situations on their
|
|
|
|
ports and report them to the kernel. This attribute is to expose
|
|
|
|
the number of over-current situation occurred on a specific port
|
|
|
|
to user space. This file will contain an unsigned 32 bit value
|
2018-09-21 00:17:54 +07:00
|
|
|
which wraps to 0 after its maximum is reached. This file supports
|
|
|
|
poll() for monitoring changes to this value in user space.
|
|
|
|
|
|
|
|
Any time this value changes the corresponding hub device will send a
|
|
|
|
udev event with the following attributes:
|
|
|
|
|
|
|
|
OVER_CURRENT_PORT=/sys/bus/usb/devices/.../(hub interface)/portX
|
|
|
|
OVER_CURRENT_COUNT=[current value of this sysfs attribute]
|
2018-03-20 17:17:13 +07:00
|
|
|
|
2015-11-14 15:26:33 +07:00
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
|
|
|
|
Date: November 2015
|
|
|
|
Contact: Lu Baolu <baolu.lu@linux.intel.com>
|
|
|
|
Description:
|
|
|
|
Some USB3.0 devices are not friendly to USB3 LPM. usb3_lpm_permit
|
|
|
|
attribute allows enabling/disabling usb3 lpm of a port. It takes
|
|
|
|
effect both before and after a usb device is enumerated. Supported
|
|
|
|
values are "0" if both u1 and u2 are NOT permitted, "u1" if only u1
|
|
|
|
is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
|
|
|
|
u2 are permitted.
|
|
|
|
|
2013-05-23 21:14:31 +07:00
|
|
|
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
|
|
|
Date: May 2013
|
|
|
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
|
|
|
Description:
|
|
|
|
USB 2.0 devices may support hardware link power management (LPM)
|
|
|
|
L1 sleep state. The usb2_lpm_l1_timeout attribute allows
|
|
|
|
tuning the timeout for L1 inactivity timer (LPM timer), e.g.
|
|
|
|
needed inactivity time before host requests the device to go to L1 sleep.
|
|
|
|
Useful for power management tuning.
|
|
|
|
Supported values are 0 - 65535 microseconds.
|
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/.../power/usb2_lpm_besl
|
|
|
|
Date: May 2013
|
|
|
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
|
|
|
Description:
|
|
|
|
USB 2.0 devices that support hardware link power management (LPM)
|
|
|
|
L1 sleep state now use a best effort service latency value (BESL) to
|
|
|
|
indicate the best effort to resumption of service to the device after the
|
|
|
|
initiation of the resume event.
|
|
|
|
If the device does not have a preferred besl value then the host can select
|
|
|
|
one instead. This usb2_lpm_besl attribute allows to tune the host selected besl
|
|
|
|
value in order to tune power saving and service latency.
|
|
|
|
|
|
|
|
Supported values are 0 - 15.
|
|
|
|
More information on how besl values map to microseconds can be found in
|
|
|
|
USB 2.0 ECN Errata for Link Power Management, section 4.10)
|
2018-04-19 23:05:55 +07:00
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/.../rx_lanes
|
|
|
|
Date: March 2018
|
|
|
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
|
|
|
Description:
|
|
|
|
Number of rx lanes the device is using.
|
|
|
|
USB 3.2 adds Dual-lane support, 2 rx and 2 tx lanes over Type-C.
|
|
|
|
Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per
|
|
|
|
direction. Devices before USB 3.2 are single lane (rx_lanes = 1)
|
|
|
|
|
|
|
|
What: /sys/bus/usb/devices/.../tx_lanes
|
|
|
|
Date: March 2018
|
|
|
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
|
|
|
Description:
|
|
|
|
Number of tx lanes the device is using.
|
|
|
|
USB 3.2 adds Dual-lane support, 2 rx and 2 tx -lanes over Type-C.
|
|
|
|
Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per
|
|
|
|
direction. Devices before USB 3.2 are single lane (tx_lanes = 1)
|