Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
[sfrench/cifs-2.6.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 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
33 What:           /sys/class/typec/<port>/vconn_source
34 Date:           April 2017
35 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
36 Description:
37                 Shows is the port VCONN Source. This attribute can be used to
38                 request VCONN swap to change the VCONN Source during connection
39                 when both the port and the partner support USB Power Delivery.
40                 Swapping is supported as synchronous operation, so write(2) to
41                 the attribute will not return until the operation has finished.
42                 The attribute is notified about VCONN source changes so that
43                 poll(2) on the attribute wakes up. Change on VCONN source also
44                 generates uevent KOBJ_CHANGE.
45
46                 Valid values:
47                 - "no" when the port is not the VCONN Source
48                 - "yes" when the port is the VCONN Source
49
50 What:           /sys/class/typec/<port>/power_operation_mode
51 Date:           April 2017
52 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
53 Description:
54                 Shows the current power operational mode the port is in. The
55                 power operation mode means current level for VBUS. In case USB
56                 Power Delivery communication is used for negotiating the levels,
57                 power operation mode should show "usb_power_delivery".
58
59                 Valid values:
60                 - default
61                 - 1.5A
62                 - 3.0A
63                 - usb_power_delivery
64
65 What:           /sys/class/typec/<port>/preferred_role
66 Date:           April 2017
67 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
68 Description:
69                 The user space can notify the driver about the preferred role.
70                 It should be handled as enabling of Try.SRC or Try.SNK, as
71                 defined in USB Type-C specification, in the port drivers. By
72                 default the preferred role should come from the platform.
73
74                 Valid values: source, sink, none (to remove preference)
75
76 What:           /sys/class/typec/<port>/supported_accessory_modes
77 Date:           April 2017
78 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
79 Description:
80                 Space separated list of accessory modes, defined in the USB
81                 Type-C specification, the port supports.
82
83 What:           /sys/class/typec/<port>/usb_power_delivery_revision
84 Date:           April 2017
85 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
86 Description:
87                 Revision number of the supported USB Power Delivery
88                 specification, or 0 when USB Power Delivery is not supported.
89
90 What:           /sys/class/typec/<port>/usb_typec_revision
91 Date:           April 2017
92 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
93 Description:
94                 Revision number of the supported USB Type-C specification.
95
96
97 USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
98
99 What:           /sys/class/typec/<port>-partner/accessory_mode
100 Date:           April 2017
101 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
102 Description:
103                 Shows the Accessory Mode name when the partner is an Accessory.
104                 The Accessory Modes are defined in USB Type-C Specification.
105
106 What:           /sys/class/typec/<port>-partner/supports_usb_power_delivery
107 Date:           April 2017
108 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
109 Description:
110                 Shows if the partner supports USB Power Delivery communication:
111                 Valid values: yes, no
112
113 What:           /sys/class/typec/<port>-partner>/identity/
114 Date:           April 2017
115 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
116 Description:
117                 This directory appears only if the port device driver is capable
118                 of showing the result of Discover Identity USB power delivery
119                 command. That will not always be possible even when USB power
120                 delivery is supported, for example when USB power delivery
121                 communication for the port is mostly handled in firmware. If the
122                 directory exists, it will have an attribute file for every VDO
123                 in Discover Identity command result.
124
125 What:           /sys/class/typec/<port>-partner/identity/id_header
126 Date:           April 2017
127 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
128 Description:
129                 ID Header VDO part of Discover Identity command result. The
130                 value will show 0 until Discover Identity command result becomes
131                 available. The value can be polled.
132
133 What:           /sys/class/typec/<port>-partner/identity/cert_stat
134 Date:           April 2017
135 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
136 Description:
137                 Cert Stat VDO part of Discover Identity command result. The
138                 value will show 0 until Discover Identity command result becomes
139                 available. The value can be polled.
140
141 What:           /sys/class/typec/<port>-partner/identity/product
142 Date:           April 2017
143 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
144 Description:
145                 Product VDO part of Discover Identity command result. The value
146                 will show 0 until Discover Identity command result becomes
147                 available. The value can be polled.
148
149
150 USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
151
152 Note: Electronically Marked Cables will have a device also for one cable plug
153 (eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
154 Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
155 second device also for the other plug. Both plugs may have alternate modes as
156 described in USB Type-C and USB Power Delivery specifications.
157
158 What:           /sys/class/typec/<port>-cable/type
159 Date:           April 2017
160 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
161 Description:
162                 Shows if the cable is active.
163                 Valid values: active, passive
164
165 What:           /sys/class/typec/<port>-cable/plug_type
166 Date:           April 2017
167 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
168 Description:
169                 Shows type of the plug on the cable:
170                 - type-a - Standard A
171                 - type-b - Standard B
172                 - type-c
173                 - captive
174
175 What:           /sys/class/typec/<port>-cable/identity/
176 Date:           April 2017
177 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
178 Description:
179                 This directory appears only if the port device driver is capable
180                 of showing the result of Discover Identity USB power delivery
181                 command. That will not always be possible even when USB power
182                 delivery is supported. If the directory exists, it will have an
183                 attribute for every VDO returned by Discover Identity command.
184
185 What:           /sys/class/typec/<port>-cable/identity/id_header
186 Date:           April 2017
187 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
188 Description:
189                 ID Header VDO part of Discover Identity command result. The
190                 value will show 0 until Discover Identity command result becomes
191                 available. The value can be polled.
192
193 What:           /sys/class/typec/<port>-cable/identity/cert_stat
194 Date:           April 2017
195 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
196 Description:
197                 Cert Stat VDO part of Discover Identity command result. The
198                 value will show 0 until Discover Identity command result becomes
199                 available. The value can be polled.
200
201 What:           /sys/class/typec/<port>-cable/identity/product
202 Date:           April 2017
203 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
204 Description:
205                 Product VDO part of Discover Identity command result. The value
206                 will show 0 until Discover Identity command result becomes
207                 available. The value can be polled.
208
209
210 Alternate Mode devices.
211
212 The alternate modes will have Standard or Vendor ID (SVID) assigned by USB-IF.
213 The ports, partners and cable plugs can have alternate modes. A supported SVID
214 will consist of a set of modes. Every SVID a port/partner/plug supports will
215 have a device created for it, and every supported mode for a supported SVID will
216 have its own directory under that device. Below <dev> refers to the device for
217 the alternate mode.
218
219 What:           /sys/class/typec/<port|partner|cable>/<dev>/svid
220 Date:           April 2017
221 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
222 Description:
223                 The SVID (Standard or Vendor ID) assigned by USB-IF for this
224                 alternate mode.
225
226 What:           /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/
227 Date:           April 2017
228 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
229 Description:
230                 Every supported mode will have its own directory. The name of
231                 a mode will be "mode<index>" (for example mode1), where <index>
232                 is the actual index to the mode VDO returned by Discover Modes
233                 USB power delivery command.
234
235 What:           /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/description
236 Date:           April 2017
237 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
238 Description:
239                 Shows description of the mode. The description is optional for
240                 the drivers, just like with the Billboard Devices.
241
242 What:           /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/vdo
243 Date:           April 2017
244 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
245 Description:
246                 Shows the VDO in hexadecimal returned by Discover Modes command
247                 for this mode.
248
249 What:           /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/active
250 Date:           April 2017
251 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
252 Description:
253                 Shows if the mode is active or not. The attribute can be used
254                 for entering/exiting the mode with partners and cable plugs, and
255                 with the port alternate modes it can be used for disabling
256                 support for specific alternate modes. Entering/exiting modes is
257                 supported as synchronous operation so write(2) to the attribute
258                 does not return until the enter/exit mode operation has
259                 finished. The attribute is notified when the mode is
260                 entered/exited so poll(2) on the attribute wakes up.
261                 Entering/exiting a mode will also generate uevent KOBJ_CHANGE.
262
263                 Valid values: yes, no
264
265 What:           /sys/class/typec/<port>/<dev>/mode<index>/supported_roles
266 Date:           April 2017
267 Contact:        Heikki Krogerus <heikki.krogerus@linux.intel.com>
268 Description:
269                 Space separated list of the supported roles.
270
271                 This attribute is available for the devices describing the
272                 alternate modes a port supports, and it will not be exposed with
273                 the devices presenting the alternate modes the partners or cable
274                 plugs support.
275
276                 Valid values: source, sink