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

Fabrice Gasnier <[email protected]>
Newsgroups org.infradead.lists.linux-phy,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb
Message-ID <20260821-ucpd-host-fusb340-v7-2-rfc-v1-3-c5e27cbc0795@foss.st.com>
From: Christian Bruel <[email protected]>

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 <[email protected]>
Signed-off-by: Fabrice Gasnier <[email protected]>
---
 .../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 <[email protected]>
+  - Fabrice Gasnier <[email protected]>
+
+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@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


-- 
linux-phy mailing list
[email protected]
https://lists.infradead.org/mailman/listinfo/linux-phy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.