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 323