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