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,sa8775p-qmp-gen4x2-pcie-phy 20 - qcom,sa8775p-qmp-gen4x4-pcie-phy 21 - qcom,sc8180x-qmp-pcie-phy 22 - qcom,sc8280xp-qmp-gen3x1-pcie-phy 23 - qcom,sc8280xp-qmp-gen3x2-pcie-phy 24 - qcom,sc8280xp-qmp-gen3x4-pcie-phy 25 - qcom,sdm845-qhp-pcie-phy 26 - qcom,sdm845-qmp-pcie-phy 27 - qcom,sdx55-qmp-pcie-phy 28 - qcom,sdx65-qmp-gen4x2-pcie-phy 29 - qcom,sm8150-qmp-gen3x1-pcie-phy 30 - qcom,sm8150-qmp-gen3x2-pcie-phy 31 - qcom,sm8250-qmp-gen3x1-pcie-phy 32 - qcom,sm8250-qmp-gen3x2-pcie-phy 33 - qcom,sm8250-qmp-modem-pcie-phy 34 - qcom,sm8350-qmp-gen3x1-pcie-phy 35 - qcom,sm8450-qmp-gen3x1-pcie-phy 36 - qcom,sm8450-qmp-gen4x2-pcie-phy 37 - qcom,sm8550-qmp-gen3x2-pcie-phy 38 - qcom,sm8550-qmp-gen4x2-pcie-phy 39 - qcom,sm8650-qmp-gen3x2-pcie-phy 40 - qcom,sm8650-qmp-gen4x2-pcie-phy 41 - qcom,x1e80100-qmp-gen3x2-pcie-phy 42 - qcom,x1e80100-qmp-gen4x2-pcie-phy 43 44 reg: 45 minItems: 1 46 maxItems: 2 47 48 clocks: 49 minItems: 5 50 maxItems: 7 51 52 clock-names: 53 minItems: 5 54 items: 55 - const: aux 56 - const: cfg_ahb 57 - const: ref 58 - enum: [rchng, refgen] 59 - const: pipe 60 - const: pipediv2 61 - const: phy_aux 62 63 power-domains: 64 maxItems: 1 65 66 resets: 67 minItems: 1 68 maxItems: 2 69 70 reset-names: 71 minItems: 1 72 items: 73 - const: phy 74 - const: phy_nocsr 75 76 vdda-phy-supply: true 77 78 vdda-pll-supply: true 79 80 vdda-qref-supply: true 81 82 qcom,4ln-config-sel: 83 description: PCIe 4-lane configuration 84 $ref: /schemas/types.yaml#/definitions/phandle-array 85 items: 86 - items: 87 - description: phandle of TCSR syscon 88 - description: offset of PCIe 4-lane configuration register 89 - description: offset of configuration bit for this PHY 90 91 "#clock-cells": true 92 93 clock-output-names: 94 minItems: 1 95 maxItems: 2 96 97 "#phy-cells": 98 const: 0 99 100required: 101 - compatible 102 - reg 103 - clocks 104 - clock-names 105 - resets 106 - reset-names 107 - vdda-phy-supply 108 - vdda-pll-supply 109 - "#clock-cells" 110 - clock-output-names 111 - "#phy-cells" 112 113additionalProperties: false 114 115allOf: 116 - if: 117 properties: 118 compatible: 119 contains: 120 enum: 121 - qcom,sc8280xp-qmp-gen3x4-pcie-phy 122 then: 123 properties: 124 reg: 125 items: 126 - description: port a 127 - description: port b 128 required: 129 - qcom,4ln-config-sel 130 else: 131 properties: 132 reg: 133 maxItems: 1 134 135 - if: 136 properties: 137 compatible: 138 contains: 139 enum: 140 - qcom,sc8180x-qmp-pcie-phy 141 - qcom,sdm845-qhp-pcie-phy 142 - qcom,sdm845-qmp-pcie-phy 143 - qcom,sdx55-qmp-pcie-phy 144 - qcom,sm8150-qmp-gen3x1-pcie-phy 145 - qcom,sm8150-qmp-gen3x2-pcie-phy 146 - qcom,sm8250-qmp-gen3x1-pcie-phy 147 - qcom,sm8250-qmp-gen3x2-pcie-phy 148 - qcom,sm8250-qmp-modem-pcie-phy 149 - qcom,sm8350-qmp-gen3x1-pcie-phy 150 - qcom,sm8450-qmp-gen3x1-pcie-phy 151 - qcom,sm8450-qmp-gen3x2-pcie-phy 152 - qcom,sm8550-qmp-gen3x2-pcie-phy 153 - qcom,sm8550-qmp-gen4x2-pcie-phy 154 - qcom,sm8650-qmp-gen3x2-pcie-phy 155 - qcom,sm8650-qmp-gen4x2-pcie-phy 156 - qcom,x1e80100-qmp-gen3x2-pcie-phy 157 - qcom,x1e80100-qmp-gen4x2-pcie-phy 158 then: 159 properties: 160 clocks: 161 maxItems: 5 162 clock-names: 163 maxItems: 5 164 165 - if: 166 properties: 167 compatible: 168 contains: 169 enum: 170 - qcom,sc8280xp-qmp-gen3x1-pcie-phy 171 - qcom,sc8280xp-qmp-gen3x2-pcie-phy 172 - qcom,sc8280xp-qmp-gen3x4-pcie-phy 173 then: 174 properties: 175 clocks: 176 minItems: 6 177 clock-names: 178 minItems: 6 179 180 - if: 181 properties: 182 compatible: 183 contains: 184 enum: 185 - qcom,sa8775p-qmp-gen4x2-pcie-phy 186 - qcom,sa8775p-qmp-gen4x4-pcie-phy 187 then: 188 properties: 189 clocks: 190 minItems: 7 191 clock-names: 192 minItems: 7 193 194 - if: 195 properties: 196 compatible: 197 contains: 198 enum: 199 - qcom,sm8550-qmp-gen4x2-pcie-phy 200 - qcom,sm8650-qmp-gen4x2-pcie-phy 201 - qcom,x1e80100-qmp-gen4x2-pcie-phy 202 then: 203 properties: 204 resets: 205 minItems: 2 206 reset-names: 207 minItems: 2 208 else: 209 properties: 210 resets: 211 maxItems: 1 212 reset-names: 213 maxItems: 1 214 215 - if: 216 properties: 217 compatible: 218 contains: 219 enum: 220 - qcom,sm8450-qmp-gen4x2-pcie-phy 221 - qcom,sm8550-qmp-gen4x2-pcie-phy 222 - qcom,sm8650-qmp-gen4x2-pcie-phy 223 then: 224 properties: 225 clock-output-names: 226 minItems: 2 227 "#clock-cells": 228 const: 1 229 else: 230 properties: 231 clock-output-names: 232 maxItems: 1 233 "#clock-cells": 234 const: 0 235 236examples: 237 - | 238 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 239 240 pcie2b_phy: phy@1c18000 { 241 compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 242 reg = <0x01c18000 0x2000>; 243 244 clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 245 <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 246 <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 247 <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 248 <&gcc GCC_PCIE_2B_PIPE_CLK>, 249 <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 250 clock-names = "aux", "cfg_ahb", "ref", "rchng", 251 "pipe", "pipediv2"; 252 253 power-domains = <&gcc PCIE_2B_GDSC>; 254 255 resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 256 reset-names = "phy"; 257 258 vdda-phy-supply = <&vreg_l6d>; 259 vdda-pll-supply = <&vreg_l4d>; 260 261 #clock-cells = <0>; 262 clock-output-names = "pcie_2b_pipe_clk"; 263 264 #phy-cells = <0>; 265 }; 266 267 pcie2a_phy: phy@1c24000 { 268 compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 269 reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 270 271 clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 272 <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 273 <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 274 <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 275 <&gcc GCC_PCIE_2A_PIPE_CLK>, 276 <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 277 clock-names = "aux", "cfg_ahb", "ref", "rchng", 278 "pipe", "pipediv2"; 279 280 power-domains = <&gcc PCIE_2A_GDSC>; 281 282 resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 283 reset-names = "phy"; 284 285 vdda-phy-supply = <&vreg_l6d>; 286 vdda-pll-supply = <&vreg_l4d>; 287 288 qcom,4ln-config-sel = <&tcsr 0xa044 0>; 289 290 #clock-cells = <0>; 291 clock-output-names = "pcie_2a_pipe_clk"; 292 293 #phy-cells = <0>; 294 }; 295