| What: /sys/bus/usb/devices/.../power/autosuspend |
| Date: March 2007 |
| KernelVersion: 2.6.21 |
| Contact: Alan Stern <stern@rowland.harvard.edu> |
| Description: |
| Each USB device directory will contain a file named |
| power/autosuspend. This file holds the time (in seconds) |
| the device must be idle before it will be autosuspended. |
| 0 means the device will be autosuspended as soon as |
| possible. Negative values will prevent the device from |
| being autosuspended at all, and writing a negative value |
| will resume the device if it is already suspended. |
| |
| The autosuspend delay for newly-created devices is set to |
| the value of the usbcore.autosuspend module parameter. |
| |
| What: /sys/bus/usb/devices/.../power/persist |
| Date: May 2007 |
| KernelVersion: 2.6.23 |
| Contact: Alan Stern <stern@rowland.harvard.edu> |
| Description: |
| If CONFIG_USB_PERSIST is set, then each USB device directory |
| will contain a file named power/persist. The file holds a |
| boolean value (0 or 1) indicating whether or not the |
| "USB-Persist" facility is enabled for the device. Since the |
| facility is inherently dangerous, it is disabled by default |
| for all devices except hubs. For more information, see |
| Documentation/usb/persist.txt. |
| |
| What: /sys/bus/usb/device/.../power/connected_duration |
| Date: January 2008 |
| KernelVersion: 2.6.25 |
| Contact: Sarah Sharp <sarah.a.sharp@intel.com> |
| Description: |
| If CONFIG_PM_RUNTIME is enabled then this file |
| is present. When read, it returns the total time (in msec) |
| that the USB device has been connected to the machine. This |
| file is read-only. |
| Users: |
| PowerTOP <power@bughost.org> |
| http://www.lesswatts.org/projects/powertop/ |
| |
| What: /sys/bus/usb/device/.../power/active_duration |
| Date: January 2008 |
| KernelVersion: 2.6.25 |
| Contact: Sarah Sharp <sarah.a.sharp@intel.com> |
| Description: |
| If CONFIG_PM_RUNTIME is enabled then this file |
| is present. When read, it returns the total time (in msec) |
| that the USB device has been active, i.e. not in a suspended |
| state. This file is read-only. |
| |
| Tools can use this file and the connected_duration file to |
| compute the percentage of time that a device has been active. |
| For example, |
| echo $((100 * `cat active_duration` / `cat connected_duration`)) |
| will give an integer percentage. Note that this does not |
| account for counter wrap. |
| Users: |
| PowerTOP <power@bughost.org> |
| http://www.lesswatts.org/projects/powertop/ |
| |
| What: /sys/bus/usb/device/<busnum>-<devnum>...:<config num>-<interface num>/supports_autosuspend |
| Date: January 2008 |
| KernelVersion: 2.6.27 |
| Contact: Sarah Sharp <sarah.a.sharp@intel.com> |
| Description: |
| When read, this file returns 1 if the interface driver |
| for this interface supports autosuspend. It also |
| returns 1 if no driver has claimed this interface, as an |
| unclaimed interface will not stop the device from being |
| autosuspended if all other interface drivers are idle. |
| The file returns 0 if autosuspend support has not been |
| added to the driver. |
| Users: |
| USB PM tool |
| git://git.moblin.org/users/sarah/usb-pm-tool/ |
| |
| 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). |
| |
| 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: |
| idVendor idProduct bInterfaceClass. |
| The vendor ID and device ID fields are required, the |
| interface class is optional. |
| 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 |
| |
| 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: 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. |
| |
| 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 |
| |
| 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/device/.../avoid_reset_quirk |
| Date: December 2009 |
| Contact: Oliver Neukum <oliver@neukum.org> |
| Description: |
| Writing 1 to this file tells the kernel that this |
| device will morph into another mode when it is reset. |
| Drivers will not use reset for error handling for |
| such devices. |
| Users: |
| usb_modeswitch |
| |
| What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm |
| Date: September 2011 |
| Contact: Andiry Xu <andiry.xu@amd.com> |
| Description: |
| If CONFIG_PM_RUNTIME 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/.../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 |
| combination of hub descriptor bits and platform-specific data |
| such as ACPI. This file will read either "removable" or |
| "fixed" if the information is available, and "unknown" |
| otherwise. |
| |
| 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. |
| |
| 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. |
| |
| 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. |
| The file will read "hotplug", "wired" and "not used" if the |
| information is available, and "unknown" otherwise. |
| |
| 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) |