at master 386 lines 15 kB view raw
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 144What: /sys/class/typec/<port>/select_usb_power_delivery 145Date: May 2022 146Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 147Description: 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. 151 152What: /sys/class/typec/<port>/usb_capability 153Date: November 2024 154Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 155Description: 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. 159 160 Valid values: 161 - usb2 (USB 2.0) 162 - usb3 (USB 3.2) 163 - usb4 (USB4) 164 165What: /sys/class/typec/<port>/<alt-mode>/priority 166Date: July 2025 167Contact: Andrei Kuchynski <akuchynski@chromium.org> 168Description: 169 Displays and allows setting the priority for a specific alternate mode. 170 The priority is an integer in the range 0-255. A lower numerical value 171 indicates a higher priority (0 is the highest). 172 If the new value is already in use by another mode, the priority of the 173 conflicting mode and any subsequent modes will be incremented until they 174 are all unique. 175 176USB Type-C partner devices (eg. /sys/class/typec/port0-partner/) 177 178What: /sys/class/typec/<port>-partner/accessory_mode 179Date: April 2017 180Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 181Description: 182 Shows the Accessory Mode name when the partner is an Accessory. 183 The Accessory Modes are defined in USB Type-C Specification. 184 185What: /sys/class/typec/<port>-partner/supports_usb_power_delivery 186Date: April 2017 187Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 188Description: 189 Shows if the partner supports USB Power Delivery communication: 190 Valid values: yes, no 191 192What: /sys/class/typec/<port>-partner/number_of_alternate_modes 193Date: November 2020 194Contact: Prashant Malani <pmalani@chromium.org> 195Description: 196 Shows the number of alternate modes which are advertised by the partner 197 during Power Delivery discovery. This file remains hidden until a value 198 greater than or equal to 0 is set by Type C port driver. 199 200What: /sys/class/typec/<port>-partner/type 201Date: December 2020 202Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 203Description: USB Power Delivery Specification defines a set of product types 204 for the partner devices. This file will show the product type of 205 the partner if it is known. Dual-role capable partners will have 206 both UFP and DFP product types defined, but only one that 207 matches the current role will be active at the time. If the 208 product type of the partner is not visible to the device driver, 209 this file will not exist. 210 211 When the partner product type is detected, or changed with role 212 swap, uvevent is also raised that contains PRODUCT_TYPE=<product 213 type> (for example PRODUCT_TYPE=hub). 214 215 Valid values: 216 217 UFP / device role 218 ====================== ========================== 219 undefined - 220 hub PDUSB Hub 221 peripheral PDUSB Peripheral 222 psd Power Bank 223 ama Alternate Mode Adapter 224 ====================== ========================== 225 226 DFP / host role 227 ====================== ========================== 228 undefined - 229 hub PDUSB Hub 230 host PDUSB Host 231 power_brick Power Brick 232 amc Alternate Mode Controller 233 ====================== ========================== 234 235What: /sys/class/typec/<port>-partner/identity/ 236Date: April 2017 237Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 238Description: 239 This directory appears only if the port device driver is capable 240 of showing the result of Discover Identity USB power delivery 241 command. That will not always be possible even when USB power 242 delivery is supported, for example when USB power delivery 243 communication for the port is mostly handled in firmware. If the 244 directory exists, it will have an attribute file for every VDO 245 in Discover Identity command result. 246 247What: /sys/class/typec/<port>-partner/usb_mode 248Date: November 2024 249Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 250Description: The USB Modes that the partner device supports. The active mode 251 is displayed in brackets. The active USB mode can be changed by 252 writing to this file when the port driver is able to send Data 253 Reset Message to the partner. That requires USB Power Delivery 254 contract between the partner and the port. 255 256 Valid values: 257 - usb2 (USB 2.0) 258 - usb3 (USB 3.2) 259 - usb4 (USB4) 260 261USB Type-C cable devices (eg. /sys/class/typec/port0-cable/) 262 263Note: Electronically Marked Cables will have a device also for one cable plug 264(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP 265Double Prime controller (USB Power Deliver specification ch. 2.4) it will have 266second device also for the other plug. Both plugs may have alternate modes as 267described in USB Type-C and USB Power Delivery specifications. 268 269What: /sys/class/typec/<port>-cable/type 270Date: April 2017 271Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 272Description: USB Power Delivery Specification defines a set of product types 273 for the cables. This file will show the product type of the 274 cable if it is known. If the product type of the cable is not 275 visible to the device driver, this file will not exist. 276 277 When the cable product type is detected, uvevent is also raised 278 with PRODUCT_TYPE showing the product type of the cable. 279 280 Valid values: 281 282 ====================== ========================== 283 undefined - 284 active Active Cable 285 passive Passive Cable 286 ====================== ========================== 287 288What: /sys/class/typec/<port>-cable/plug_type 289Date: April 2017 290Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 291Description: 292 Shows type of the plug on the cable: 293 294 - type-a - Standard A 295 - type-b - Standard B 296 - type-c 297 - captive 298 299What: /sys/class/typec/<port>-<plug>/number_of_alternate_modes 300Date: November 2020 301Contact: Prashant Malani <pmalani@chromium.org> 302Description: 303 Shows the number of alternate modes which are advertised by the plug 304 associated with a particular cable during Power Delivery discovery. 305 This file remains hidden until a value greater than or equal to 0 306 is set by Type C port driver. 307 308 309USB Type-C partner/cable Power Delivery Identity objects 310 311NOTE: The following attributes will be applicable to both 312partner (e.g /sys/class/typec/port0-partner/) and 313cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file 314paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to 315reflect this. 316 317What: /sys/class/typec/<port>-{partner|cable}/identity/ 318Date: April 2017 319Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 320Description: 321 This directory appears only if the port device driver is capable 322 of showing the result of Discover Identity USB power delivery 323 command. That will not always be possible even when USB power 324 delivery is supported, for example when USB power delivery 325 communication for the port is mostly handled in firmware. If the 326 directory exists, it will have an attribute file for every VDO 327 in Discover Identity command result. 328 329What: /sys/class/typec/<port>-{partner|cable}/identity/id_header 330Date: April 2017 331Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 332Description: 333 ID Header VDO part of Discover Identity command result. The 334 value will show 0 until Discover Identity command result becomes 335 available. The value can be polled. 336 337What: /sys/class/typec/<port>-{partner|cable}/identity/cert_stat 338Date: April 2017 339Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 340Description: 341 Cert Stat VDO part of Discover Identity command result. The 342 value will show 0 until Discover Identity command result becomes 343 available. The value can be polled. 344 345What: /sys/class/typec/<port>-{partner|cable}/identity/product 346Date: April 2017 347Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 348Description: 349 Product VDO part of Discover Identity command result. The value 350 will show 0 until Discover Identity command result becomes 351 available. The value can be polled. 352 353What: /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo1 354Date: October 2020 355Contact: Prashant Malani <pmalani@chromium.org> 356Description: 357 1st Product Type VDO of Discover Identity command result. 358 The value will show 0 until Discover Identity command result becomes 359 available and a valid Product Type VDO is returned. 360 361What: /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo2 362Date: October 2020 363Contact: Prashant Malani <pmalani@chromium.org> 364Description: 365 2nd Product Type VDO of Discover Identity command result. 366 The value will show 0 until Discover Identity command result becomes 367 available and a valid Product Type VDO is returned. 368 369What: /sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo3 370Date: October 2020 371Contact: Prashant Malani <pmalani@chromium.org> 372Description: 373 3rd Product Type VDO of Discover Identity command result. 374 The value will show 0 until Discover Identity command result becomes 375 available and a valid Product Type VDO is returned. 376 377 378USB Type-C port alternate mode devices. 379 380What: /sys/class/typec/<port>/<alt mode>/supported_roles 381Date: April 2017 382Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 383Description: 384 Space separated list of the supported roles. 385 386 Valid values: source, sink