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*fac71e4eSEmmanuel Vadot - qcom,sdx65-qmp-gen4x2-pcie-phy 23cb7aa33aSEmmanuel Vadot - qcom,sm8350-qmp-gen3x1-pcie-phy 24cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen3x2-pcie-phy 25cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen4x2-pcie-phy 268bab661aSEmmanuel Vadot 278bab661aSEmmanuel Vadot reg: 288bab661aSEmmanuel Vadot minItems: 1 298bab661aSEmmanuel Vadot maxItems: 2 308bab661aSEmmanuel Vadot 318bab661aSEmmanuel Vadot clocks: 32cb7aa33aSEmmanuel Vadot minItems: 5 338bab661aSEmmanuel Vadot maxItems: 6 348bab661aSEmmanuel Vadot 358bab661aSEmmanuel Vadot clock-names: 36cb7aa33aSEmmanuel Vadot minItems: 5 378bab661aSEmmanuel Vadot items: 388bab661aSEmmanuel Vadot - const: aux 398bab661aSEmmanuel Vadot - const: cfg_ahb 408bab661aSEmmanuel Vadot - const: ref 418bab661aSEmmanuel Vadot - const: rchng 428bab661aSEmmanuel Vadot - const: pipe 438bab661aSEmmanuel Vadot - const: pipediv2 448bab661aSEmmanuel Vadot 458bab661aSEmmanuel Vadot power-domains: 468bab661aSEmmanuel Vadot maxItems: 1 478bab661aSEmmanuel Vadot 488bab661aSEmmanuel Vadot resets: 49cb7aa33aSEmmanuel Vadot minItems: 1 50cb7aa33aSEmmanuel Vadot maxItems: 2 518bab661aSEmmanuel Vadot 528bab661aSEmmanuel Vadot reset-names: 53cb7aa33aSEmmanuel Vadot minItems: 1 548bab661aSEmmanuel Vadot items: 558bab661aSEmmanuel Vadot - const: phy 56cb7aa33aSEmmanuel Vadot - const: phy_nocsr 578bab661aSEmmanuel Vadot 588bab661aSEmmanuel Vadot vdda-phy-supply: true 598bab661aSEmmanuel Vadot 608bab661aSEmmanuel Vadot vdda-pll-supply: true 618bab661aSEmmanuel Vadot 62cb7aa33aSEmmanuel Vadot vdda-qref-supply: true 63cb7aa33aSEmmanuel Vadot 648bab661aSEmmanuel Vadot qcom,4ln-config-sel: 658bab661aSEmmanuel Vadot description: PCIe 4-lane configuration 668bab661aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 678bab661aSEmmanuel Vadot items: 688bab661aSEmmanuel Vadot - items: 698bab661aSEmmanuel Vadot - description: phandle of TCSR syscon 708bab661aSEmmanuel Vadot - description: offset of PCIe 4-lane configuration register 718bab661aSEmmanuel Vadot - description: offset of configuration bit for this PHY 728bab661aSEmmanuel Vadot 738bab661aSEmmanuel Vadot "#clock-cells": 748bab661aSEmmanuel Vadot const: 0 758bab661aSEmmanuel Vadot 768bab661aSEmmanuel Vadot clock-output-names: 778bab661aSEmmanuel Vadot maxItems: 1 788bab661aSEmmanuel Vadot 798bab661aSEmmanuel Vadot "#phy-cells": 808bab661aSEmmanuel Vadot const: 0 818bab661aSEmmanuel Vadot 828bab661aSEmmanuel Vadotrequired: 838bab661aSEmmanuel Vadot - compatible 848bab661aSEmmanuel Vadot - reg 858bab661aSEmmanuel Vadot - clocks 868bab661aSEmmanuel Vadot - clock-names 878bab661aSEmmanuel Vadot - power-domains 888bab661aSEmmanuel Vadot - resets 898bab661aSEmmanuel Vadot - reset-names 908bab661aSEmmanuel Vadot - vdda-phy-supply 918bab661aSEmmanuel Vadot - vdda-pll-supply 928bab661aSEmmanuel Vadot - "#clock-cells" 938bab661aSEmmanuel Vadot - clock-output-names 948bab661aSEmmanuel Vadot - "#phy-cells" 958bab661aSEmmanuel Vadot 968bab661aSEmmanuel VadotadditionalProperties: false 978bab661aSEmmanuel Vadot 988bab661aSEmmanuel VadotallOf: 998bab661aSEmmanuel Vadot - if: 1008bab661aSEmmanuel Vadot properties: 1018bab661aSEmmanuel Vadot compatible: 1028bab661aSEmmanuel Vadot contains: 1038bab661aSEmmanuel Vadot enum: 1048bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x4-pcie-phy 1058bab661aSEmmanuel Vadot then: 1068bab661aSEmmanuel Vadot properties: 1078bab661aSEmmanuel Vadot reg: 1088bab661aSEmmanuel Vadot items: 1098bab661aSEmmanuel Vadot - description: port a 1108bab661aSEmmanuel Vadot - description: port b 1118bab661aSEmmanuel Vadot required: 1128bab661aSEmmanuel Vadot - qcom,4ln-config-sel 1138bab661aSEmmanuel Vadot else: 1148bab661aSEmmanuel Vadot properties: 1158bab661aSEmmanuel Vadot reg: 1168bab661aSEmmanuel Vadot maxItems: 1 1178bab661aSEmmanuel Vadot 118cb7aa33aSEmmanuel Vadot - if: 119cb7aa33aSEmmanuel Vadot properties: 120cb7aa33aSEmmanuel Vadot compatible: 121cb7aa33aSEmmanuel Vadot contains: 122cb7aa33aSEmmanuel Vadot enum: 123cb7aa33aSEmmanuel Vadot - qcom,sm8350-qmp-gen3x1-pcie-phy 124cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen3x2-pcie-phy 125cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen4x2-pcie-phy 126cb7aa33aSEmmanuel Vadot then: 127cb7aa33aSEmmanuel Vadot properties: 128cb7aa33aSEmmanuel Vadot clocks: 129cb7aa33aSEmmanuel Vadot maxItems: 5 130cb7aa33aSEmmanuel Vadot clock-names: 131cb7aa33aSEmmanuel Vadot maxItems: 5 132cb7aa33aSEmmanuel Vadot else: 133cb7aa33aSEmmanuel Vadot properties: 134cb7aa33aSEmmanuel Vadot clocks: 135cb7aa33aSEmmanuel Vadot minItems: 6 136cb7aa33aSEmmanuel Vadot clock-names: 137cb7aa33aSEmmanuel Vadot minItems: 6 138cb7aa33aSEmmanuel Vadot 139cb7aa33aSEmmanuel Vadot - if: 140cb7aa33aSEmmanuel Vadot properties: 141cb7aa33aSEmmanuel Vadot compatible: 142cb7aa33aSEmmanuel Vadot contains: 143cb7aa33aSEmmanuel Vadot enum: 144cb7aa33aSEmmanuel Vadot - qcom,sm8550-qmp-gen4x2-pcie-phy 145cb7aa33aSEmmanuel Vadot then: 146cb7aa33aSEmmanuel Vadot properties: 147cb7aa33aSEmmanuel Vadot resets: 148cb7aa33aSEmmanuel Vadot minItems: 2 149cb7aa33aSEmmanuel Vadot reset-names: 150cb7aa33aSEmmanuel Vadot minItems: 2 151cb7aa33aSEmmanuel Vadot else: 152cb7aa33aSEmmanuel Vadot properties: 153cb7aa33aSEmmanuel Vadot resets: 154cb7aa33aSEmmanuel Vadot maxItems: 1 155cb7aa33aSEmmanuel Vadot reset-names: 156cb7aa33aSEmmanuel Vadot maxItems: 1 157cb7aa33aSEmmanuel Vadot 1588bab661aSEmmanuel Vadotexamples: 1598bab661aSEmmanuel Vadot - | 1608bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 1618bab661aSEmmanuel Vadot 1628bab661aSEmmanuel Vadot pcie2b_phy: phy@1c18000 { 1638bab661aSEmmanuel Vadot compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 1648bab661aSEmmanuel Vadot reg = <0x01c18000 0x2000>; 1658bab661aSEmmanuel Vadot 1668bab661aSEmmanuel Vadot clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 1678bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 1688bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 1698bab661aSEmmanuel Vadot <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 1708bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_PIPE_CLK>, 1718bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 1728bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "rchng", 1738bab661aSEmmanuel Vadot "pipe", "pipediv2"; 1748bab661aSEmmanuel Vadot 1758bab661aSEmmanuel Vadot power-domains = <&gcc PCIE_2B_GDSC>; 1768bab661aSEmmanuel Vadot 1778bab661aSEmmanuel Vadot resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 1788bab661aSEmmanuel Vadot reset-names = "phy"; 1798bab661aSEmmanuel Vadot 1808bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6d>; 1818bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l4d>; 1828bab661aSEmmanuel Vadot 1838bab661aSEmmanuel Vadot #clock-cells = <0>; 1848bab661aSEmmanuel Vadot clock-output-names = "pcie_2b_pipe_clk"; 1858bab661aSEmmanuel Vadot 1868bab661aSEmmanuel Vadot #phy-cells = <0>; 1878bab661aSEmmanuel Vadot }; 1888bab661aSEmmanuel Vadot 1898bab661aSEmmanuel Vadot pcie2a_phy: phy@1c24000 { 1908bab661aSEmmanuel Vadot compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 1918bab661aSEmmanuel Vadot reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 1928bab661aSEmmanuel Vadot 1938bab661aSEmmanuel Vadot clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 1948bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 1958bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 1968bab661aSEmmanuel Vadot <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 1978bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_PIPE_CLK>, 1988bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 1998bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "rchng", 2008bab661aSEmmanuel Vadot "pipe", "pipediv2"; 2018bab661aSEmmanuel Vadot 2028bab661aSEmmanuel Vadot power-domains = <&gcc PCIE_2A_GDSC>; 2038bab661aSEmmanuel Vadot 2048bab661aSEmmanuel Vadot resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 2058bab661aSEmmanuel Vadot reset-names = "phy"; 2068bab661aSEmmanuel Vadot 2078bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6d>; 2088bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l4d>; 2098bab661aSEmmanuel Vadot 2108bab661aSEmmanuel Vadot qcom,4ln-config-sel = <&tcsr 0xa044 0>; 2118bab661aSEmmanuel Vadot 2128bab661aSEmmanuel Vadot #clock-cells = <0>; 2138bab661aSEmmanuel Vadot clock-output-names = "pcie_2a_pipe_clk"; 2148bab661aSEmmanuel Vadot 2158bab661aSEmmanuel Vadot #phy-cells = <0>; 2168bab661aSEmmanuel Vadot }; 217