1USB Type-C port devices (eg. /sys/class/typec/port0/)
2
3What:		/sys/class/typec/<port>/data_role
4Date:		April 2017
5Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
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 <Badhri@google.com>
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 <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
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 <badhri@google.com>
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 <heikki.krogerus@linux.intel.com>
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 <heikki.krogerus@linux.intel.com>
138Description:
139		Shows if the partner supports USB Power Delivery communication:
140		Valid values: yes, no
141
142What:		/sys/class/typec/<port>-partner>/identity/
143Date:		April 2017
144Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
145Description:
146		This directory appears only if the port device driver is capable
147		of showing the result of Discover Identity USB power delivery
148		command. That will not always be possible even when USB power
149		delivery is supported, for example when USB power delivery
150		communication for the port is mostly handled in firmware. If the
151		directory exists, it will have an attribute file for every VDO
152		in Discover Identity command result.
153
154What:		/sys/class/typec/<port>-partner/identity/id_header
155Date:		April 2017
156Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
157Description:
158		ID Header VDO part of Discover Identity command result. The
159		value will show 0 until Discover Identity command result becomes
160		available. The value can be polled.
161
162What:		/sys/class/typec/<port>-partner/identity/cert_stat
163Date:		April 2017
164Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
165Description:
166		Cert Stat VDO part of Discover Identity command result. The
167		value will show 0 until Discover Identity command result becomes
168		available. The value can be polled.
169
170What:		/sys/class/typec/<port>-partner/identity/product
171Date:		April 2017
172Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
173Description:
174		Product VDO part of Discover Identity command result. The value
175		will show 0 until Discover Identity command result becomes
176		available. The value can be polled.
177
178
179USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
180
181Note: Electronically Marked Cables will have a device also for one cable plug
182(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
183Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
184second device also for the other plug. Both plugs may have alternate modes as
185described in USB Type-C and USB Power Delivery specifications.
186
187What:		/sys/class/typec/<port>-cable/type
188Date:		April 2017
189Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
190Description:
191		Shows if the cable is active.
192		Valid values: active, passive
193
194What:		/sys/class/typec/<port>-cable/plug_type
195Date:		April 2017
196Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
197Description:
198		Shows type of the plug on the cable:
199
200		- type-a - Standard A
201		- type-b - Standard B
202		- type-c
203		- captive
204
205What:		/sys/class/typec/<port>-cable/identity/
206Date:		April 2017
207Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
208Description:
209		This directory appears only if the port device driver is capable
210		of showing the result of Discover Identity USB power delivery
211		command. That will not always be possible even when USB power
212		delivery is supported. If the directory exists, it will have an
213		attribute for every VDO returned by Discover Identity command.
214
215What:		/sys/class/typec/<port>-cable/identity/id_header
216Date:		April 2017
217Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
218Description:
219		ID Header 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>-cable/identity/cert_stat
224Date:		April 2017
225Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
226Description:
227		Cert Stat VDO part of Discover Identity command result. The
228		value will show 0 until Discover Identity command result becomes
229		available. The value can be polled.
230
231What:		/sys/class/typec/<port>-cable/identity/product
232Date:		April 2017
233Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
234Description:
235		Product VDO part of Discover Identity command result. The value
236		will show 0 until Discover Identity command result becomes
237		available. The value can be polled.
238
239
240USB Type-C port alternate mode devices.
241
242What:		/sys/class/typec/<port>/<alt mode>/supported_roles
243Date:		April 2017
244Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
245Description:
246		Space separated list of the supported roles.
247
248		Valid values: source, sink
249