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