18bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 28bab661aSEmmanuel Vadot%YAML 1.2 38bab661aSEmmanuel Vadot--- 48bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml# 58bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68bab661aSEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (PCIe, SC8280XP) 88bab661aSEmmanuel Vadot 98bab661aSEmmanuel Vadotmaintainers: 108bab661aSEmmanuel Vadot - Vinod Koul <vkoul@kernel.org> 118bab661aSEmmanuel Vadot 128bab661aSEmmanuel Vadotdescription: 138bab661aSEmmanuel Vadot The QMP PHY controller supports physical layer functionality for a number of 148bab661aSEmmanuel Vadot controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 158bab661aSEmmanuel Vadot 168bab661aSEmmanuel Vadotproperties: 178bab661aSEmmanuel Vadot compatible: 188bab661aSEmmanuel Vadot enum: 198bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x1-pcie-phy 208bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x2-pcie-phy 218bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x4-pcie-phy 22*cb7aa33aSEmmanuel Vadot - qcom,sm8350-qmp-gen3x1-pcie-phy 23*cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen3x2-pcie-phy 24*cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen4x2-pcie-phy 258bab661aSEmmanuel Vadot 268bab661aSEmmanuel Vadot reg: 278bab661aSEmmanuel Vadot minItems: 1 288bab661aSEmmanuel Vadot maxItems: 2 298bab661aSEmmanuel Vadot 308bab661aSEmmanuel Vadot clocks: 31*cb7aa33aSEmmanuel Vadot minItems: 5 328bab661aSEmmanuel Vadot maxItems: 6 338bab661aSEmmanuel Vadot 348bab661aSEmmanuel Vadot clock-names: 35*cb7aa33aSEmmanuel Vadot minItems: 5 368bab661aSEmmanuel Vadot items: 378bab661aSEmmanuel Vadot - const: aux 388bab661aSEmmanuel Vadot - const: cfg_ahb 398bab661aSEmmanuel Vadot - const: ref 408bab661aSEmmanuel Vadot - const: rchng 418bab661aSEmmanuel Vadot - const: pipe 428bab661aSEmmanuel Vadot - const: pipediv2 438bab661aSEmmanuel Vadot 448bab661aSEmmanuel Vadot power-domains: 458bab661aSEmmanuel Vadot maxItems: 1 468bab661aSEmmanuel Vadot 478bab661aSEmmanuel Vadot resets: 48*cb7aa33aSEmmanuel Vadot minItems: 1 49*cb7aa33aSEmmanuel Vadot maxItems: 2 508bab661aSEmmanuel Vadot 518bab661aSEmmanuel Vadot reset-names: 52*cb7aa33aSEmmanuel Vadot minItems: 1 538bab661aSEmmanuel Vadot items: 548bab661aSEmmanuel Vadot - const: phy 55*cb7aa33aSEmmanuel Vadot - const: phy_nocsr 568bab661aSEmmanuel Vadot 578bab661aSEmmanuel Vadot vdda-phy-supply: true 588bab661aSEmmanuel Vadot 598bab661aSEmmanuel Vadot vdda-pll-supply: true 608bab661aSEmmanuel Vadot 61*cb7aa33aSEmmanuel Vadot vdda-qref-supply: true 62*cb7aa33aSEmmanuel Vadot 638bab661aSEmmanuel Vadot qcom,4ln-config-sel: 648bab661aSEmmanuel Vadot description: PCIe 4-lane configuration 658bab661aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 668bab661aSEmmanuel Vadot items: 678bab661aSEmmanuel Vadot - items: 688bab661aSEmmanuel Vadot - description: phandle of TCSR syscon 698bab661aSEmmanuel Vadot - description: offset of PCIe 4-lane configuration register 708bab661aSEmmanuel Vadot - description: offset of configuration bit for this PHY 718bab661aSEmmanuel Vadot 728bab661aSEmmanuel Vadot "#clock-cells": 738bab661aSEmmanuel Vadot const: 0 748bab661aSEmmanuel Vadot 758bab661aSEmmanuel Vadot clock-output-names: 768bab661aSEmmanuel Vadot maxItems: 1 778bab661aSEmmanuel Vadot 788bab661aSEmmanuel Vadot "#phy-cells": 798bab661aSEmmanuel Vadot const: 0 808bab661aSEmmanuel Vadot 818bab661aSEmmanuel Vadotrequired: 828bab661aSEmmanuel Vadot - compatible 838bab661aSEmmanuel Vadot - reg 848bab661aSEmmanuel Vadot - clocks 858bab661aSEmmanuel Vadot - clock-names 868bab661aSEmmanuel Vadot - power-domains 878bab661aSEmmanuel Vadot - resets 888bab661aSEmmanuel Vadot - reset-names 898bab661aSEmmanuel Vadot - vdda-phy-supply 908bab661aSEmmanuel Vadot - vdda-pll-supply 918bab661aSEmmanuel Vadot - "#clock-cells" 928bab661aSEmmanuel Vadot - clock-output-names 938bab661aSEmmanuel Vadot - "#phy-cells" 948bab661aSEmmanuel Vadot 958bab661aSEmmanuel VadotadditionalProperties: false 968bab661aSEmmanuel Vadot 978bab661aSEmmanuel VadotallOf: 988bab661aSEmmanuel Vadot - if: 998bab661aSEmmanuel Vadot properties: 1008bab661aSEmmanuel Vadot compatible: 1018bab661aSEmmanuel Vadot contains: 1028bab661aSEmmanuel Vadot enum: 1038bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x4-pcie-phy 1048bab661aSEmmanuel Vadot then: 1058bab661aSEmmanuel Vadot properties: 1068bab661aSEmmanuel Vadot reg: 1078bab661aSEmmanuel Vadot items: 1088bab661aSEmmanuel Vadot - description: port a 1098bab661aSEmmanuel Vadot - description: port b 1108bab661aSEmmanuel Vadot required: 1118bab661aSEmmanuel Vadot - qcom,4ln-config-sel 1128bab661aSEmmanuel Vadot else: 1138bab661aSEmmanuel Vadot properties: 1148bab661aSEmmanuel Vadot reg: 1158bab661aSEmmanuel Vadot maxItems: 1 1168bab661aSEmmanuel Vadot 117*cb7aa33aSEmmanuel Vadot - if: 118*cb7aa33aSEmmanuel Vadot properties: 119*cb7aa33aSEmmanuel Vadot compatible: 120*cb7aa33aSEmmanuel Vadot contains: 121*cb7aa33aSEmmanuel Vadot enum: 122*cb7aa33aSEmmanuel Vadot - qcom,sm8350-qmp-gen3x1-pcie-phy 123*cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen3x2-pcie-phy 124*cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen4x2-pcie-phy 125*cb7aa33aSEmmanuel Vadot then: 126*cb7aa33aSEmmanuel Vadot properties: 127*cb7aa33aSEmmanuel Vadot clocks: 128*cb7aa33aSEmmanuel Vadot maxItems: 5 129*cb7aa33aSEmmanuel Vadot clock-names: 130*cb7aa33aSEmmanuel Vadot maxItems: 5 131*cb7aa33aSEmmanuel Vadot else: 132*cb7aa33aSEmmanuel Vadot properties: 133*cb7aa33aSEmmanuel Vadot clocks: 134*cb7aa33aSEmmanuel Vadot minItems: 6 135*cb7aa33aSEmmanuel Vadot clock-names: 136*cb7aa33aSEmmanuel Vadot minItems: 6 137*cb7aa33aSEmmanuel Vadot 138*cb7aa33aSEmmanuel Vadot - if: 139*cb7aa33aSEmmanuel Vadot properties: 140*cb7aa33aSEmmanuel Vadot compatible: 141*cb7aa33aSEmmanuel Vadot contains: 142*cb7aa33aSEmmanuel Vadot enum: 143*cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen4x2-pcie-phy 144*cb7aa33aSEmmanuel Vadot then: 145*cb7aa33aSEmmanuel Vadot properties: 146*cb7aa33aSEmmanuel Vadot resets: 147*cb7aa33aSEmmanuel Vadot minItems: 2 148*cb7aa33aSEmmanuel Vadot reset-names: 149*cb7aa33aSEmmanuel Vadot minItems: 2 150*cb7aa33aSEmmanuel Vadot else: 151*cb7aa33aSEmmanuel Vadot properties: 152*cb7aa33aSEmmanuel Vadot resets: 153*cb7aa33aSEmmanuel Vadot maxItems: 1 154*cb7aa33aSEmmanuel Vadot reset-names: 155*cb7aa33aSEmmanuel Vadot maxItems: 1 156*cb7aa33aSEmmanuel Vadot 1578bab661aSEmmanuel Vadotexamples: 1588bab661aSEmmanuel Vadot - | 1598bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 1608bab661aSEmmanuel Vadot 1618bab661aSEmmanuel Vadot pcie2b_phy: phy@1c18000 { 1628bab661aSEmmanuel Vadot compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 1638bab661aSEmmanuel Vadot reg = <0x01c18000 0x2000>; 1648bab661aSEmmanuel Vadot 1658bab661aSEmmanuel Vadot clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 1668bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 1678bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 1688bab661aSEmmanuel Vadot <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 1698bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_PIPE_CLK>, 1708bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 1718bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "rchng", 1728bab661aSEmmanuel Vadot "pipe", "pipediv2"; 1738bab661aSEmmanuel Vadot 1748bab661aSEmmanuel Vadot power-domains = <&gcc PCIE_2B_GDSC>; 1758bab661aSEmmanuel Vadot 1768bab661aSEmmanuel Vadot resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 1778bab661aSEmmanuel Vadot reset-names = "phy"; 1788bab661aSEmmanuel Vadot 1798bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6d>; 1808bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l4d>; 1818bab661aSEmmanuel Vadot 1828bab661aSEmmanuel Vadot #clock-cells = <0>; 1838bab661aSEmmanuel Vadot clock-output-names = "pcie_2b_pipe_clk"; 1848bab661aSEmmanuel Vadot 1858bab661aSEmmanuel Vadot #phy-cells = <0>; 1868bab661aSEmmanuel Vadot }; 1878bab661aSEmmanuel Vadot 1888bab661aSEmmanuel Vadot pcie2a_phy: phy@1c24000 { 1898bab661aSEmmanuel Vadot compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 1908bab661aSEmmanuel Vadot reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 1918bab661aSEmmanuel Vadot 1928bab661aSEmmanuel Vadot clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 1938bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 1948bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 1958bab661aSEmmanuel Vadot <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 1968bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_PIPE_CLK>, 1978bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 1988bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "rchng", 1998bab661aSEmmanuel Vadot "pipe", "pipediv2"; 2008bab661aSEmmanuel Vadot 2018bab661aSEmmanuel Vadot power-domains = <&gcc PCIE_2A_GDSC>; 2028bab661aSEmmanuel Vadot 2038bab661aSEmmanuel Vadot resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 2048bab661aSEmmanuel Vadot reset-names = "phy"; 2058bab661aSEmmanuel Vadot 2068bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6d>; 2078bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l4d>; 2088bab661aSEmmanuel Vadot 2098bab661aSEmmanuel Vadot qcom,4ln-config-sel = <&tcsr 0xa044 0>; 2108bab661aSEmmanuel Vadot 2118bab661aSEmmanuel Vadot #clock-cells = <0>; 2128bab661aSEmmanuel Vadot clock-output-names = "pcie_2a_pipe_clk"; 2138bab661aSEmmanuel Vadot 2148bab661aSEmmanuel Vadot #phy-cells = <0>; 2158bab661aSEmmanuel Vadot }; 216