# 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 = ; 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.