1USB Type-C port devices (eg. /sys/class/typec/port0/)
2
3What:		/sys/class/typec/<port>/data_role
4Date:		April 2017
5Contact:	Heikki Krogerus <[email protected]>
6Description:
7		The supported USB data roles. This attribute can be used for
8		requesting data role swapping on the port. Swapping is supported
9		as synchronous operation, so write(2) to the attribute will not
10		return until the operation has finished. The attribute is
11		notified about role changes so that poll(2) on the attribute
12		wakes up. Change on the role will also generate uevent
13		KOBJ_CHANGE on the port. The current role is show in brackets,
14		for example "[host] device" when DRP port is in host mode.
15
16		Valid values: host, device
17
18What:		/sys/class/typec/<port>/power_role
19Date:		April 2017
20Contact:	Heikki Krogerus <[email protected]>
21Description:
22		The supported power roles. This attribute can be used to request
23		power role swap on the port. Swapping is supported as
24		synchronous operation, so write(2) to the attribute will not
25		return until the operation has finished. The attribute is
26		notified about role changes so that poll(2) on the attribute
27		wakes up. Change on the role will also generate uevent
28		KOBJ_CHANGE. The current role is show in brackets, for example
29		"[source] sink" when in source mode.
30
31		Valid values: source, sink
32
33What:           /sys/class/typec/<port>/port_type
34Date:           May 2017
35Contact:	Badhri Jagan Sridharan <[email protected]>
36Description:
37		Indicates the type of the port. This attribute can be used for
38		requesting a change in the port type. Port type change is
39		supported as a synchronous operation, so write(2) to the
40		attribute will not return until the operation has finished.
41
42		Valid values:
43
44		======  ==============================================
45		source  (The port will behave as source only DFP port)
46		sink    (The port will behave as sink only UFP port)
47		dual    (The port will behave as dual-role-data and
48			dual-role-power port)
49		======  ==============================================
50
51What:		/sys/class/typec/<port>/vconn_source
52Date:		April 2017
53Contact:	Heikki Krogerus <[email protected]>
54Description:
55		Shows is the port VCONN Source. This attribute can be used to
56		request VCONN swap to change the VCONN Source during connection
57		when both the port and the partner support USB Power Delivery.
58		Swapping is supported as synchronous operation, so write(2) to
59		the attribute will not return until the operation has finished.
60		The attribute is notified about VCONN source changes so that
61		poll(2) on the attribute wakes up. Change on VCONN source also
62		generates uevent KOBJ_CHANGE.
63
64		Valid values:
65
66		- "no" when the port is not the VCONN Source
67		- "yes" when the port is the VCONN Source
68
69What:		/sys/class/typec/<port>/power_operation_mode
70Date:		April 2017
71Contact:	Heikki Krogerus <[email protected]>
72Description:
73		Shows the current power operational mode the port is in. The
74		power operation mode means current level for VBUS. In case USB
75		Power Delivery communication is used for negotiating the levels,
76		power operation mode should show "usb_power_delivery".
77
78		Valid values:
79
80		- default
81		- 1.5A
82		- 3.0A
83		- usb_power_delivery
84
85What:		/sys/class/typec/<port>/preferred_role
86Date:		April 2017
87Contact:	Heikki Krogerus <[email protected]>
88Description:
89		The user space can notify the driver about the preferred role.
90		It should be handled as enabling of Try.SRC or Try.SNK, as
91		defined in USB Type-C specification, in the port drivers. By
92		default the preferred role should come from the platform.
93
94		Valid values: source, sink, none (to remove preference)
95
96What:		/sys/class/typec/<port>/supported_accessory_modes
97Date:		April 2017
98Contact:	Heikki Krogerus <[email protected]>
99Description:
100		Space separated list of accessory modes, defined in the USB
101		Type-C specification, the port supports.
102
103What:		/sys/class/typec/<port>/usb_power_delivery_revision
104Date:		April 2017
105Contact:	Heikki Krogerus <[email protected]>
106Description:
107		Revision number of the supported USB Power Delivery
108		specification, or 0.0 when USB Power Delivery is not supported.
109
110		Example values:
111		- "2.0": USB Power Delivery Release 2.0
112		- "3.0": USB Power Delivery Release 3.0
113		- "3.1": USB Power Delivery Release 3.1
114
115What:		/sys/class/typec/<port>-{partner|cable}/usb_power_delivery_revision
116Date:		January 2021
117Contact:	Benson Leung <[email protected]>
118Description:
119		Revision number of the supported USB Power Delivery
120		specification of the port partner or cable, or 0.0 when USB
121		Power Delivery is not supported.
122
123		Example values:
124		- "2.0": USB Power Delivery Release 2.0
125		- "3.0": USB Power Delivery Release 3.0
126		- "3.1": USB Power Delivery Release 3.1
127
128What:		/sys/class/typec/<port>/usb_typec_revision
129Date:		April 2017
130Contact:	Heikki Krogerus <[email protected]>
131Description:
132		Revision number of the supported USB Type-C specification.
133
134What:		/sys/class/typec/<port>/orientation
135Date:		February 2020
136Contact:	Badhri Jagan Sridharan <[email protected]>
137Description:
138		Indicates the active orientation of the Type-C connector.
139		Valid values:
140		- "normal": CC1 orientation
141		- "reverse": CC2 orientation
142		- "unknown": Orientation cannot be determined.
143
144What:		/sys/class/typec/<port>/select_usb_power_delivery
145Date:		May 2022
146Contact:	Heikki Krogerus <[email protected]>
147Description:
148		Lists the USB Power Delivery Capabilities that the port can
149		advertise to the partner. The currently used capabilities are in
150		brackets. Selection happens by writing to the file.
151
152What:		/sys/class/typec/<port>/usb_capability
153Date:		November 2024
154Contact:	Heikki Krogerus <[email protected]>
155Description:	Lists the supported USB Modes. The default USB mode that is used
156		next time with the Enter_USB Message is in brackets. The default
157		mode can be changed by writing to the file when supported by the
158		driver.
159
160		Valid values:
161		- usb2 (USB 2.0)
162		- usb3 (USB 3.2)
163		- usb4 (USB4)
164
165USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
166
167What:		/sys/class/typec/<port>-partner/accessory_mode
168Date:		April 2017
169Contact:	Heikki Krogerus <[email protected]>
170Description:
171		Shows the Accessory Mode name when the partner is an Accessory.
172		The Accessory Modes are defined in USB Type-C Specification.
173
174What:		/sys/class/typec/<port>-partner/supports_usb_power_delivery
175Date:		April 2017
176Contact:	Heikki Krogerus <[email protected]>
177Description:
178		Shows if the partner supports USB Power Delivery communication:
179		Valid values: yes, no
180
181What:		/sys/class/typec/<port>-partner/number_of_alternate_modes
182Date:		November 2020
183Contact:	Prashant Malani <[email protected]>
184Description:
185		Shows the number of alternate modes which are advertised by the partner
186		during Power Delivery discovery. This file remains hidden until a value
187		greater than or equal to 0 is set by Type C port driver.
188
189What:		/sys/class/typec/<port>-partner/type
190Date:		December 2020
191Contact:	Heikki Krogerus <[email protected]>
192Description:	USB Power Delivery Specification defines a set of product types
193		for the partner devices. This file will show the product type of
194		the partner if it is known. Dual-role capable partners will have
195		both UFP and DFP product types defined, but only one that
196		matches the current role will be active at the time. If the
197		product type of the partner is not visible to the device driver,
198		this file will not exist.
199
200		When the partner product type is detected, or changed with role
201		swap, uvevent is also raised that contains PRODUCT_TYPE=<product
202		type> (for example PRODUCT_TYPE=hub).
203
204		Valid values:
205
206		UFP / device role
207		======================  ==========================
208		undefined		-
209		hub			PDUSB Hub
210		peripheral		PDUSB Peripheral
211		psd			Power Bank
212		ama			Alternate Mode Adapter
213		======================  ==========================
214
215		DFP / host role
216		======================  ==========================
217		undefined		-
218		hub			PDUSB Hub
219		host			PDUSB Host
220		power_brick		Power Brick
221		amc			Alternate Mode Controller
222		======================  ==========================
223
224What:		/sys/class/typec/<port>-partner/identity/
225Date:		April 2017
226Contact:	Heikki Krogerus <[email protected]>
227Description:
228		This directory appears only if the port device driver is capable
229		of showing the result of Discover Identity USB power delivery
230		command. That will not always be possible even when USB power
231		delivery is supported, for example when USB power delivery
232		communication for the port is mostly handled in firmware. If the
233		directory exists, it will have an attribute file for every VDO
234		in Discover Identity command result.
235
236USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
237
238Note: Electronically Marked Cables will have a device also for one cable plug
239(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
240Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
241second device also for the other plug. Both plugs may have alternate modes as
242described in USB Type-C and USB Power Delivery specifications.
243
244What:		/sys/class/typec/<port>-cable/type
245Date:		April 2017
246Contact:	Heikki Krogerus <[email protected]>
247Description:	USB Power Delivery Specification defines a set of product types
248		for the cables. This file will show the product type of the
249		cable if it is known. If the product type of the cable is not
250		visible to the device driver, this file will not exist.
251
252		When the cable product type is detected, uvevent is also raised
253		with PRODUCT_TYPE showing the product type of the cable.
254
255		Valid values:
256
257		======================  ==========================
258		undefined		-
259		active			Active Cable
260		passive			Passive Cable
261		======================  ==========================
262
263What:		/sys/class/typec/<port>-cable/plug_type
264Date:		April 2017
265Contact:	Heikki Krogerus <[email protected]>
266Description:
267		Shows type of the plug on the cable:
268
269		- type-a - Standard A
270		- type-b - Standard B
271		- type-c
272		- captive
273
274What:		/sys/class/typec/<port>-<plug>/number_of_alternate_modes
275Date:		November 2020
276Contact:	Prashant Malani <[email protected]>
277Description:
278		Shows the number of alternate modes which are advertised by the plug
279		associated with a particular cable during Power Delivery discovery.
280		This file remains hidden until a value greater than or equal to 0
281		is set by Type C port driver.
282
283
284USB Type-C partner/cable Power Delivery Identity objects
285
286NOTE: The following attributes will be applicable to both
287partner (e.g /sys/class/typec/port0-partner/) and
288cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file
289paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to
290reflect this.
291
292What:		/sys/class/typec/<port>-{partner|cable}/identity/
293Date:		April 2017
294Contact:	Heikki Krogerus <[email protected]>
295Description:
296		This directory appears only if the port device driver is capable
297		of showing the result of Discover Identity USB power delivery
298		command. That will not always be possible even when USB power
299		delivery is supported, for example when USB power delivery
300		communication for the port is mostly handled in firmware. If the
301		directory exists, it will have an attribute file for every VDO
302		in Discover Identity command result.
303
304What:		/sys/class/typec/<port>-{partner|cable}/identity/id_header
305Date:		April 2017
306Contact:	Heikki Krogerus <[email protected]>
307Description:
308		ID Header VDO part of Discover Identity command result. The
309		value will show 0 until Discover Identity command result becomes
310		available. The value can be polled.
311
312What:		/sys/class/typec/<port>-{partner|cable}/identity/cert_stat
313Date:		April 2017
314Contact:	Heikki Krogerus <[email protected]>
315Description:
316		Cert Stat VDO part of Discover Identity command result. The
317		value will show 0 until Discover Identity command result becomes
318		available. The value can be polled.
319
320What:		/sys/class/typec/<port>-{partner|cable}/identity/product
321Date:		April 2017
322Contact:	Heikki Krogerus <[email protected]>
323Description:
324		Product VDO part of Discover Identity command result. The value
325		will show 0 until Discover Identity command result becomes
326		available. The value can be polled.
327
328What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo1
329Date:		October 2020
330Contact:	Prashant Malani <[email protected]>
331Description:
332		1st Product Type VDO of Discover Identity command result.
333		The value will show 0 until Discover Identity command result becomes
334		available and a valid Product Type VDO is returned.
335
336What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo2
337Date:		October 2020
338Contact:	Prashant Malani <[email protected]>
339Description:
340		2nd Product Type VDO of Discover Identity command result.
341		The value will show 0 until Discover Identity command result becomes
342		available and a valid Product Type VDO is returned.
343
344What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo3
345Date:		October 2020
346Contact:	Prashant Malani <[email protected]>
347Description:
348		3rd Product Type VDO of Discover Identity command result.
349		The value will show 0 until Discover Identity command result becomes
350		available and a valid Product Type VDO is returned.
351
352
353USB Type-C port alternate mode devices.
354
355What:		/sys/class/typec/<port>/<alt mode>/supported_roles
356Date:		April 2017
357Contact:	Heikki Krogerus <[email protected]>
358Description:
359		Space separated list of the supported roles.
360
361		Valid values: source, sink
362