Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / Documentation / ABI / testing / sysfs-class-typec
blob38e101c17a0048d9daeec4e12896a11f85ba1e9d
1 USB Type-C port devices (eg. /sys/class/typec/port0/)
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.
16                 Valid values: host, device
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.
31                 Valid values: source, sink
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.
42                 Valid values:
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                 ======  ==============================================
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.
64                 Valid values:
66                 - "no" when the port is not the VCONN Source
67                 - "yes" when the port is the VCONN Source
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".
78                 Valid values:
80                 - default
81                 - 1.5A
82                 - 3.0A
83                 - usb_power_delivery
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.
94                 Valid values: source, sink, none (to remove preference)
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.
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.
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
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.
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
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.
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.
144 What:           /sys/class/typec/<port>/select_usb_power_delivery
145 Date:           May 2022
146 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
147 Description:
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.
152 What:           /sys/class/typec/<port>/usb_capability
153 Date:           November 2024
154 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
155 Description:    Lists the supported USB Modes. The default USB mode that is used
156                 next time with the Enter_USB Message is in brackets. The default
157                 mode can be changed by writing to the file when supported by the
158                 driver.
160                 Valid values:
161                 - usb2 (USB 2.0)
162                 - usb3 (USB 3.2)
163                 - usb4 (USB4)
165 USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
167 What:           /sys/class/typec/<port>-partner/accessory_mode
168 Date:           April 2017
169 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
170 Description:
171                 Shows the Accessory Mode name when the partner is an Accessory.
172                 The Accessory Modes are defined in USB Type-C Specification.
174 What:           /sys/class/typec/<port>-partner/supports_usb_power_delivery
175 Date:           April 2017
176 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
177 Description:
178                 Shows if the partner supports USB Power Delivery communication:
179                 Valid values: yes, no
181 What:           /sys/class/typec/<port>-partner/number_of_alternate_modes
182 Date:           November 2020
183 Contact:        Prashant Malani <pmalani@chromium.org>
184 Description:
185                 Shows the number of alternate modes which are advertised by the partner
186                 during Power Delivery discovery. This file remains hidden until a value
187                 greater than or equal to 0 is set by Type C port driver.
189 What:           /sys/class/typec/<port>-partner/type
190 Date:           December 2020
191 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
192 Description:    USB Power Delivery Specification defines a set of product types
193                 for the partner devices. This file will show the product type of
194                 the partner if it is known. Dual-role capable partners will have
195                 both UFP and DFP product types defined, but only one that
196                 matches the current role will be active at the time. If the
197                 product type of the partner is not visible to the device driver,
198                 this file will not exist.
200                 When the partner product type is detected, or changed with role
201                 swap, uvevent is also raised that contains PRODUCT_TYPE=<product
202                 type> (for example PRODUCT_TYPE=hub).
204                 Valid values:
206                 UFP / device role
207                 ======================  ==========================
208                 undefined               -
209                 hub                     PDUSB Hub
210                 peripheral              PDUSB Peripheral
211                 psd                     Power Bank
212                 ama                     Alternate Mode Adapter
213                 ======================  ==========================
215                 DFP / host role
216                 ======================  ==========================
217                 undefined               -
218                 hub                     PDUSB Hub
219                 host                    PDUSB Host
220                 power_brick             Power Brick
221                 amc                     Alternate Mode Controller
222                 ======================  ==========================
224 What:           /sys/class/typec/<port>-partner/identity/
225 Date:           April 2017
226 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
227 Description:
228                 This directory appears only if the port device driver is capable
229                 of showing the result of Discover Identity USB power delivery
230                 command. That will not always be possible even when USB power
231                 delivery is supported, for example when USB power delivery
232                 communication for the port is mostly handled in firmware. If the
233                 directory exists, it will have an attribute file for every VDO
234                 in Discover Identity command result.
236 What:           /sys/class/typec/<port>-partner/usb_mode
237 Date:           November 2024
238 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
239 Description:    The USB Modes that the partner device supports. The active mode
240                 is displayed in brackets. The active USB mode can be changed by
241                 writing to this file when the port driver is able to send Data
242                 Reset Message to the partner. That requires USB Power Delivery
243                 contract between the partner and the port.
245                 Valid values:
246                 - usb2 (USB 2.0)
247                 - usb3 (USB 3.2)
248                 - usb4 (USB4)
250 USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
252 Note: Electronically Marked Cables will have a device also for one cable plug
253 (eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
254 Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
255 second device also for the other plug. Both plugs may have alternate modes as
256 described in USB Type-C and USB Power Delivery specifications.
258 What:           /sys/class/typec/<port>-cable/type
259 Date:           April 2017
260 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
261 Description:    USB Power Delivery Specification defines a set of product types
262                 for the cables. This file will show the product type of the
263                 cable if it is known. If the product type of the cable is not
264                 visible to the device driver, this file will not exist.
266                 When the cable product type is detected, uvevent is also raised
267                 with PRODUCT_TYPE showing the product type of the cable.
269                 Valid values:
271                 ======================  ==========================
272                 undefined               -
273                 active                  Active Cable
274                 passive                 Passive Cable
275                 ======================  ==========================
277 What:           /sys/class/typec/<port>-cable/plug_type
278 Date:           April 2017
279 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
280 Description:
281                 Shows type of the plug on the cable:
283                 - type-a - Standard A
284                 - type-b - Standard B
285                 - type-c
286                 - captive
288 What:           /sys/class/typec/<port>-<plug>/number_of_alternate_modes
289 Date:           November 2020
290 Contact:        Prashant Malani <pmalani@chromium.org>
291 Description:
292                 Shows the number of alternate modes which are advertised by the plug
293                 associated with a particular cable during Power Delivery discovery.
294                 This file remains hidden until a value greater than or equal to 0
295                 is set by Type C port driver.
298 USB Type-C partner/cable Power Delivery Identity objects
300 NOTE: The following attributes will be applicable to both
301 partner (e.g /sys/class/typec/port0-partner/) and
302 cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file
303 paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to
304 reflect this.
306 What:           /sys/class/typec/<port>-{partner|cable}/identity/
307 Date:           April 2017
308 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
309 Description:
310                 This directory appears only if the port device driver is capable
311                 of showing the result of Discover Identity USB power delivery
312                 command. That will not always be possible even when USB power
313                 delivery is supported, for example when USB power delivery
314                 communication for the port is mostly handled in firmware. If the
315                 directory exists, it will have an attribute file for every VDO
316                 in Discover Identity command result.
318 What:           /sys/class/typec/<port>-{partner|cable}/identity/id_header
319 Date:           April 2017
320 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
321 Description:
322                 ID Header VDO part of Discover Identity command result. The
323                 value will show 0 until Discover Identity command result becomes
324                 available. The value can be polled.
326 What:           /sys/class/typec/<port>-{partner|cable}/identity/cert_stat
327 Date:           April 2017
328 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
329 Description:
330                 Cert Stat VDO part of Discover Identity command result. The
331                 value will show 0 until Discover Identity command result becomes
332                 available. The value can be polled.
334 What:           /sys/class/typec/<port>-{partner|cable}/identity/product
335 Date:           April 2017
336 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
337 Description:
338                 Product VDO part of Discover Identity command result. The value
339                 will show 0 until Discover Identity command result becomes
340                 available. The value can be polled.
342 What:           /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo1
343 Date:           October 2020
344 Contact:        Prashant Malani <pmalani@chromium.org>
345 Description:
346                 1st Product Type VDO of Discover Identity command result.
347                 The value will show 0 until Discover Identity command result becomes
348                 available and a valid Product Type VDO is returned.
350 What:           /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo2
351 Date:           October 2020
352 Contact:        Prashant Malani <pmalani@chromium.org>
353 Description:
354                 2nd Product Type VDO of Discover Identity command result.
355                 The value will show 0 until Discover Identity command result becomes
356                 available and a valid Product Type VDO is returned.
358 What:           /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo3
359 Date:           October 2020
360 Contact:        Prashant Malani <pmalani@chromium.org>
361 Description:
362                 3rd Product Type VDO of Discover Identity command result.
363                 The value will show 0 until Discover Identity command result becomes
364                 available and a valid Product Type VDO is returned.
367 USB Type-C port alternate mode devices.
369 What:           /sys/class/typec/<port>/<alt mode>/supported_roles
370 Date:           April 2017
371 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
372 Description:
373                 Space separated list of the supported roles.
375                 Valid values: source, sink