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 when the port supports USB Power
24		Delivery. Swapping is supported as synchronous operation, so
25		write(2) to the attribute will not return until the operation
26		has finished. The attribute is notified about role changes so
27		that poll(2) on the attribute wakes up. Change on the role will
28		also generate uevent KOBJ_CHANGE. The current role is show in
29		brackets, for example "[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		- source (The port will behave as source only DFP port)
44		- sink (The port will behave as sink only UFP port)
45		- dual (The port will behave as dual-role-data and
46			dual-role-power port)
47
48What:		/sys/class/typec/<port>/vconn_source
49Date:		April 2017
50Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
51Description:
52		Shows is the port VCONN Source. This attribute can be used to
53		request VCONN swap to change the VCONN Source during connection
54		when both the port and the partner support USB Power Delivery.
55		Swapping is supported as synchronous operation, so write(2) to
56		the attribute will not return until the operation has finished.
57		The attribute is notified about VCONN source changes so that
58		poll(2) on the attribute wakes up. Change on VCONN source also
59		generates uevent KOBJ_CHANGE.
60
61		Valid values:
62		- "no" when the port is not the VCONN Source
63		- "yes" when the port is the VCONN Source
64
65What:		/sys/class/typec/<port>/power_operation_mode
66Date:		April 2017
67Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
68Description:
69		Shows the current power operational mode the port is in. The
70		power operation mode means current level for VBUS. In case USB
71		Power Delivery communication is used for negotiating the levels,
72		power operation mode should show "usb_power_delivery".
73
74		Valid values:
75		- default
76		- 1.5A
77		- 3.0A
78		- usb_power_delivery
79
80What:		/sys/class/typec/<port>/preferred_role
81Date:		April 2017
82Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
83Description:
84		The user space can notify the driver about the preferred role.
85		It should be handled as enabling of Try.SRC or Try.SNK, as
86		defined in USB Type-C specification, in the port drivers. By
87		default the preferred role should come from the platform.
88
89		Valid values: source, sink, none (to remove preference)
90
91What:		/sys/class/typec/<port>/supported_accessory_modes
92Date:		April 2017
93Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
94Description:
95		Space separated list of accessory modes, defined in the USB
96		Type-C specification, the port supports.
97
98What:		/sys/class/typec/<port>/usb_power_delivery_revision
99Date:		April 2017
100Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
101Description:
102		Revision number of the supported USB Power Delivery
103		specification, or 0 when USB Power Delivery is not supported.
104
105What:		/sys/class/typec/<port>/usb_typec_revision
106Date:		April 2017
107Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
108Description:
109		Revision number of the supported USB Type-C specification.
110
111
112USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
113
114What:		/sys/class/typec/<port>-partner/accessory_mode
115Date:		April 2017
116Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
117Description:
118		Shows the Accessory Mode name when the partner is an Accessory.
119		The Accessory Modes are defined in USB Type-C Specification.
120
121What:		/sys/class/typec/<port>-partner/supports_usb_power_delivery
122Date:		April 2017
123Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
124Description:
125		Shows if the partner supports USB Power Delivery communication:
126		Valid values: yes, no
127
128What:		/sys/class/typec/<port>-partner>/identity/
129Date:		April 2017
130Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
131Description:
132		This directory appears only if the port device driver is capable
133		of showing the result of Discover Identity USB power delivery
134		command. That will not always be possible even when USB power
135		delivery is supported, for example when USB power delivery
136		communication for the port is mostly handled in firmware. If the
137		directory exists, it will have an attribute file for every VDO
138		in Discover Identity command result.
139
140What:		/sys/class/typec/<port>-partner/identity/id_header
141Date:		April 2017
142Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
143Description:
144		ID Header VDO part of Discover Identity command result. The
145		value will show 0 until Discover Identity command result becomes
146		available. The value can be polled.
147
148What:		/sys/class/typec/<port>-partner/identity/cert_stat
149Date:		April 2017
150Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
151Description:
152		Cert Stat VDO part of Discover Identity command result. The
153		value will show 0 until Discover Identity command result becomes
154		available. The value can be polled.
155
156What:		/sys/class/typec/<port>-partner/identity/product
157Date:		April 2017
158Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
159Description:
160		Product VDO part of Discover Identity command result. The value
161		will show 0 until Discover Identity command result becomes
162		available. The value can be polled.
163
164
165USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
166
167Note: Electronically Marked Cables will have a device also for one cable plug
168(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
169Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
170second device also for the other plug. Both plugs may have alternate modes as
171described in USB Type-C and USB Power Delivery specifications.
172
173What:		/sys/class/typec/<port>-cable/type
174Date:		April 2017
175Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
176Description:
177		Shows if the cable is active.
178		Valid values: active, passive
179
180What:		/sys/class/typec/<port>-cable/plug_type
181Date:		April 2017
182Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
183Description:
184		Shows type of the plug on the cable:
185		- type-a - Standard A
186		- type-b - Standard B
187		- type-c
188		- captive
189
190What:		/sys/class/typec/<port>-cable/identity/
191Date:		April 2017
192Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
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. If the directory exists, it will have an
198		attribute for every VDO returned by Discover Identity command.
199
200What:		/sys/class/typec/<port>-cable/identity/id_header
201Date:		April 2017
202Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
203Description:
204		ID Header VDO part of Discover Identity command result. The
205		value will show 0 until Discover Identity command result becomes
206		available. The value can be polled.
207
208What:		/sys/class/typec/<port>-cable/identity/cert_stat
209Date:		April 2017
210Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
211Description:
212		Cert Stat VDO part of Discover Identity command result. The
213		value will show 0 until Discover Identity command result becomes
214		available. The value can be polled.
215
216What:		/sys/class/typec/<port>-cable/identity/product
217Date:		April 2017
218Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
219Description:
220		Product VDO part of Discover Identity command result. The value
221		will show 0 until Discover Identity command result becomes
222		available. The value can be polled.
223
224
225USB Type-C port alternate mode devices.
226
227What:		/sys/class/typec/<port>/<alt mode>/supported_roles
228Date:		April 2017
229Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
230Description:
231		Space separated list of the supported roles.
232
233		Valid values: source, sink
234