| # Copyright 2022 The Chromium OS Authors |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| 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>; |
| }; |
| }; |
| |
| |
| compatible: "usb-c-connector" |
| |
| include: base.yaml |
| |
| properties: |
| tcpc: |
| type: phandle |
| required: true |
| description: | |
| Type-C Port Controller for this port. |
| |
| vbus: |
| type: phandle |
| required: true |
| description: | |
| VBUS measurement and control for this port. |
| |
| ppc: |
| type: phandle |
| description: | |
| Power path controller for this port |
| |
| power-role: |
| type: string |
| required: true |
| enum: |
| - "sink" |
| - "source" |
| - "dual" |
| description: | |
| The Port power role. "dual" for Dual Role Port. |
| |
| try-power-role: |
| type: string |
| enum: |
| - "sink" |
| - "source" |
| - "dual" |
| description: | |
| Preferred power role. |
| |
| data-role: |
| type: string |
| enum: |
| - "host" |
| - "device" |
| - "dual" |
| description: | |
| The Port data role. |
| * "host" for Downstream Facing Port (DFP) |
| * "device" for Upstream Facing Port (UFP) |
| * "dual" for Dual Role Data |
| |
| typec-power-opmode: |
| type: string |
| enum: |
| - "default" |
| - "1.5A" |
| - "3.0A" |
| description: | |
| 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", 5V@1.5A and 5V@3.0A. |
| |
| pd-disable: |
| type: boolean |
| description: | |
| Disables power delivery when true |
| |
| source-pdos: |
| type: array |
| description: | |
| An array of source Power Data Objects (PDOs). |
| Use the 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: |
| type: array |
| description: | |
| An array of sink Power Data Objects (PDOs). |
| Use the 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: |
| type: array |
| description: | |
| An array of sink Vendor Defined Objects (VDOs). |
| Use the 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: |
| type: array |
| description: | |
| An array of sink Vendor Defined Objects (VDOs). |
| Use the 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: |
| type: int |
| description: | |
| Minimum power, in microwatts, needed by the sink. A Capability |
| Mismatch is sent to the Source if the power can't be met. |