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.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 115What: /sys/class/typec/<port>-{partner|cable}/usb_power_delivery_revision 116Date: January 2021 117Contact: Benson Leung <bleung@chromium.org> 118Description: 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 128What: /sys/class/typec/<port>/usb_typec_revision 129Date: April 2017 130Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 131Description: 132 Revision number of the supported USB Type-C specification. 133 134What: /sys/class/typec/<port>/orientation 135Date: February 2020 136Contact: Badhri Jagan Sridharan <badhri@google.com> 137Description: 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 144USB Type-C partner devices (eg. /sys/class/typec/port0-partner/) 145 146What: /sys/class/typec/<port>-partner/accessory_mode 147Date: April 2017 148Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 149Description: 150 Shows the Accessory Mode name when the partner is an Accessory. 151 The Accessory Modes are defined in USB Type-C Specification. 152 153What: /sys/class/typec/<port>-partner/supports_usb_power_delivery 154Date: April 2017 155Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 156Description: 157 Shows if the partner supports USB Power Delivery communication: 158 Valid values: yes, no 159 160What: /sys/class/typec/<port>-partner/number_of_alternate_modes 161Date: November 2020 162Contact: Prashant Malani <pmalani@chromium.org> 163Description: 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 168What: /sys/class/typec/<port>-partner/type 169Date: December 2020 170Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 171Description: 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 203What: /sys/class/typec/<port>-partner/identity/ 204Date: April 2017 205Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 206Description: 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 215USB Type-C cable devices (eg. /sys/class/typec/port0-cable/) 216 217Note: 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 219Double Prime controller (USB Power Deliver specification ch. 2.4) it will have 220second device also for the other plug. Both plugs may have alternate modes as 221described in USB Type-C and USB Power Delivery specifications. 222 223What: /sys/class/typec/<port>-cable/type 224Date: April 2017 225Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 226Description: 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 242What: /sys/class/typec/<port>-cable/plug_type 243Date: April 2017 244Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 245Description: 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 253What: /sys/class/typec/<port>-<plug>/number_of_alternate_modes 254Date: November 2020 255Contact: Prashant Malani <pmalani@chromium.org> 256Description: 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 263USB Type-C partner/cable Power Delivery Identity objects 264 265NOTE: The following attributes will be applicable to both 266partner (e.g /sys/class/typec/port0-partner/) and 267cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file 268paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to 269reflect this. 270 271What: /sys/class/typec/<port>-{partner|cable}/identity/ 272Date: April 2017 273Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 274Description: 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 283What: /sys/class/typec/<port>-{partner|cable}/identity/id_header 284Date: April 2017 285Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 286Description: 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 291What: /sys/class/typec/<port>-{partner|cable}/identity/cert_stat 292Date: April 2017 293Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 294Description: 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 299What: /sys/class/typec/<port>-{partner|cable}/identity/product 300Date: April 2017 301Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 302Description: 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 307What: /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo1 308Date: October 2020 309Contact: Prashant Malani <pmalani@chromium.org> 310Description: 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 315What: /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo2 316Date: October 2020 317Contact: Prashant Malani <pmalani@chromium.org> 318Description: 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 323What: /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo3 324Date: October 2020 325Contact: Prashant Malani <pmalani@chromium.org> 326Description: 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 332USB Type-C port alternate mode devices. 333 334What: /sys/class/typec/<port>/<alt mode>/supported_roles 335Date: April 2017 336Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 337Description: 338 Space separated list of the supported roles. 339 340 Valid values: source, sink 341