1 USB Type-C port devices (eg. /sys/class/typec/port0/)
3 What: /sys/class/typec/<port>/data_role
5 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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
20 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
31 Valid values: source, sink
33 What: /sys/class/typec/<port>/vconn_source
35 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
47 - "no" when the port is not the VCONN Source
48 - "yes" when the port is the VCONN Source
50 What: /sys/class/typec/<port>/power_operation_mode
52 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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".
65 What: /sys/class/typec/<port>/preferred_role
67 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
74 Valid values: source, sink, none (to remove preference)
76 What: /sys/class/typec/<port>/supported_accessory_modes
78 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
80 Space separated list of accessory modes, defined in the USB
81 Type-C specification, the port supports.
83 What: /sys/class/typec/<port>/usb_power_delivery_revision
85 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
87 Revision number of the supported USB Power Delivery
88 specification, or 0 when USB Power Delivery is not supported.
90 What: /sys/class/typec/<port>/usb_typec_revision
92 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
94 Revision number of the supported USB Type-C specification.
97 USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
99 What: /sys/class/typec/<port>-partner/accessory_mode
101 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
103 Shows the Accessory Mode name when the partner is an Accessory.
104 The Accessory Modes are defined in USB Type-C Specification.
106 What: /sys/class/typec/<port>-partner/supports_usb_power_delivery
108 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
110 Shows if the partner supports USB Power Delivery communication:
111 Valid values: yes, no
113 What: /sys/class/typec/<port>-partner>/identity/
115 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
125 What: /sys/class/typec/<port>-partner/identity/id_header
127 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
133 What: /sys/class/typec/<port>-partner/identity/cert_stat
135 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
141 What: /sys/class/typec/<port>-partner/identity/product
143 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
150 USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
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.
158 What: /sys/class/typec/<port>-cable/type
160 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
162 Shows if the cable is active.
163 Valid values: active, passive
165 What: /sys/class/typec/<port>-cable/plug_type
167 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
169 Shows type of the plug on the cable:
170 - type-a - Standard A
171 - type-b - Standard B
175 What: /sys/class/typec/<port>-cable/identity/
177 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
185 What: /sys/class/typec/<port>-cable/identity/id_header
187 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
193 What: /sys/class/typec/<port>-cable/identity/cert_stat
195 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
201 What: /sys/class/typec/<port>-cable/identity/product
203 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
210 Alternate Mode devices.
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
219 What: /sys/class/typec/<port|partner|cable>/<dev>/svid
221 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
223 The SVID (Standard or Vendor ID) assigned by USB-IF for this
226 What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/
228 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
235 What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/description
237 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
239 Shows description of the mode. The description is optional for
240 the drivers, just like with the Billboard Devices.
242 What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/vdo
244 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
246 Shows the VDO in hexadecimal returned by Discover Modes command
249 What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/active
251 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
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.
263 Valid values: yes, no
265 What: /sys/class/typec/<port>/<dev>/mode<index>/supported_roles
267 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
269 Space separated list of the supported roles.
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
276 Valid values: source, sink