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 <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.

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 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:	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/devices/.../power/usb2_hardware_lpm
Date:		September 2011
Contact:	Andiry Xu <andiry.xu@amd.com>
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 <kevin.strasser@linux.intel.com>
		Lu Baolu <baolu.lu@linux.intel.com>
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 <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/<INTERFACE>/wireless_status
Date:		February 2023
Contact:	Bastien Nocera <hadess@hadess.net>
Description:
		Some USB devices use a USB receiver dongle to communicate
		wirelessly with their device using proprietary protocols. This
		attribute allows user-space to know whether the device is
		connected to its receiver dongle, and, for example, consider
		the device to be absent when choosing whether to show the
		device's battery, show a headset in a list of outputs, or show
		an on-screen keyboard if the only wireless keyboard is
		turned off.
		This attribute is not to be used to replace protocol specific
		statuses available in WWAN, WLAN/Wi-Fi, Bluetooth, etc.
		If the device does not use a receiver dongle with a wireless
		device, then this attribute will not exist.

What:		/sys/bus/usb/devices/.../<hub_interface>/port<X>
Date:		August 2012
Contact:	Lan Tianyu <tianyu.lan@intel.com>
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 <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", "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 <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.


What:		/sys/bus/usb/devices/.../<hub_interface>/port<X>/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.
		 - 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 <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
		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 <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.

What:		/sys/bus/usb/devices/.../<hub_interface>/port<X>/connector
Date:		December 2021
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
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 <m.grzeschik@pengutronix.de>
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 <raychi@google.com>
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 <royluo@google.com>
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 <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)

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)

What:		/sys/bus/usb/devices/.../typec
Date:		November 2023
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Symlink to the USB Type-C partner device. USB Type-C partner
		represents the component that communicates over the
		Configuration Channel (CC signal on USB Type-C connectors and
		cables) with the local port.

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.
