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