1c8cf2465SDavid VrabelWhat:		/sys/bus/usb/device/.../authorized
2c8cf2465SDavid VrabelDate:		July 2008
3c8cf2465SDavid VrabelKernelVersion:	2.6.26
4c8cf2465SDavid VrabelContact:	David Vrabel <david.vrabel@csr.com>
5c8cf2465SDavid VrabelDescription:
6c8cf2465SDavid Vrabel		Authorized devices are available for use by device
7c8cf2465SDavid Vrabel		drivers, non-authorized one are not.  By default, wired
8c8cf2465SDavid Vrabel		USB devices are authorized.
9c8cf2465SDavid Vrabel
10c8cf2465SDavid Vrabel		Certified Wireless USB devices are not authorized
11c8cf2465SDavid Vrabel		initially and should be (by writing 1) after the
12c8cf2465SDavid Vrabel		device has been authenticated.
13c8cf2465SDavid Vrabel
14c8cf2465SDavid VrabelWhat:		/sys/bus/usb/device/.../wusb_cdid
15c8cf2465SDavid VrabelDate:		July 2008
16c8cf2465SDavid VrabelKernelVersion:	2.6.27
17c8cf2465SDavid VrabelContact:	David Vrabel <david.vrabel@csr.com>
18c8cf2465SDavid VrabelDescription:
19c8cf2465SDavid Vrabel		For Certified Wireless USB devices only.
20c8cf2465SDavid Vrabel
21c8cf2465SDavid Vrabel		A devices's CDID, as 16 space-separated hex octets.
22c8cf2465SDavid Vrabel
23c8cf2465SDavid VrabelWhat:		/sys/bus/usb/device/.../wusb_ck
24c8cf2465SDavid VrabelDate:		July 2008
25c8cf2465SDavid VrabelKernelVersion:	2.6.27
26c8cf2465SDavid VrabelContact:	David Vrabel <david.vrabel@csr.com>
27c8cf2465SDavid VrabelDescription:
28c8cf2465SDavid Vrabel		For Certified Wireless USB devices only.
29c8cf2465SDavid Vrabel
30c8cf2465SDavid Vrabel		Write the device's connection key (CK) to start the
31c8cf2465SDavid Vrabel		authentication of the device.  The CK is 16
32c8cf2465SDavid Vrabel		space-separated hex octets.
33c8cf2465SDavid Vrabel
34c8cf2465SDavid VrabelWhat:		/sys/bus/usb/device/.../wusb_disconnect
35c8cf2465SDavid VrabelDate:		July 2008
36c8cf2465SDavid VrabelKernelVersion:	2.6.27
37c8cf2465SDavid VrabelContact:	David Vrabel <david.vrabel@csr.com>
38c8cf2465SDavid VrabelDescription:
39c8cf2465SDavid Vrabel		For Certified Wireless USB devices only.
40c8cf2465SDavid Vrabel
41c8cf2465SDavid Vrabel		Write a 1 to force the device to disconnect
42c8cf2465SDavid Vrabel		(equivalent to unplugging a wired USB device).
430c7a2b72SCHENG Renquan
44ff231db8SJosua DietzeWhat:		/sys/bus/usb/drivers/.../new_id
45ff231db8SJosua DietzeDate:		October 2011
46ff231db8SJosua DietzeContact:	linux-usb@vger.kernel.org
47ff231db8SJosua DietzeDescription:
48ff231db8SJosua Dietze		Writing a device ID to this file will attempt to
49ff231db8SJosua Dietze		dynamically add a new device ID to a USB device driver.
50ff231db8SJosua Dietze		This may allow the driver to support more hardware than
51ff231db8SJosua Dietze		was included in the driver's static device ID support
52ff231db8SJosua Dietze		table at compile time. The format for the device ID is:
532fc82c2dSWolfram Sang		idVendor idProduct bInterfaceClass RefIdVendor RefIdProduct
54ff231db8SJosua Dietze		The vendor ID and device ID fields are required, the
552fc82c2dSWolfram Sang		rest is optional. The Ref* tuple can be used to tell the
562fc82c2dSWolfram Sang		driver to use the same driver_data for the new device as
572fc82c2dSWolfram Sang		it is used for the reference device.
58ff231db8SJosua Dietze		Upon successfully adding an ID, the driver will probe
59ff231db8SJosua Dietze		for the device and attempt to bind to it.  For example:
60ff231db8SJosua Dietze		# echo "8086 10f5" > /sys/bus/usb/drivers/foo/new_id
61ff231db8SJosua Dietze
622fc82c2dSWolfram Sang		Here add a new device (0458:7045) using driver_data from
632fc82c2dSWolfram Sang		an already supported device (0458:704c):
642fc82c2dSWolfram Sang		# echo "0458 7045 0 0458 704c" > /sys/bus/usb/drivers/foo/new_id
652fc82c2dSWolfram Sang
66e6bbcef0SBjørn Mork		Reading from this file will list all dynamically added
67e6bbcef0SBjørn Mork		device IDs in the same format, with one entry per
68e6bbcef0SBjørn Mork		line. For example:
69e6bbcef0SBjørn Mork		# cat /sys/bus/usb/drivers/foo/new_id
70e6bbcef0SBjørn Mork		8086 10f5
71e6bbcef0SBjørn Mork		dead beef 06
72e6bbcef0SBjørn Mork		f00d cafe
73e6bbcef0SBjørn Mork
74e6bbcef0SBjørn Mork		The list will be truncated at PAGE_SIZE bytes due to
75e6bbcef0SBjørn Mork		sysfs restrictions.
76e6bbcef0SBjørn Mork
77ff231db8SJosua DietzeWhat:		/sys/bus/usb-serial/drivers/.../new_id
78ff231db8SJosua DietzeDate:		October 2011
79ff231db8SJosua DietzeContact:	linux-usb@vger.kernel.org
80ff231db8SJosua DietzeDescription:
81ff231db8SJosua Dietze		For serial USB drivers, this attribute appears under the
82ff231db8SJosua Dietze		extra bus folder "usb-serial" in sysfs; apart from that
83ff231db8SJosua Dietze		difference, all descriptions from the entry
84ff231db8SJosua Dietze		"/sys/bus/usb/drivers/.../new_id" apply.
85ff231db8SJosua Dietze
860c7a2b72SCHENG RenquanWhat:		/sys/bus/usb/drivers/.../remove_id
870c7a2b72SCHENG RenquanDate:		November 2009
880c7a2b72SCHENG RenquanContact:	CHENG Renquan <rqcheng@smu.edu.sg>
890c7a2b72SCHENG RenquanDescription:
900c7a2b72SCHENG Renquan		Writing a device ID to this file will remove an ID
910c7a2b72SCHENG Renquan		that was dynamically added via the new_id sysfs entry.
920c7a2b72SCHENG Renquan		The format for the device ID is:
930c7a2b72SCHENG Renquan		idVendor idProduct.	After successfully
940c7a2b72SCHENG Renquan		removing an ID, the driver will no longer support the
950c7a2b72SCHENG Renquan		device.  This is useful to ensure auto probing won't
960c7a2b72SCHENG Renquan		match the driver to the device.  For example:
970c7a2b72SCHENG Renquan		# echo "046d c315" > /sys/bus/usb/drivers/foo/remove_id
98ef955341SOliver Neukum
99e6bbcef0SBjørn Mork		Reading from this file will list the dynamically added
100e6bbcef0SBjørn Mork		device IDs, exactly like reading from the entry
101e6bbcef0SBjørn Mork		"/sys/bus/usb/drivers/.../new_id"
102e6bbcef0SBjørn Mork
103c1045e87SAndiry XuWhat:		/sys/bus/usb/devices/.../power/usb2_hardware_lpm
104c1045e87SAndiry XuDate:		September 2011
105c1045e87SAndiry XuContact:	Andiry Xu <andiry.xu@amd.com>
106c1045e87SAndiry XuDescription:
107ceb6c9c8SRafael J. Wysocki		If CONFIG_PM is set and a USB 2.0 lpm-capable device is plugged
108ceb6c9c8SRafael J. Wysocki		in to a xHCI host which support link PM, it will perform a LPM
109ceb6c9c8SRafael J. Wysocki		test; if the test is passed and host supports USB2 hardware LPM
110ceb6c9c8SRafael J. Wysocki		(xHCI 1.0 feature), USB2 hardware LPM will be enabled for the
111ceb6c9c8SRafael J. Wysocki		device and the USB device directory will contain a file named
112ceb6c9c8SRafael J. Wysocki		power/usb2_hardware_lpm.  The file holds a string value (enable
113ceb6c9c8SRafael J. Wysocki		or disable) indicating whether or not USB2 hardware LPM is
114ceb6c9c8SRafael J. Wysocki		enabled for the device. Developer can write y/Y/1 or n/N/0 to
115ceb6c9c8SRafael J. Wysocki		the file to enable/disable the feature.
1160846e7e9SMatthew Garrett
117655fe4efSKevin StrasserWhat:		/sys/bus/usb/devices/.../power/usb3_hardware_lpm
118655fe4efSKevin StrasserDate:		June 2015
119655fe4efSKevin StrasserContact:	Kevin Strasser <kevin.strasser@linux.intel.com>
120655fe4efSKevin StrasserDescription:
121a2e66ad3SValentin Rothberg		If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged
122a2e66ad3SValentin Rothberg		in to a xHCI host which supports link PM, it will check if U1
123a2e66ad3SValentin Rothberg		and U2 exit latencies have been set in the BOS descriptor; if
124a2e66ad3SValentin Rothberg		the check is is passed and the host supports USB3 hardware LPM,
125a2e66ad3SValentin Rothberg		USB3 hardware LPM will be enabled for the device and the USB
126a2e66ad3SValentin Rothberg		device directory will contain a file named
127655fe4efSKevin Strasser		power/usb3_hardware_lpm. The file holds a string value (enable
128655fe4efSKevin Strasser		or disable) indicating whether or not USB3 hardware LPM is
129655fe4efSKevin Strasser		enabled for the device.
130655fe4efSKevin Strasser
1310846e7e9SMatthew GarrettWhat:		/sys/bus/usb/devices/.../removable
1320846e7e9SMatthew GarrettDate:		February 2012
1330846e7e9SMatthew GarrettContact:	Matthew Garrett <mjg@redhat.com>
1340846e7e9SMatthew GarrettDescription:
1350846e7e9SMatthew Garrett		Some information about whether a given USB device is
1360846e7e9SMatthew Garrett		physically fixed to the platform can be inferred from a
137c94bed8eSMasanari Iida		combination of hub descriptor bits and platform-specific data
1380846e7e9SMatthew Garrett		such as ACPI. This file will read either "removable" or
1390846e7e9SMatthew Garrett		"fixed" if the information is available, and "unknown"
1400846e7e9SMatthew Garrett		otherwise.
141024f117cSSarah Sharp
142024f117cSSarah SharpWhat:		/sys/bus/usb/devices/.../ltm_capable
143024f117cSSarah SharpDate:		July 2012
144024f117cSSarah SharpContact:	Sarah Sharp <sarah.a.sharp@linux.intel.com>
145024f117cSSarah SharpDescription:
146024f117cSSarah Sharp		USB 3.0 devices may optionally support Latency Tolerance
147024f117cSSarah Sharp		Messaging (LTM).  They indicate their support by setting a bit
148024f117cSSarah Sharp		in the bmAttributes field of their SuperSpeed BOS descriptors.
149024f117cSSarah Sharp		If that bit is set for the device, ltm_capable will read "yes".
150024f117cSSarah Sharp		If the device doesn't support LTM, the file will read "no".
151024f117cSSarah Sharp		The file will be present for all speeds of USB devices, and will
152024f117cSSarah Sharp		always read "no" for USB 1.1 and USB 2.0 devices.
153fa2a9566SLan Tianyu
154fa2a9566SLan TianyuWhat:		/sys/bus/usb/devices/.../(hub interface)/portX
155fa2a9566SLan TianyuDate:		August 2012
156fa2a9566SLan TianyuContact:	Lan Tianyu <tianyu.lan@intel.com>
157fa2a9566SLan TianyuDescription:
158fa2a9566SLan Tianyu		The /sys/bus/usb/devices/.../(hub interface)/portX
159fa2a9566SLan Tianyu		is usb port device's sysfs directory.
160cef7468cSLan Tianyu
161cef7468cSLan TianyuWhat:		/sys/bus/usb/devices/.../(hub interface)/portX/connect_type
162cef7468cSLan TianyuDate:		January 2013
163cef7468cSLan TianyuContact:	Lan Tianyu <tianyu.lan@intel.com>
164cef7468cSLan TianyuDescription:
165cef7468cSLan Tianyu		Some platforms provide usb port connect types through ACPI.
166cef7468cSLan Tianyu		This attribute is to expose these information to user space.
167cef7468cSLan Tianyu		The file will read "hotplug", "wired" and "not used" if the
168cef7468cSLan Tianyu		information is available, and "unknown" otherwise.
16917f34867SMathias Nyman
17017f34867SMathias NymanWhat:		/sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
17117f34867SMathias NymanDate:		May 2013
17217f34867SMathias NymanContact:	Mathias Nyman <mathias.nyman@linux.intel.com>
17317f34867SMathias NymanDescription:
17417f34867SMathias Nyman		USB 2.0 devices may support hardware link power management (LPM)
17517f34867SMathias Nyman		L1 sleep state. The usb2_lpm_l1_timeout attribute allows
17617f34867SMathias Nyman		tuning the timeout for L1 inactivity timer (LPM timer), e.g.
17717f34867SMathias Nyman		needed inactivity time before host requests the device to go to L1 sleep.
17817f34867SMathias Nyman		Useful for power management tuning.
17917f34867SMathias Nyman		Supported values are 0 - 65535 microseconds.
18017f34867SMathias Nyman
18117f34867SMathias NymanWhat:		/sys/bus/usb/devices/.../power/usb2_lpm_besl
18217f34867SMathias NymanDate:		May 2013
18317f34867SMathias NymanContact:	Mathias Nyman <mathias.nyman@linux.intel.com>
18417f34867SMathias NymanDescription:
18517f34867SMathias Nyman		USB 2.0 devices that support hardware link power management (LPM)
18617f34867SMathias Nyman		L1 sleep state now use a best effort service latency value (BESL) to
18717f34867SMathias Nyman		indicate the best effort to resumption of service to the device after the
18817f34867SMathias Nyman		initiation of the resume event.
18917f34867SMathias Nyman		If the device does not have a preferred besl value then the host can select
19017f34867SMathias Nyman		one instead. This usb2_lpm_besl attribute allows to tune the host selected besl
19117f34867SMathias Nyman		value in order to tune power saving and service latency.
19217f34867SMathias Nyman
19317f34867SMathias Nyman		Supported values are 0 - 15.
19417f34867SMathias Nyman		More information on how besl values map to microseconds can be found in
19517f34867SMathias Nyman		USB 2.0 ECN Errata for Link Power Management, section 4.10)
196