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 when USB Power Delivery is not supported.
109
110What:		/sys/class/typec/<port>/usb_typec_revision
111Date:		April 2017
112Contact:	Heikki Krogerus <[email protected]>
113Description:
114		Revision number of the supported USB Type-C specification.
115
116What:		/sys/class/typec/<port>/orientation
117Date:		February 2020
118Contact:	Badhri Jagan Sridharan <[email protected]>
119Description:
120		Indicates the active orientation of the Type-C connector.
121		Valid values:
122		- "normal": CC1 orientation
123		- "reverse": CC2 orientation
124		- "unknown": Orientation cannot be determined.
125
126USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
127
128What:		/sys/class/typec/<port>-partner/accessory_mode
129Date:		April 2017
130Contact:	Heikki Krogerus <[email protected]>
131Description:
132		Shows the Accessory Mode name when the partner is an Accessory.
133		The Accessory Modes are defined in USB Type-C Specification.
134
135What:		/sys/class/typec/<port>-partner/supports_usb_power_delivery
136Date:		April 2017
137Contact:	Heikki Krogerus <[email protected]>
138Description:
139		Shows if the partner supports USB Power Delivery communication:
140		Valid values: yes, no
141
142What:		/sys/class/typec/<port>-partner/number_of_alternate_modes
143Date:		November 2020
144Contact:	Prashant Malani <[email protected]>
145Description:
146		Shows the number of alternate modes which are advertised by the partner
147		during Power Delivery discovery. This file remains hidden until a value
148		greater than or equal to 0 is set by Type C port driver.
149
150
151USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
152
153Note: Electronically Marked Cables will have a device also for one cable plug
154(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
155Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
156second device also for the other plug. Both plugs may have alternate modes as
157described in USB Type-C and USB Power Delivery specifications.
158
159What:		/sys/class/typec/<port>-cable/type
160Date:		April 2017
161Contact:	Heikki Krogerus <[email protected]>
162Description:
163		Shows if the cable is active.
164		Valid values: active, passive
165
166What:		/sys/class/typec/<port>-cable/plug_type
167Date:		April 2017
168Contact:	Heikki Krogerus <[email protected]>
169Description:
170		Shows type of the plug on the cable:
171
172		- type-a - Standard A
173		- type-b - Standard B
174		- type-c
175		- captive
176
177What:		/sys/class/typec/<port>-<plug>/number_of_alternate_modes
178Date:		November 2020
179Contact:	Prashant Malani <[email protected]>
180Description:
181		Shows the number of alternate modes which are advertised by the plug
182		associated with a particular cable during Power Delivery discovery.
183		This file remains hidden until a value greater than or equal to 0
184		is set by Type C port driver.
185
186
187USB Type-C partner/cable Power Delivery Identity objects
188
189NOTE: The following attributes will be applicable to both
190partner (e.g /sys/class/typec/port0-partner/) and
191cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file
192paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to
193reflect this.
194
195What:		/sys/class/typec/<port>-{partner|cable}/identity/
196Date:		April 2017
197Contact:	Heikki Krogerus <[email protected]>
198Description:
199		This directory appears only if the port device driver is capable
200		of showing the result of Discover Identity USB power delivery
201		command. That will not always be possible even when USB power
202		delivery is supported, for example when USB power delivery
203		communication for the port is mostly handled in firmware. If the
204		directory exists, it will have an attribute file for every VDO
205		in Discover Identity command result.
206
207What:		/sys/class/typec/<port>-{partner|cable}/identity/id_header
208Date:		April 2017
209Contact:	Heikki Krogerus <[email protected]>
210Description:
211		ID Header VDO part of Discover Identity command result. The
212		value will show 0 until Discover Identity command result becomes
213		available. The value can be polled.
214
215What:		/sys/class/typec/<port>-{partner|cable}/identity/cert_stat
216Date:		April 2017
217Contact:	Heikki Krogerus <[email protected]>
218Description:
219		Cert Stat VDO part of Discover Identity command result. The
220		value will show 0 until Discover Identity command result becomes
221		available. The value can be polled.
222
223What:		/sys/class/typec/<port>-{partner|cable}/identity/product
224Date:		April 2017
225Contact:	Heikki Krogerus <[email protected]>
226Description:
227		Product VDO part of Discover Identity command result. The value
228		will show 0 until Discover Identity command result becomes
229		available. The value can be polled.
230
231
232USB Type-C port alternate mode devices.
233
234What:		/sys/class/typec/<port>/<alt mode>/supported_roles
235Date:		April 2017
236Contact:	Heikki Krogerus <[email protected]>
237Description:
238		Space separated list of the supported roles.
239
240		Valid values: source, sink
241