usb-c-connector

Vendor: Generic or vendor-independent

Description

A USB Type-C connector node represents a physical USB Type-C connector.
It should be a child of a USB-C interface controller or a separate node
when it is attached to both MUX and USB-C interface controller.

This is based on Linux, documentation:
  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/connector/usb-connector.yaml?h=v5.19&id=3d7cb6b04c3f3115719235cc6866b10326de34cd

Example:

USB-C connector attached to a STM32 UCPD typec port controller, which has
power delivery support and enables SINK.

vbus1: vbus {
    compatible = "zephyr,usb-c-vbus-adc";
    io-channels = <&adc2 8>;
    output-ohms = <49900>;
    full-ohms = <(330000 + 49900)>;
};

ports {
    #address-cells = <1>;
    #size-cells = <0>;
    port1: usb-c-port@1 {
        compatible = "usb-c-connector";
        reg = <1>;
        tcpc = <&ucpd1>;
        vbus = <&vbus1>;
        power-role = "SINK";
        sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
                     PDO_VAR(5000, 12000, 2000)>;
        op-sink-microwatt = <10000000>;
    };
};

Properties

Properties not inherited from the base binding file.

Name

Type

Details

tcpc

phandle

Type-C Port Controller for this port.

This property is required.

vbus

phandle

VBUS measurement and control for this port.

This property is required.

power-role

string

The Port power role. "dual" for Dual Role Port.

This property is required.

Legal values: 'sink', 'source', 'dual'

try-power-role

string

Preferred power role.

Legal values: 'sink', 'source', 'dual'

data-role

string

The Port data role.
  * "host" for Downstream Facing Port (DFP)
  * "device" for Upstream Facing Port (UFP)
  * "dual" for Dual Role Data

Legal values: 'host', 'device', 'dual'

typec-power-opmode

string

Initial Type C advertised power, determined by the Rp when
operating as a Source.
* "default" corresponds to default USB voltage and current
  defined by the  USB 2.0 and USB 3.2 specifications.
    * 5V@500mA for USB 2.0
    * 5V@900mA for USB 3.2 single-lane
    * 5V@1500mA for USB 3.2 dual-lane
* "1.5A" and "3.0A", [email protected] and [email protected].

Legal values: 'default', '1.5A', '3.0A'

pd-disable

boolean

Disables power delivery when true

source-pdos

array

An array of source Power Data Objects (PDOs).
Use tht following macros to define the PDOs, defined in
dt-bindings/usb-c/pd.h.
  * PDO_FIXED
  * PDO_BATT
  * PDO_VAR
  * PDO_PPS_APDO
Valid range: 1 - 7

sink-pdos

array

An array of sink Power Data Objects (PDOs).
Use tht following macros to define the PDOs, defined in
dt-bindings/usb-c/pd.h.
  * PDO_FIXED
  * PDO_BATT
  * PDO_VAR
  * PDO_PPS_APDO
Valid range: 1 - 7

sink-vdos

array

An array of sink Vendor Defined Objects (VDOs).
Use tht following macros to define the VDOs, defined in
dt-bindings/usb-c/pd.h.
  * VDO_IDH
  * VDO_CERT
  * VDO_PRODUCT
  * VDO_UFP
  * VDO_DFP
  * VDO_PCABLE
  * VDO_ACABLE
  * VDO_VPD
Valid range: 3 - 6

sink-vdos-v1

array

An array of sink Vendor Defined Objects (VDOs).
Use tht following macros to define the VDOs, defined in
dt-bindings/usb-c/pd.h.
  * VDO_IDH
  * VDO_CERT
  * VDO_PRODUCT
  * VDO_CABLE
  * VDO_AMA
Valid range: 3 - 6

op-sink-microwatt

int

Minimum power, in microwatts, needed by the sink. A Capability
Mismatch is sent to the Source if the power can't be met.