[PATCH 03/16] dt-bindings: usb: st,stm32-ucpd: Document STM32 UCPD controller
Fabrice Gasnier <[email protected]>
| Newsgroups | org.kernel.vger.linux-devicetree,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-phy,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