123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605 |
- 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.
- What: /sys/bus/usb/device/.../authorized
- Date: July 2008
- KernelVersion: 2.6.26
- Contact: David Vrabel <[email protected]>
- 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 <[email protected]>
- 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 <[email protected]>
- 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 <[email protected]>
- Description:
- For Certified Wireless USB devices only.
- Write a 1 to force the device to disconnect
- (equivalent to unplugging a wired USB device).
- What: /sys/bus/usb/drivers/.../new_id
- Date: October 2011
- Contact: [email protected]
- 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:
- idVendor idProduct bInterfaceClass RefIdVendor RefIdProduct
- The vendor ID and device ID fields are required, the
- 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.
- 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
- 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
- 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.
- What: /sys/bus/usb-serial/drivers/.../new_id
- Date: October 2011
- Contact: [email protected]
- 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.
- What: /sys/bus/usb/drivers/.../remove_id
- Date: November 2009
- Contact: CHENG Renquan <[email protected]>
- 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
- Reading from this file will list the dynamically added
- device IDs, exactly like reading from the entry
- "/sys/bus/usb/drivers/.../new_id"
- What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm
- Date: September 2011
- Contact: Andiry Xu <[email protected]>
- Description:
- 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.
- What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1
- /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2
- Date: November 2015
- Contact: Kevin Strasser <[email protected]>
- Lu Baolu <[email protected]>
- Description:
- 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
- the check is passed and the host supports USB3 hardware LPM,
- USB3 hardware LPM will be enabled for the device and the USB
- 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.
- What: /sys/bus/usb/devices/.../ltm_capable
- Date: July 2012
- Contact: Sarah Sharp <[email protected]>
- 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.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>
- Date: August 2012
- Contact: Lan Tianyu <[email protected]>
- Description:
- The /sys/bus/usb/devices/.../<hub_interface>/port<X>
- is usb port device's sysfs directory.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/connect_type
- Date: January 2013
- Contact: Lan Tianyu <[email protected]>
- Description:
- Some platforms provide usb port connect types through ACPI.
- This attribute is to expose these information to user space.
- The file will read "hotplug", "hardwired" and "not used" if the
- information is available, and "unknown" otherwise.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/location
- Date: October 2018
- Contact: Bjørn Mork <[email protected]>
- 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.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/quirks
- Date: May 2018
- Contact: Nicolas Boichat <[email protected]>
- 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.
- - 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.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/over_current_count
- Date: February 2018
- Contact: Richard Leitner <[email protected]>
- 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
- 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>/port<X>
- OVER_CURRENT_COUNT=[current value of this sysfs attribute]
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/usb3_lpm_permit
- Date: November 2015
- Contact: Lu Baolu <[email protected]>
- 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.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/connector
- Date: December 2021
- Contact: Heikki Krogerus <[email protected]>
- Description:
- Link to the USB Type-C connector when available. This link is
- only created when USB Type-C Connector Class is enabled, and
- only if the system firmware is capable of describing the
- connection between a port and its connector.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/disable
- Date: June 2022
- Contact: Michael Grzeschik <[email protected]>
- Description:
- This file controls the state of a USB port, including
- Vbus power output (but only on hubs that support
- power switching -- most hubs don't support it). If
- a port is disabled, the port is unusable: Devices
- attached to the port will not be detected, initialized,
- or enumerated.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/early_stop
- Date: Sep 2022
- Contact: Ray Chi <[email protected]>
- Description:
- Some USB hosts have some watchdog mechanisms so that the device
- may enter ramdump if it takes a long time during port initialization.
- This attribute allows each port just has two attempts so that the
- port initialization will be failed quickly. In addition, if a port
- which is marked with early_stop has failed to initialize, it will ignore
- all future connections until this attribute is clear.
- What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/state
- Date: June 2023
- Contact: Roy Luo <[email protected]>
- Description:
- Indicates current state of the USB device attached to the port.
- Valid states are: 'not-attached', 'attached', 'powered',
- 'reconnecting', 'unauthenticated', 'default', 'addressed',
- 'configured', and 'suspended'. This file supports poll() to
- monitor the state change from user space.
- What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
- Date: May 2013
- Contact: Mathias Nyman <[email protected]>
- 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 <[email protected]>
- 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)
- What: /sys/bus/usb/devices/.../rx_lanes
- Date: March 2018
- Contact: Mathias Nyman <[email protected]>
- 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 <[email protected]>
- 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)
- What: /sys/bus/usb/devices/usbX/bAlternateSetting
- Description:
- The current interface alternate setting number, in decimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bcdDevice
- Description:
- The device's release number, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bConfigurationValue
- Description:
- While a USB device typically have just one configuration
- setting, some devices support multiple configurations.
- This value shows the current configuration, in decimal.
- Changing its value will change the device's configuration
- to another setting.
- The number of configurations supported by a device is at:
- /sys/bus/usb/devices/usbX/bNumConfigurations
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bDeviceClass
- Description:
- Class code of the device, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bDeviceProtocol
- Description:
- Protocol code of the device, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bDeviceSubClass
- Description:
- Subclass code of the device, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bInterfaceClass
- Description:
- Class code of the interface, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bInterfaceNumber
- Description:
- Interface number, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bInterfaceProtocol
- Description:
- Protocol code of the interface, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bInterfaceSubClass
- Description:
- Subclass code of the interface, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bmAttributes
- Description:
- Attributes of the current configuration, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bMaxPacketSize0
- Description:
- Maximum endpoint 0 packet size, in decimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bMaxPower
- Description:
- Maximum power consumption of the active configuration of
- the device, in miliamperes.
- What: /sys/bus/usb/devices/usbX/bNumConfigurations
- Description:
- Number of the possible configurations of the device, in
- decimal. The current configuration is controlled via:
- /sys/bus/usb/devices/usbX/bConfigurationValue
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bNumEndpoints
- Description:
- Number of endpoints used on this interface, in hexadecimal.
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/bNumInterfaces
- Description:
- Number of interfaces on this device, in decimal.
- What: /sys/bus/usb/devices/usbX/busnum
- Description:
- Number of the bus.
- What: /sys/bus/usb/devices/usbX/configuration
- Description:
- Contents of the string descriptor associated with the
- current configuration. It may include the firmware version
- of a device and/or its serial number.
- What: /sys/bus/usb/devices/usbX/descriptors
- Description:
- Contains the interface descriptors, in binary.
- What: /sys/bus/usb/devices/usbX/idProduct
- Description:
- Product ID, in hexadecimal.
- What: /sys/bus/usb/devices/usbX/idVendor
- Description:
- Vendor ID, in hexadecimal.
- What: /sys/bus/usb/devices/usbX/devspec
- Description:
- Displays the Device Tree Open Firmware node of the interface.
- What: /sys/bus/usb/devices/usbX/avoid_reset_quirk
- Description:
- Most devices have this set to zero.
- If the value is 1, enable a USB quirk that prevents this
- device to use reset.
- (read/write)
- What: /sys/bus/usb/devices/usbX/devnum
- Description:
- USB interface device number, in decimal.
- What: /sys/bus/usb/devices/usbX/devpath
- Description:
- String containing the USB interface device path.
- What: /sys/bus/usb/devices/usbX/manufacturer
- Description:
- Vendor specific string containing the name of the
- manufacturer of the device.
- What: /sys/bus/usb/devices/usbX/maxchild
- Description:
- Number of ports of an USB hub
- What: /sys/bus/usb/devices/usbX/persist
- Description:
- Keeps the device even if it gets disconnected.
- What: /sys/bus/usb/devices/usbX/product
- Description:
- Vendor specific string containing the name of the
- device's product.
- What: /sys/bus/usb/devices/usbX/speed
- Description:
- Shows the device's max speed, according to the USB version,
- in Mbps.
- Can be:
- ======= ====================
- Unknown speed unknown
- 1.5 Low speed
- 15 Full speed
- 480 High Speed
- 5000 Super Speed
- 10000 Super Speed+
- 20000 Super Speed+ Gen 2x2
- ======= ====================
- What: /sys/bus/usb/devices/usbX/supports_autosuspend
- Description:
- Returns 1 if the device doesn't support autosuspend.
- Otherwise, returns 0.
- What: /sys/bus/usb/devices/usbX/urbnum
- Description:
- Number of URBs submitted for the whole device.
- What: /sys/bus/usb/devices/usbX/version
- Description:
- String containing the USB device version, as encoded
- at the BCD descriptor.
- What: /sys/bus/usb/devices/usbX/power/autosuspend
- Description:
- Time in milliseconds for the device to autosuspend. If the
- value is negative, then autosuspend is prevented.
- (read/write)
- What: /sys/bus/usb/devices/usbX/power/active_duration
- Description:
- The total time the device has not been suspended.
- What: /sys/bus/usb/devices/usbX/power/connected_duration
- Description:
- The total time (in msec) that the device has been connected.
- What: /sys/bus/usb/devices/usbX/power/level
- Description:
- What: /sys/bus/usb/devices/usbX/ep_<N>/bEndpointAddress
- Description:
- The address of the endpoint described by this descriptor,
- in hexadecimal. The endpoint direction on this bitmapped field
- is also shown at:
- /sys/bus/usb/devices/usbX/ep_<N>/direction
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/ep_<N>/bInterval
- Description:
- The interval of the endpoint as described on its descriptor,
- in hexadecimal. The actual interval depends on the version
- of the USB. Also shown in time units at
- /sys/bus/usb/devices/usbX/ep_<N>/interval.
- What: /sys/bus/usb/devices/usbX/ep_<N>/bLength
- Description:
- Number of bytes of the endpoint descriptor, in hexadecimal.
- What: /sys/bus/usb/devices/usbX/ep_<N>/bmAttributes
- Description:
- Attributes which apply to the endpoint as described on its
- descriptor, in hexadecimal. The endpoint type on this
- bitmapped field is also shown at:
- /sys/bus/usb/devices/usbX/ep_<N>/type
- See USB specs for its meaning.
- What: /sys/bus/usb/devices/usbX/ep_<N>/direction
- Description:
- Direction of the endpoint. Can be:
- - both (on control endpoints)
- - in
- - out
- What: /sys/bus/usb/devices/usbX/ep_<N>/interval
- Description:
- Interval for polling endpoint for data transfers, in
- milisseconds or microseconds.
- What: /sys/bus/usb/devices/usbX/ep_<N>/type
- Description:
- Descriptor type. Can be:
- - Control
- - Isoc
- - Bulk
- - Interrupt
- - unknown
- What: /sys/bus/usb/devices/usbX/ep_<N>/wMaxPacketSize
- Description:
- Maximum packet size this endpoint is capable of
- sending or receiving, in hexadecimal.
|