1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm QMP PHY controller (PCIe, SC8280XP) 8 9maintainers: 10 - Vinod Koul <vkoul@kernel.org> 11 12description: 13 The QMP PHY controller supports physical layer functionality for a number of 14 controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 15 16properties: 17 compatible: 18 enum: 19 - qcom,sc8280xp-qmp-gen3x1-pcie-phy 20 - qcom,sc8280xp-qmp-gen3x2-pcie-phy 21 - qcom,sc8280xp-qmp-gen3x4-pcie-phy 22 - qcom,sdx65-qmp-gen4x2-pcie-phy 23 - qcom,sm8350-qmp-gen3x1-pcie-phy 24 - qcom,sm8550-qmp-gen3x2-pcie-phy 25 - qcom,sm8550-qmp-gen4x2-pcie-phy 26 27 reg: 28 minItems: 1 29 maxItems: 2 30 31 clocks: 32 minItems: 5 33 maxItems: 6 34 35 clock-names: 36 minItems: 5 37 items: 38 - const: aux 39 - const: cfg_ahb 40 - const: ref 41 - const: rchng 42 - const: pipe 43 - const: pipediv2 44 45 power-domains: 46 maxItems: 1 47 48 resets: 49 minItems: 1 50 maxItems: 2 51 52 reset-names: 53 minItems: 1 54 items: 55 - const: phy 56 - const: phy_nocsr 57 58 vdda-phy-supply: true 59 60 vdda-pll-supply: true 61 62 vdda-qref-supply: true 63 64 qcom,4ln-config-sel: 65 description: PCIe 4-lane configuration 66 $ref: /schemas/types.yaml#/definitions/phandle-array 67 items: 68 - items: 69 - description: phandle of TCSR syscon 70 - description: offset of PCIe 4-lane configuration register 71 - description: offset of configuration bit for this PHY 72 73 "#clock-cells": 74 const: 0 75 76 clock-output-names: 77 maxItems: 1 78 79 "#phy-cells": 80 const: 0 81 82required: 83 - compatible 84 - reg 85 - clocks 86 - clock-names 87 - power-domains 88 - resets 89 - reset-names 90 - vdda-phy-supply 91 - vdda-pll-supply 92 - "#clock-cells" 93 - clock-output-names 94 - "#phy-cells" 95 96additionalProperties: false 97 98allOf: 99 - if: 100 properties: 101 compatible: 102 contains: 103 enum: 104 - qcom,sc8280xp-qmp-gen3x4-pcie-phy 105 then: 106 properties: 107 reg: 108 items: 109 - description: port a 110 - description: port b 111 required: 112 - qcom,4ln-config-sel 113 else: 114 properties: 115 reg: 116 maxItems: 1 117 118 - if: 119 properties: 120 compatible: 121 contains: 122 enum: 123 - qcom,sm8350-qmp-gen3x1-pcie-phy 124 - qcom,sm8550-qmp-gen3x2-pcie-phy 125 - qcom,sm8550-qmp-gen4x2-pcie-phy 126 then: 127 properties: 128 clocks: 129 maxItems: 5 130 clock-names: 131 maxItems: 5 132 else: 133 properties: 134 clocks: 135 minItems: 6 136 clock-names: 137 minItems: 6 138 139 - if: 140 properties: 141 compatible: 142 contains: 143 enum: 144 - qcom,sm8550-qmp-gen4x2-pcie-phy 145 then: 146 properties: 147 resets: 148 minItems: 2 149 reset-names: 150 minItems: 2 151 else: 152 properties: 153 resets: 154 maxItems: 1 155 reset-names: 156 maxItems: 1 157 158examples: 159 - | 160 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 161 162 pcie2b_phy: phy@1c18000 { 163 compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 164 reg = <0x01c18000 0x2000>; 165 166 clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 167 <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 168 <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 169 <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 170 <&gcc GCC_PCIE_2B_PIPE_CLK>, 171 <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 172 clock-names = "aux", "cfg_ahb", "ref", "rchng", 173 "pipe", "pipediv2"; 174 175 power-domains = <&gcc PCIE_2B_GDSC>; 176 177 resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 178 reset-names = "phy"; 179 180 vdda-phy-supply = <&vreg_l6d>; 181 vdda-pll-supply = <&vreg_l4d>; 182 183 #clock-cells = <0>; 184 clock-output-names = "pcie_2b_pipe_clk"; 185 186 #phy-cells = <0>; 187 }; 188 189 pcie2a_phy: phy@1c24000 { 190 compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 191 reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 192 193 clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 194 <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 195 <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 196 <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 197 <&gcc GCC_PCIE_2A_PIPE_CLK>, 198 <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 199 clock-names = "aux", "cfg_ahb", "ref", "rchng", 200 "pipe", "pipediv2"; 201 202 power-domains = <&gcc PCIE_2A_GDSC>; 203 204 resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 205 reset-names = "phy"; 206 207 vdda-phy-supply = <&vreg_l6d>; 208 vdda-pll-supply = <&vreg_l4d>; 209 210 qcom,4ln-config-sel = <&tcsr 0xa044 0>; 211 212 #clock-cells = <0>; 213 clock-output-names = "pcie_2a_pipe_clk"; 214 215 #phy-cells = <0>; 216 }; 217