:orphan:
.. raw:: html
.. dtcompatible:: usb-c-connector
.. _dtbinding_usb_c_connector:
usb-c-connector
###############
Vendor: :ref:`Generic or vendor-independent `
Description
***********
.. code-block:: none
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>;
};
};
Properties
**********
.. tabs::
.. group-tab:: Node specific properties
Properties not inherited from the base binding file.
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``tcpc``
- ``phandle``
- .. code-block:: none
Type-C Port Controller for this port.
This property is **required**.
* - ``vbus``
- ``phandle``
- .. code-block:: none
VBUS measurement and control for this port.
This property is **required**.
* - ``ppc``
- ``phandle``
- .. code-block:: none
Power path controller for this port
* - ``power-role``
- ``string``
- .. code-block:: none
The Port power role. "dual" for Dual Role Port.
This property is **required**.
Legal values: ``'sink'``, ``'source'``, ``'dual'``
* - ``try-power-role``
- ``string``
- .. code-block:: none
Preferred power role.
Legal values: ``'sink'``, ``'source'``, ``'dual'``
* - ``data-role``
- ``string``
- .. code-block:: none
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``
- .. code-block:: none
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.
Legal values: ``'default'``, ``'1.5A'``, ``'3.0A'``
* - ``pd-disable``
- ``boolean``
- .. code-block:: none
Disables power delivery when true
* - ``source-pdos``
- ``array``
- .. code-block:: none
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``
- ``array``
- .. code-block:: none
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``
- ``array``
- .. code-block:: none
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``
- ``array``
- .. code-block:: none
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``
- ``int``
- .. code-block:: none
Minimum power, in microwatts, needed by the sink. A Capability
Mismatch is sent to the Source if the power can't be met.
.. group-tab:: Deprecated node specific properties
Deprecated properties not inherited from the base binding file.
(None)
.. group-tab:: Base properties
Properties inherited from the base binding file, which defines
common properties that may be set on many nodes. Not all of these
may apply to the "usb-c-connector" compatible.
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``status``
- ``string``
- .. code-block:: none
indicates the operational status of a device
Legal values: ``'ok'``, ``'okay'``, ``'disabled'``, ``'reserved'``, ``'fail'``, ``'fail-sss'``
See :ref:`zephyr:dt-important-props` for more information.
* - ``compatible``
- ``string-array``
- .. code-block:: none
compatible strings
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``reg``
- ``array``
- .. code-block:: none
register space
See :ref:`zephyr:dt-important-props` for more information.
* - ``reg-names``
- ``string-array``
- .. code-block:: none
name of each register space
* - ``interrupts``
- ``array``
- .. code-block:: none
interrupts for device
See :ref:`zephyr:dt-important-props` for more information.
* - ``interrupts-extended``
- ``compound``
- .. code-block:: none
extended interrupt specifier for device
* - ``interrupt-names``
- ``string-array``
- .. code-block:: none
name of each interrupt
* - ``interrupt-parent``
- ``phandle``
- .. code-block:: none
phandle to interrupt controller node
* - ``label``
- ``string``
- .. code-block:: none
Human readable string describing the device (used as device_get_binding() argument)
See :ref:`zephyr:dt-important-props` for more information.
This property is **deprecated**.
* - ``clocks``
- ``phandle-array``
- .. code-block:: none
Clock gate information
* - ``clock-names``
- ``string-array``
- .. code-block:: none
name of each clock
* - ``#address-cells``
- ``int``
- .. code-block:: none
number of address cells in reg property
* - ``#size-cells``
- ``int``
- .. code-block:: none
number of size cells in reg property
* - ``dmas``
- ``phandle-array``
- .. code-block:: none
DMA channels specifiers
* - ``dma-names``
- ``string-array``
- .. code-block:: none
Provided names of DMA channel specifiers
* - ``io-channels``
- ``phandle-array``
- .. code-block:: none
IO channels specifiers
* - ``io-channel-names``
- ``string-array``
- .. code-block:: none
Provided names of IO channel specifiers
* - ``mboxes``
- ``phandle-array``
- .. code-block:: none
mailbox / IPM channels specifiers
* - ``mbox-names``
- ``string-array``
- .. code-block:: none
Provided names of mailbox / IPM channel specifiers
* - ``wakeup-source``
- ``boolean``
- .. code-block:: none
Property to identify that a device can be used as wake up source.
When this property is provided a specific flag is set into the
device that tells the system that the device is capable of
wake up the system.
Wake up capable devices are disabled (interruptions will not wake up
the system) by default but they can be enabled at runtime if necessary.
* - ``power-domain``
- ``phandle``
- .. code-block:: none
Power domain the device belongs to.
The device will be notified when the power domain it belongs to is either
suspended or resumed.
* - ``zephyr,pm-device-runtime-auto``
- ``boolean``
- .. code-block:: none
Automatically configure the device for runtime power management after the
init function runs.