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