[PATCH 1/4] dt-bindings: usb: Document ST UCPD
Marek Vasut <[email protected]>
| Newsgroups | org.kernel.vger.linux-usb,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Document ST UCPD Type-C block. The UCPD integrates the physical layer of the Power Delivery (PD), with CC signaling method, for operation with Type-C cables. Vbus and Vconn control is performed using an external chip, usually ST TCPP01/TCPP02/TCPP03 or similar. Signed-off-by: Marek Vasut <[email protected]> --- Cc: Alexandre Torgue <[email protected]> Cc: Conor Dooley <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Heikki Krogerus <[email protected]> Cc: Krzysztof Kozlowski <[email protected]> Cc: Maxime Coquelin <[email protected]> Cc: Rob Herring <[email protected]> Cc: Sebastian Reichel <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] --- .../bindings/usb/st,stm32mp25-ucpd.yaml | 154 ++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/st,stm32mp25-ucpd.yaml diff --git a/Documentation/devicetree/bindings/usb/st,stm32mp25-ucpd.yaml b/Documentation/devicetree/bindings/usb/st,stm32mp25-ucpd.yaml new file mode 100644 index 0000000000000..9b13efdc90597 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/st,stm32mp25-ucpd.yaml @@ -0,0 +1,154 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/st,stm32mp25-ucpd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: STMicroelectronics STM32MP25 UCPD Type-C controller + +maintainers: + - Marek Vasut <[email protected]> + +description: + The UCPD integrates the physical layer of the Power Delivery (PD), + with CC signaling method, for operation with Type-C cables. Vbus + and Vconn control is performed using an external chip, usually + ST TCPP01/TCPP02/TCPP03 or similar. + +properties: + compatible: + const: st,stm32mp25-ucpd + + reg: + maxItems: 1 + + access-controllers: + maxItems: 1 + + clocks: + minItems: 2 + maxItems: 2 + + clock-names: + items: + - const: apb + - const: ker + + interrupts: + maxItems: 1 + + nvmem-cells: + maxItems: 1 + + nvmem-cell-names: + const: trim + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + + reset-names: + const: phy + + vconn-gpios: + description: GPIOs used to control CC1 and CC2 Vconn + + vdd33-supply: + description: Regulator that supplies the CC lines driver + + connector: + type: object + $ref: /schemas/connector/usb-connector.yaml# + unevaluatedProperties: false + + properties: + compatible: + const: usb-c-connector + + power-role: true + + typec-power-opmode: true + + required: + - compatible + +required: + - compatible + - reg + - clocks + - clock-names + - interrupts + - nvmem-cells + - nvmem-cell-names + - power-domains + - resets + - reset-names + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/clock/st,stm32mp25-rcc.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/reset/st,stm32mp25-rcc.h> + + ucpd: phy@480a0000 { + compatible = "st,stm32mp25-ucpd"; + reg = <0x480a0000 0x1000>; + access-controllers = <&rifsc 69>; + clocks = <&rcc CK_BUS_USBTC>, <&rcc CK_KER_USBTC>; + clock-names = "apb", "ker"; + interrupts = <46 IRQ_TYPE_LEVEL_HIGH>; + nvmem-cells = <&ucpdtrim>; + nvmem-cell-names = "trim"; + power-domains = <&cluster_pd>; + resets = <&rcc USBTC_R>; + reset-names = "phy"; + + vconn-gpios = <&tcpp 0 0>, <&tcpp 1 0>; + vdd33-supply = <&scmi_vdd33ucpd>; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "source"; + self-powered; + vbus-gpios = <&gpioa 10 0>; + vbus-supply = <®_usbc_vbus>; + + altmodes { + displayport { + svid = /bits/ 16 <0xff01>; + vdo = <0xffffffff>; + }; + }; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_hs_ep: endpoint { + remote-endpoint = <&usb_drd0_hs_ep>; + }; + }; + port@1 { + reg = <1>; + usbc0_ss_ep: endpoint { + remote-endpoint = <&usb_drd0_ss_ep>; + }; + }; + + port@2 { + reg = <2>; + usbc0_sbu_ep: endpoint { + remote-endpoint = <&usb_sbu_ep>; + }; + }; + }; + }; + }; -- 2.53.0