[PATCH 03/16] dt-bindings: usb: st,stm32-ucpd: Document STM32 UCPD controller

Fabrice Gasnier fabrice.gasnier at foss.st.com
Fri Aug 21 09:23:14 PDT 2026


From: Christian Bruel <christian.bruel at foss.st.com>

Add support for the UCPD controller found in STM32MP25 platforms.

Document the compatible "st,stm32-ucpd". This controller handles
USB Type-C CC line management and USB PD.

VBUS monitoring relies on external TCPP03 companion chip

Signed-off-by: Christian Bruel <christian.bruel at foss.st.com>
Signed-off-by: Fabrice Gasnier <fabrice.gasnier at foss.st.com>
---
 .../devicetree/bindings/usb/st,stm32-ucpd.yaml     | 134 +++++++++++++++++++++
 1 file changed, 134 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/st,stm32-ucpd.yaml b/Documentation/devicetree/bindings/usb/st,stm32-ucpd.yaml
new file mode 100644
index 000000000000..d9b8253654a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/st,stm32-ucpd.yaml
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/st,stm32-ucpd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STM32 UCPD (USB Type-C and Power Delivery)
+
+maintainers:
+  - Christian Bruel <christian.bruel at foss.st.com>
+  - Fabrice Gasnier <fabrice.gasnier at foss.st.com>
+
+description:
+  STMicroelectronics USB Type-C and Power Delivery Port Controller
+
+properties:
+  compatible:
+    const: st,stm32mp25-ucpd
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-names:
+    const: ucpd
+
+  clocks:
+    items:
+      - description: APB Bus clock
+      - description: RCC kernel clock
+
+  clock-names:
+    items:
+      - const: apb
+      - const: ker
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    const: ucpd
+
+  nvmem-cells:
+    maxItems: 6
+    description: Phandles to the trim values provided by otp
+
+  nvmem-cell-names:
+    maxItems: 6
+
+  st,tcpp:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle to Type-C Port Protection companion chip.
+      Refer to ./st,tcpp.yaml
+
+  access-controllers:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  ucpd-supply:
+    description: phandle to the UCPD regulator supply.
+
+  vconn-cc1-gpios:
+    description: Vconn on CC1 gate enable GPIO.
+
+  vconn-cc2-gpios:
+    description: Vconn on CC2 gate enable GPIO.
+
+  vconn-supply:
+    description: phandle to the regulator supplying Vconn gates.
+
+  connector:
+    type: object
+    $ref: ../connector/usb-connector.yaml#
+    unevaluatedProperties: false
+    description: USB Type-C connector properties.
+
+required:
+  - clocks
+  - clock-names
+  - compatible
+  - connector
+  - interrupts
+  - interrupt-names
+  - resets
+  - reset-names
+  - reg
+  - st,tcpp
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/st,stm32mp25-rcc.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/reset/st,stm32mp25-rcc.h>
+
+    typec at 480a0000 {
+        compatible = "st,stm32mp25-ucpd";
+        reg = <0x480a0000 0x400>;
+        interrupts-extended = <&exti1 46 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "ucpd";
+        clocks = <&rcc CK_BUS_USBTC>, <&rcc CK_KER_USBTC>;
+        clock-names = "apb", "ker";
+        resets = <&rcc USBTC_R>;
+        reset-names = "ucpd";
+        access-controllers = <&rifsc 69>;
+        power-domains = <&d1_pd>;
+        ucpd-supply = <&scmi_vdd33ucpd>;
+        vconn-cc1-gpios = <&gpiof 5 GPIO_ACTIVE_HIGH>;
+        vconn-cc2-gpios = <&gpioc 3 GPIO_ACTIVE_HIGH>;
+        vconn-supply = <&vconn>;
+        st,tcpp = <&tcpp03>;
+
+        connector {
+            compatible = "usb-c-connector";
+            label = "USB-C";
+            power-role = "dual";
+            try-power-role = "sink";
+            data-role = "dual";
+            typec-power-opmode = "default";
+            pd-disable;
+            port {
+                endpoint {
+                    remote-endpoint = <&dwc3_ep>;
+                };
+            };
+        };
+    };

-- 
2.43.0




More information about the linux-arm-kernel mailing list