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