blob: 1984486b7e6deaeb23b3bef73d97472e63064cb8 [file] [log] [blame]
# 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.
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 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:
type: array
description: |
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:
type: array
description: |
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:
type: array
description: |
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:
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.