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>/usb_typec_revision
116Date:		April 2017
117Contact:	Heikki Krogerus <[email protected]>
118Description:
119		Revision number of the supported USB Type-C specification.
120
121What:		/sys/class/typec/<port>/orientation
122Date:		February 2020
123Contact:	Badhri Jagan Sridharan <[email protected]>
124Description:
125		Indicates the active orientation of the Type-C connector.
126		Valid values:
127		- "normal": CC1 orientation
128		- "reverse": CC2 orientation
129		- "unknown": Orientation cannot be determined.
130
131USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
132
133What:		/sys/class/typec/<port>-partner/accessory_mode
134Date:		April 2017
135Contact:	Heikki Krogerus <[email protected]>
136Description:
137		Shows the Accessory Mode name when the partner is an Accessory.
138		The Accessory Modes are defined in USB Type-C Specification.
139
140What:		/sys/class/typec/<port>-partner/supports_usb_power_delivery
141Date:		April 2017
142Contact:	Heikki Krogerus <[email protected]>
143Description:
144		Shows if the partner supports USB Power Delivery communication:
145		Valid values: yes, no
146
147What:		/sys/class/typec/<port>-partner/number_of_alternate_modes
148Date:		November 2020
149Contact:	Prashant Malani <[email protected]>
150Description:
151		Shows the number of alternate modes which are advertised by the partner
152		during Power Delivery discovery. This file remains hidden until a value
153		greater than or equal to 0 is set by Type C port driver.
154
155What:		/sys/class/typec/<port>-partner/type
156Date:		December 2020
157Contact:	Heikki Krogerus <[email protected]>
158Description:	USB Power Delivery Specification defines a set of product types
159		for the partner devices. This file will show the product type of
160		the partner if it is known. Dual-role capable partners will have
161		both UFP and DFP product types defined, but only one that
162		matches the current role will be active at the time. If the
163		product type of the partner is not visible to the device driver,
164		this file will not exist.
165
166		When the partner product type is detected, or changed with role
167		swap, uvevent is also raised that contains PRODUCT_TYPE=<product
168		type> (for example PRODUCT_TYPE=hub).
169
170		Valid values:
171
172		UFP / device role
173		======================  ==========================
174		undefined		-
175		hub			PDUSB Hub
176		peripheral		PDUSB Peripheral
177		psd			Power Bank
178		ama			Alternate Mode Adapter
179		======================  ==========================
180
181		DFP / host role
182		======================  ==========================
183		undefined		-
184		hub			PDUSB Hub
185		host			PDUSB Host
186		power_brick		Power Brick
187		amc			Alternate Mode Controller
188		======================  ==========================
189
190What:		/sys/class/typec/<port>-partner>/identity/
191Date:		April 2017
192Contact:	Heikki Krogerus <[email protected]>
193Description:
194		This directory appears only if the port device driver is capable
195		of showing the result of Discover Identity USB power delivery
196		command. That will not always be possible even when USB power
197		delivery is supported, for example when USB power delivery
198		communication for the port is mostly handled in firmware. If the
199		directory exists, it will have an attribute file for every VDO
200		in Discover Identity command result.
201
202USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
203
204Note: Electronically Marked Cables will have a device also for one cable plug
205(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
206Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
207second device also for the other plug. Both plugs may have alternate modes as
208described in USB Type-C and USB Power Delivery specifications.
209
210What:		/sys/class/typec/<port>-cable/type
211Date:		April 2017
212Contact:	Heikki Krogerus <[email protected]>
213Description:	USB Power Delivery Specification defines a set of product types
214		for the cables. This file will show the product type of the
215		cable if it is known. If the product type of the cable is not
216		visible to the device driver, this file will not exist.
217
218		When the cable product type is detected, uvevent is also raised
219		with PRODUCT_TYPE showing the product type of the cable.
220
221		Valid values:
222
223		======================  ==========================
224		undefined		-
225		active			Active Cable
226		passive			Passive Cable
227		======================  ==========================
228
229What:		/sys/class/typec/<port>-cable/plug_type
230Date:		April 2017
231Contact:	Heikki Krogerus <[email protected]>
232Description:
233		Shows type of the plug on the cable:
234
235		- type-a - Standard A
236		- type-b - Standard B
237		- type-c
238		- captive
239
240What:		/sys/class/typec/<port>-<plug>/number_of_alternate_modes
241Date:		November 2020
242Contact:	Prashant Malani <[email protected]>
243Description:
244		Shows the number of alternate modes which are advertised by the plug
245		associated with a particular cable during Power Delivery discovery.
246		This file remains hidden until a value greater than or equal to 0
247		is set by Type C port driver.
248
249
250USB Type-C partner/cable Power Delivery Identity objects
251
252NOTE: The following attributes will be applicable to both
253partner (e.g /sys/class/typec/port0-partner/) and
254cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file
255paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to
256reflect this.
257
258What:		/sys/class/typec/<port>-{partner|cable}/identity/
259Date:		April 2017
260Contact:	Heikki Krogerus <[email protected]>
261Description:
262		This directory appears only if the port device driver is capable
263		of showing the result of Discover Identity USB power delivery
264		command. That will not always be possible even when USB power
265		delivery is supported, for example when USB power delivery
266		communication for the port is mostly handled in firmware. If the
267		directory exists, it will have an attribute file for every VDO
268		in Discover Identity command result.
269
270What:		/sys/class/typec/<port>-{partner|cable}/identity/id_header
271Date:		April 2017
272Contact:	Heikki Krogerus <[email protected]>
273Description:
274		ID Header VDO part of Discover Identity command result. The
275		value will show 0 until Discover Identity command result becomes
276		available. The value can be polled.
277
278What:		/sys/class/typec/<port>-{partner|cable}/identity/cert_stat
279Date:		April 2017
280Contact:	Heikki Krogerus <[email protected]>
281Description:
282		Cert Stat VDO part of Discover Identity command result. The
283		value will show 0 until Discover Identity command result becomes
284		available. The value can be polled.
285
286What:		/sys/class/typec/<port>-{partner|cable}/identity/product
287Date:		April 2017
288Contact:	Heikki Krogerus <[email protected]>
289Description:
290		Product VDO part of Discover Identity command result. The value
291		will show 0 until Discover Identity command result becomes
292		available. The value can be polled.
293
294What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo1
295Date:		October 2020
296Contact:	Prashant Malani <[email protected]>
297Description:
298		1st Product Type VDO of Discover Identity command result.
299		The value will show 0 until Discover Identity command result becomes
300		available and a valid Product Type VDO is returned.
301
302What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo2
303Date:		October 2020
304Contact:	Prashant Malani <[email protected]>
305Description:
306		2nd Product Type VDO of Discover Identity command result.
307		The value will show 0 until Discover Identity command result becomes
308		available and a valid Product Type VDO is returned.
309
310What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo3
311Date:		October 2020
312Contact:	Prashant Malani <[email protected]>
313Description:
314		3rd Product Type VDO of Discover Identity command result.
315		The value will show 0 until Discover Identity command result becomes
316		available and a valid Product Type VDO is returned.
317
318
319USB Type-C port alternate mode devices.
320
321What:		/sys/class/typec/<port>/<alt mode>/supported_roles
322Date:		April 2017
323Contact:	Heikki Krogerus <[email protected]>
324Description:
325		Space separated list of the supported roles.
326
327		Valid values: source, sink
328