18c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/INTERFACE/authorized 28c2ecf20Sopenharmony_ciDate: August 2015 38c2ecf20Sopenharmony_ciDescription: 48c2ecf20Sopenharmony_ci This allows to authorize (1) or deauthorize (0) 58c2ecf20Sopenharmony_ci individual interfaces instead a whole device 68c2ecf20Sopenharmony_ci in contrast to the device authorization. 78c2ecf20Sopenharmony_ci If a deauthorized interface will be authorized 88c2ecf20Sopenharmony_ci so the driver probing must be triggered manually 98c2ecf20Sopenharmony_ci by writing INTERFACE to /sys/bus/usb/drivers_probe 108c2ecf20Sopenharmony_ci This allows to avoid side-effects with drivers 118c2ecf20Sopenharmony_ci that need multiple interfaces. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci A deauthorized interface cannot be probed or claimed. 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/usbX/interface_authorized_default 168c2ecf20Sopenharmony_ciDate: August 2015 178c2ecf20Sopenharmony_ciDescription: 188c2ecf20Sopenharmony_ci This is used as value that determines if interfaces 198c2ecf20Sopenharmony_ci would be authorized by default. 208c2ecf20Sopenharmony_ci The value can be 1 or 0. It's by default 1. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/device/.../authorized 238c2ecf20Sopenharmony_ciDate: July 2008 248c2ecf20Sopenharmony_ciKernelVersion: 2.6.26 258c2ecf20Sopenharmony_ciContact: David Vrabel <david.vrabel@csr.com> 268c2ecf20Sopenharmony_ciDescription: 278c2ecf20Sopenharmony_ci Authorized devices are available for use by device 288c2ecf20Sopenharmony_ci drivers, non-authorized one are not. By default, wired 298c2ecf20Sopenharmony_ci USB devices are authorized. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci Certified Wireless USB devices are not authorized 328c2ecf20Sopenharmony_ci initially and should be (by writing 1) after the 338c2ecf20Sopenharmony_ci device has been authenticated. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/device/.../wusb_cdid 368c2ecf20Sopenharmony_ciDate: July 2008 378c2ecf20Sopenharmony_ciKernelVersion: 2.6.27 388c2ecf20Sopenharmony_ciContact: David Vrabel <david.vrabel@csr.com> 398c2ecf20Sopenharmony_ciDescription: 408c2ecf20Sopenharmony_ci For Certified Wireless USB devices only. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci A devices's CDID, as 16 space-separated hex octets. 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/device/.../wusb_ck 458c2ecf20Sopenharmony_ciDate: July 2008 468c2ecf20Sopenharmony_ciKernelVersion: 2.6.27 478c2ecf20Sopenharmony_ciContact: David Vrabel <david.vrabel@csr.com> 488c2ecf20Sopenharmony_ciDescription: 498c2ecf20Sopenharmony_ci For Certified Wireless USB devices only. 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci Write the device's connection key (CK) to start the 528c2ecf20Sopenharmony_ci authentication of the device. The CK is 16 538c2ecf20Sopenharmony_ci space-separated hex octets. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/device/.../wusb_disconnect 568c2ecf20Sopenharmony_ciDate: July 2008 578c2ecf20Sopenharmony_ciKernelVersion: 2.6.27 588c2ecf20Sopenharmony_ciContact: David Vrabel <david.vrabel@csr.com> 598c2ecf20Sopenharmony_ciDescription: 608c2ecf20Sopenharmony_ci For Certified Wireless USB devices only. 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci Write a 1 to force the device to disconnect 638c2ecf20Sopenharmony_ci (equivalent to unplugging a wired USB device). 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/drivers/.../new_id 668c2ecf20Sopenharmony_ciDate: October 2011 678c2ecf20Sopenharmony_ciContact: linux-usb@vger.kernel.org 688c2ecf20Sopenharmony_ciDescription: 698c2ecf20Sopenharmony_ci Writing a device ID to this file will attempt to 708c2ecf20Sopenharmony_ci dynamically add a new device ID to a USB device driver. 718c2ecf20Sopenharmony_ci This may allow the driver to support more hardware than 728c2ecf20Sopenharmony_ci was included in the driver's static device ID support 738c2ecf20Sopenharmony_ci table at compile time. The format for the device ID is: 748c2ecf20Sopenharmony_ci idVendor idProduct bInterfaceClass RefIdVendor RefIdProduct 758c2ecf20Sopenharmony_ci The vendor ID and device ID fields are required, the 768c2ecf20Sopenharmony_ci rest is optional. The `Ref*` tuple can be used to tell the 778c2ecf20Sopenharmony_ci driver to use the same driver_data for the new device as 788c2ecf20Sopenharmony_ci it is used for the reference device. 798c2ecf20Sopenharmony_ci Upon successfully adding an ID, the driver will probe 808c2ecf20Sopenharmony_ci for the device and attempt to bind to it. For example:: 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci # echo "8086 10f5" > /sys/bus/usb/drivers/foo/new_id 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci Here add a new device (0458:7045) using driver_data from 858c2ecf20Sopenharmony_ci an already supported device (0458:704c):: 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci # echo "0458 7045 0 0458 704c" > /sys/bus/usb/drivers/foo/new_id 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci Reading from this file will list all dynamically added 908c2ecf20Sopenharmony_ci device IDs in the same format, with one entry per 918c2ecf20Sopenharmony_ci line. For example:: 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci # cat /sys/bus/usb/drivers/foo/new_id 948c2ecf20Sopenharmony_ci 8086 10f5 958c2ecf20Sopenharmony_ci dead beef 06 968c2ecf20Sopenharmony_ci f00d cafe 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci The list will be truncated at PAGE_SIZE bytes due to 998c2ecf20Sopenharmony_ci sysfs restrictions. 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ciWhat: /sys/bus/usb-serial/drivers/.../new_id 1028c2ecf20Sopenharmony_ciDate: October 2011 1038c2ecf20Sopenharmony_ciContact: linux-usb@vger.kernel.org 1048c2ecf20Sopenharmony_ciDescription: 1058c2ecf20Sopenharmony_ci For serial USB drivers, this attribute appears under the 1068c2ecf20Sopenharmony_ci extra bus folder "usb-serial" in sysfs; apart from that 1078c2ecf20Sopenharmony_ci difference, all descriptions from the entry 1088c2ecf20Sopenharmony_ci "/sys/bus/usb/drivers/.../new_id" apply. 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/drivers/.../remove_id 1118c2ecf20Sopenharmony_ciDate: November 2009 1128c2ecf20Sopenharmony_ciContact: CHENG Renquan <rqcheng@smu.edu.sg> 1138c2ecf20Sopenharmony_ciDescription: 1148c2ecf20Sopenharmony_ci Writing a device ID to this file will remove an ID 1158c2ecf20Sopenharmony_ci that was dynamically added via the new_id sysfs entry. 1168c2ecf20Sopenharmony_ci The format for the device ID is: 1178c2ecf20Sopenharmony_ci idVendor idProduct. After successfully 1188c2ecf20Sopenharmony_ci removing an ID, the driver will no longer support the 1198c2ecf20Sopenharmony_ci device. This is useful to ensure auto probing won't 1208c2ecf20Sopenharmony_ci match the driver to the device. For example: 1218c2ecf20Sopenharmony_ci # echo "046d c315" > /sys/bus/usb/drivers/foo/remove_id 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci Reading from this file will list the dynamically added 1248c2ecf20Sopenharmony_ci device IDs, exactly like reading from the entry 1258c2ecf20Sopenharmony_ci "/sys/bus/usb/drivers/.../new_id" 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../power/usb2_hardware_lpm 1288c2ecf20Sopenharmony_ciDate: September 2011 1298c2ecf20Sopenharmony_ciContact: Andiry Xu <andiry.xu@amd.com> 1308c2ecf20Sopenharmony_ciDescription: 1318c2ecf20Sopenharmony_ci If CONFIG_PM is set and a USB 2.0 lpm-capable device is plugged 1328c2ecf20Sopenharmony_ci in to a xHCI host which support link PM, it will perform a LPM 1338c2ecf20Sopenharmony_ci test; if the test is passed and host supports USB2 hardware LPM 1348c2ecf20Sopenharmony_ci (xHCI 1.0 feature), USB2 hardware LPM will be enabled for the 1358c2ecf20Sopenharmony_ci device and the USB device directory will contain a file named 1368c2ecf20Sopenharmony_ci power/usb2_hardware_lpm. The file holds a string value (enable 1378c2ecf20Sopenharmony_ci or disable) indicating whether or not USB2 hardware LPM is 1388c2ecf20Sopenharmony_ci enabled for the device. Developer can write y/Y/1 or n/N/0 to 1398c2ecf20Sopenharmony_ci the file to enable/disable the feature. 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1 1428c2ecf20Sopenharmony_ci /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2 1438c2ecf20Sopenharmony_ciDate: November 2015 1448c2ecf20Sopenharmony_ciContact: Kevin Strasser <kevin.strasser@linux.intel.com> 1458c2ecf20Sopenharmony_ci Lu Baolu <baolu.lu@linux.intel.com> 1468c2ecf20Sopenharmony_ciDescription: 1478c2ecf20Sopenharmony_ci If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged 1488c2ecf20Sopenharmony_ci in to a xHCI host which supports link PM, it will check if U1 1498c2ecf20Sopenharmony_ci and U2 exit latencies have been set in the BOS descriptor; if 1508c2ecf20Sopenharmony_ci the check is passed and the host supports USB3 hardware LPM, 1518c2ecf20Sopenharmony_ci USB3 hardware LPM will be enabled for the device and the USB 1528c2ecf20Sopenharmony_ci device directory will contain two files named 1538c2ecf20Sopenharmony_ci power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These 1548c2ecf20Sopenharmony_ci files hold a string value (enable or disable) indicating whether 1558c2ecf20Sopenharmony_ci or not USB3 hardware LPM U1 or U2 is enabled for the device. 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../ltm_capable 1588c2ecf20Sopenharmony_ciDate: July 2012 1598c2ecf20Sopenharmony_ciContact: Sarah Sharp <sarah.a.sharp@linux.intel.com> 1608c2ecf20Sopenharmony_ciDescription: 1618c2ecf20Sopenharmony_ci USB 3.0 devices may optionally support Latency Tolerance 1628c2ecf20Sopenharmony_ci Messaging (LTM). They indicate their support by setting a bit 1638c2ecf20Sopenharmony_ci in the bmAttributes field of their SuperSpeed BOS descriptors. 1648c2ecf20Sopenharmony_ci If that bit is set for the device, ltm_capable will read "yes". 1658c2ecf20Sopenharmony_ci If the device doesn't support LTM, the file will read "no". 1668c2ecf20Sopenharmony_ci The file will be present for all speeds of USB devices, and will 1678c2ecf20Sopenharmony_ci always read "no" for USB 1.1 and USB 2.0 devices. 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../(hub interface)/portX 1708c2ecf20Sopenharmony_ciDate: August 2012 1718c2ecf20Sopenharmony_ciContact: Lan Tianyu <tianyu.lan@intel.com> 1728c2ecf20Sopenharmony_ciDescription: 1738c2ecf20Sopenharmony_ci The /sys/bus/usb/devices/.../(hub interface)/portX 1748c2ecf20Sopenharmony_ci is usb port device's sysfs directory. 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type 1778c2ecf20Sopenharmony_ciDate: January 2013 1788c2ecf20Sopenharmony_ciContact: Lan Tianyu <tianyu.lan@intel.com> 1798c2ecf20Sopenharmony_ciDescription: 1808c2ecf20Sopenharmony_ci Some platforms provide usb port connect types through ACPI. 1818c2ecf20Sopenharmony_ci This attribute is to expose these information to user space. 1828c2ecf20Sopenharmony_ci The file will read "hotplug", "hardwired" and "not used" if the 1838c2ecf20Sopenharmony_ci information is available, and "unknown" otherwise. 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../(hub interface)/portX/location 1868c2ecf20Sopenharmony_ciDate: October 2018 1878c2ecf20Sopenharmony_ciContact: Bjørn Mork <bjorn@mork.no> 1888c2ecf20Sopenharmony_ciDescription: 1898c2ecf20Sopenharmony_ci Some platforms provide usb port physical location through 1908c2ecf20Sopenharmony_ci firmware. This is used by the kernel to pair up logical ports 1918c2ecf20Sopenharmony_ci mapping to the same physical connector. The attribute exposes the 1928c2ecf20Sopenharmony_ci raw location value as a hex integer. 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../(hub interface)/portX/quirks 1968c2ecf20Sopenharmony_ciDate: May 2018 1978c2ecf20Sopenharmony_ciContact: Nicolas Boichat <drinkcat@chromium.org> 1988c2ecf20Sopenharmony_ciDescription: 1998c2ecf20Sopenharmony_ci In some cases, we care about time-to-active for devices 2008c2ecf20Sopenharmony_ci connected on a specific port (e.g. non-standard USB port like 2018c2ecf20Sopenharmony_ci pogo pins), where the device to be connected is known in 2028c2ecf20Sopenharmony_ci advance, and behaves well according to the specification. 2038c2ecf20Sopenharmony_ci This attribute is a bit-field that controls the behavior of 2048c2ecf20Sopenharmony_ci a specific port: 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci - Bit 0 of this field selects the "old" enumeration scheme, 2078c2ecf20Sopenharmony_ci as it is considerably faster (it only causes one USB reset 2088c2ecf20Sopenharmony_ci instead of 2). 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci The old enumeration scheme can also be selected globally 2118c2ecf20Sopenharmony_ci using /sys/module/usbcore/parameters/old_scheme_first, but 2128c2ecf20Sopenharmony_ci it is often not desirable as the new scheme was introduced to 2138c2ecf20Sopenharmony_ci increase compatibility with more devices. 2148c2ecf20Sopenharmony_ci - Bit 1 reduces TRSTRCY to the 10 ms that are required by the 2158c2ecf20Sopenharmony_ci USB 2.0 specification, instead of the 50 ms that are normally 2168c2ecf20Sopenharmony_ci used to help make enumeration work better on some high speed 2178c2ecf20Sopenharmony_ci devices. 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../(hub interface)/portX/over_current_count 2208c2ecf20Sopenharmony_ciDate: February 2018 2218c2ecf20Sopenharmony_ciContact: Richard Leitner <richard.leitner@skidata.com> 2228c2ecf20Sopenharmony_ciDescription: 2238c2ecf20Sopenharmony_ci Most hubs are able to detect over-current situations on their 2248c2ecf20Sopenharmony_ci ports and report them to the kernel. This attribute is to expose 2258c2ecf20Sopenharmony_ci the number of over-current situation occurred on a specific port 2268c2ecf20Sopenharmony_ci to user space. This file will contain an unsigned 32 bit value 2278c2ecf20Sopenharmony_ci which wraps to 0 after its maximum is reached. This file supports 2288c2ecf20Sopenharmony_ci poll() for monitoring changes to this value in user space. 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci Any time this value changes the corresponding hub device will send a 2318c2ecf20Sopenharmony_ci udev event with the following attributes:: 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci OVER_CURRENT_PORT=/sys/bus/usb/devices/.../(hub interface)/portX 2348c2ecf20Sopenharmony_ci OVER_CURRENT_COUNT=[current value of this sysfs attribute] 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit 2378c2ecf20Sopenharmony_ciDate: November 2015 2388c2ecf20Sopenharmony_ciContact: Lu Baolu <baolu.lu@linux.intel.com> 2398c2ecf20Sopenharmony_ciDescription: 2408c2ecf20Sopenharmony_ci Some USB3.0 devices are not friendly to USB3 LPM. usb3_lpm_permit 2418c2ecf20Sopenharmony_ci attribute allows enabling/disabling usb3 lpm of a port. It takes 2428c2ecf20Sopenharmony_ci effect both before and after a usb device is enumerated. Supported 2438c2ecf20Sopenharmony_ci values are "0" if both u1 and u2 are NOT permitted, "u1" if only u1 2448c2ecf20Sopenharmony_ci is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and 2458c2ecf20Sopenharmony_ci u2 are permitted. 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout 2488c2ecf20Sopenharmony_ciDate: May 2013 2498c2ecf20Sopenharmony_ciContact: Mathias Nyman <mathias.nyman@linux.intel.com> 2508c2ecf20Sopenharmony_ciDescription: 2518c2ecf20Sopenharmony_ci USB 2.0 devices may support hardware link power management (LPM) 2528c2ecf20Sopenharmony_ci L1 sleep state. The usb2_lpm_l1_timeout attribute allows 2538c2ecf20Sopenharmony_ci tuning the timeout for L1 inactivity timer (LPM timer), e.g. 2548c2ecf20Sopenharmony_ci needed inactivity time before host requests the device to go to L1 sleep. 2558c2ecf20Sopenharmony_ci Useful for power management tuning. 2568c2ecf20Sopenharmony_ci Supported values are 0 - 65535 microseconds. 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../power/usb2_lpm_besl 2598c2ecf20Sopenharmony_ciDate: May 2013 2608c2ecf20Sopenharmony_ciContact: Mathias Nyman <mathias.nyman@linux.intel.com> 2618c2ecf20Sopenharmony_ciDescription: 2628c2ecf20Sopenharmony_ci USB 2.0 devices that support hardware link power management (LPM) 2638c2ecf20Sopenharmony_ci L1 sleep state now use a best effort service latency value (BESL) to 2648c2ecf20Sopenharmony_ci indicate the best effort to resumption of service to the device after the 2658c2ecf20Sopenharmony_ci initiation of the resume event. 2668c2ecf20Sopenharmony_ci If the device does not have a preferred besl value then the host can select 2678c2ecf20Sopenharmony_ci one instead. This usb2_lpm_besl attribute allows to tune the host selected besl 2688c2ecf20Sopenharmony_ci value in order to tune power saving and service latency. 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci Supported values are 0 - 15. 2718c2ecf20Sopenharmony_ci More information on how besl values map to microseconds can be found in 2728c2ecf20Sopenharmony_ci USB 2.0 ECN Errata for Link Power Management, section 4.10) 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../rx_lanes 2758c2ecf20Sopenharmony_ciDate: March 2018 2768c2ecf20Sopenharmony_ciContact: Mathias Nyman <mathias.nyman@linux.intel.com> 2778c2ecf20Sopenharmony_ciDescription: 2788c2ecf20Sopenharmony_ci Number of rx lanes the device is using. 2798c2ecf20Sopenharmony_ci USB 3.2 adds Dual-lane support, 2 rx and 2 tx lanes over Type-C. 2808c2ecf20Sopenharmony_ci Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per 2818c2ecf20Sopenharmony_ci direction. Devices before USB 3.2 are single lane (rx_lanes = 1) 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ciWhat: /sys/bus/usb/devices/.../tx_lanes 2848c2ecf20Sopenharmony_ciDate: March 2018 2858c2ecf20Sopenharmony_ciContact: Mathias Nyman <mathias.nyman@linux.intel.com> 2868c2ecf20Sopenharmony_ciDescription: 2878c2ecf20Sopenharmony_ci Number of tx lanes the device is using. 2888c2ecf20Sopenharmony_ci USB 3.2 adds Dual-lane support, 2 rx and 2 tx -lanes over Type-C. 2898c2ecf20Sopenharmony_ci Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per 2908c2ecf20Sopenharmony_ci direction. Devices before USB 3.2 are single lane (tx_lanes = 1) 291