# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm QMP USB4-USB3-DP PHY controller (SC8280XP) maintainers: - Vinod Koul <vkoul@kernel.org> description: The QMP PHY controller supports physical layer functionality for a number of controllers on Qualcomm chipsets, such as, PCIe, UFS and USB. properties: compatible: enum: - qcom,sc7180-qmp-usb3-dp-phy - qcom,sc7280-qmp-usb3-dp-phy - qcom,sc8180x-qmp-usb3-dp-phy - qcom,sc8280xp-qmp-usb43dp-phy - qcom,sdm845-qmp-usb3-dp-phy - qcom,sm6350-qmp-usb3-dp-phy - qcom,sm8150-qmp-usb3-dp-phy - qcom,sm8250-qmp-usb3-dp-phy - qcom,sm8350-qmp-usb3-dp-phy - qcom,sm8450-qmp-usb3-dp-phy - qcom,sm8550-qmp-usb3-dp-phy reg: maxItems: 1 clocks: minItems: 4 maxItems: 5 clock-names: minItems: 4 items: - const: aux - const: ref - const: com_aux - const: usb3_pipe - const: cfg_ahb power-domains: maxItems: 1 resets: maxItems: 2 reset-names: items: - const: phy - const: common vdda-phy-supply: true vdda-pll-supply: true "#clock-cells": const: 1 description: See include/dt-bindings/dt-bindings/phy/phy-qcom-qmp.h "#phy-cells": const: 1 description: See include/dt-bindings/dt-bindings/phy/phy-qcom-qmp.h orientation-switch: description: Flag the PHY as possible handler of USB Type-C orientation switching type: boolean ports: $ref: /schemas/graph.yaml#/properties/ports properties: port@0: $ref: /schemas/graph.yaml#/properties/port description: Output endpoint of the PHY port@1: $ref: /schemas/graph.yaml#/properties/port description: Incoming endpoint from the USB controller port@2: $ref: /schemas/graph.yaml#/properties/port description: Incoming endpoint from the DisplayPort controller required: - compatible - reg - clocks - clock-names - resets - reset-names - vdda-phy-supply - vdda-pll-supply - "#clock-cells" - "#phy-cells" allOf: - if: properties: compatible: enum: - qcom,sc7180-qmp-usb3-dp-phy - qcom,sdm845-qmp-usb3-dp-phy then: properties: clocks: maxItems: 5 clock-names: maxItems: 5 else: properties: clocks: maxItems: 4 clock-names: maxItems: 4 - if: properties: compatible: enum: - qcom,sc8280xp-qmp-usb43dp-phy - qcom,sm6350-qmp-usb3-dp-phy - qcom,sm8550-qmp-usb3-dp-phy then: required: - power-domains else: properties: power-domains: false additionalProperties: false examples: - | #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> phy@88eb000 { compatible = "qcom,sc8280xp-qmp-usb43dp-phy"; reg = <0x088eb000 0x4000>; clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, <&gcc GCC_USB4_EUD_CLKREF_CLK>, <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>, <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; clock-names = "aux", "ref", "com_aux", "usb3_pipe"; power-domains = <&gcc USB30_PRIM_GDSC>; resets = <&gcc GCC_USB3_PHY_PRIM_BCR>, <&gcc GCC_USB4_DP_PHY_PRIM_BCR>; reset-names = "phy", "common"; vdda-phy-supply = <&vreg_l9d>; vdda-pll-supply = <&vreg_l4d>; orientation-switch; #clock-cells = <1>; #phy-cells = <1>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; endpoint { remote-endpoint = <&typec_connector_ss>; }; }; port@1 { reg = <1>; endpoint { remote-endpoint = <&dwc3_ss_out>; }; }; port@2 { reg = <2>; endpoint { remote-endpoint = <&mdss_dp_out>; }; }; }; };