1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2d5b0e70fSEmmanuel Vadot%YAML 1.2 3d5b0e70fSEmmanuel Vadot--- 4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/qcom,pcie.yaml# 5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6d5b0e70fSEmmanuel Vadot 7d5b0e70fSEmmanuel Vadottitle: Qualcomm PCI express root complex 8d5b0e70fSEmmanuel Vadot 9d5b0e70fSEmmanuel Vadotmaintainers: 10d5b0e70fSEmmanuel Vadot - Bjorn Andersson <bjorn.andersson@linaro.org> 11d5b0e70fSEmmanuel Vadot - Stanimir Varbanov <svarbanov@mm-sol.com> 12d5b0e70fSEmmanuel Vadot 13d5b0e70fSEmmanuel Vadotdescription: | 14b97ee269SEmmanuel Vadot Qualcomm PCIe root complex controller is based on the Synopsys DesignWare 15d5b0e70fSEmmanuel Vadot PCIe IP. 16d5b0e70fSEmmanuel Vadot 17d5b0e70fSEmmanuel Vadotproperties: 18d5b0e70fSEmmanuel Vadot compatible: 19*cb7aa33aSEmmanuel Vadot oneOf: 20*cb7aa33aSEmmanuel Vadot - enum: 21d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 22d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8084 23d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 24*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq6018 25*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8064 26*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8064-v2 27d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 28*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8074-gen3 29*cb7aa33aSEmmanuel Vadot - qcom,pcie-msm8996 30d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 317ef62cebSEmmanuel Vadot - qcom,pcie-sa8540p 32d5b0e70fSEmmanuel Vadot - qcom,pcie-sc7280 33d5b0e70fSEmmanuel Vadot - qcom,pcie-sc8180x 347ef62cebSEmmanuel Vadot - qcom,pcie-sc8280xp 35d5b0e70fSEmmanuel Vadot - qcom,pcie-sdm845 36d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8150 37d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8250 38*cb7aa33aSEmmanuel Vadot - qcom,pcie-sm8350 39d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie0 40d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie1 41*cb7aa33aSEmmanuel Vadot - items: 42*cb7aa33aSEmmanuel Vadot - const: qcom,pcie-msm8998 43*cb7aa33aSEmmanuel Vadot - const: qcom,pcie-msm8996 44d5b0e70fSEmmanuel Vadot 45d5b0e70fSEmmanuel Vadot reg: 46d5b0e70fSEmmanuel Vadot minItems: 4 47d5b0e70fSEmmanuel Vadot maxItems: 5 48d5b0e70fSEmmanuel Vadot 49d5b0e70fSEmmanuel Vadot reg-names: 50d5b0e70fSEmmanuel Vadot minItems: 4 51d5b0e70fSEmmanuel Vadot maxItems: 5 52d5b0e70fSEmmanuel Vadot 53d5b0e70fSEmmanuel Vadot interrupts: 54b97ee269SEmmanuel Vadot minItems: 1 55b97ee269SEmmanuel Vadot maxItems: 8 56d5b0e70fSEmmanuel Vadot 57d5b0e70fSEmmanuel Vadot interrupt-names: 58b97ee269SEmmanuel Vadot minItems: 1 59b97ee269SEmmanuel Vadot maxItems: 8 60d5b0e70fSEmmanuel Vadot 61d5b0e70fSEmmanuel Vadot # Common definitions for clocks, clock-names and reset. 62d5b0e70fSEmmanuel Vadot # Platform constraints are described later. 63d5b0e70fSEmmanuel Vadot clocks: 64d5b0e70fSEmmanuel Vadot minItems: 3 657ef62cebSEmmanuel Vadot maxItems: 13 66d5b0e70fSEmmanuel Vadot 67d5b0e70fSEmmanuel Vadot clock-names: 68d5b0e70fSEmmanuel Vadot minItems: 3 697ef62cebSEmmanuel Vadot maxItems: 13 70d5b0e70fSEmmanuel Vadot 718bab661aSEmmanuel Vadot dma-coherent: true 728bab661aSEmmanuel Vadot 738bab661aSEmmanuel Vadot interconnects: 748bab661aSEmmanuel Vadot maxItems: 2 758bab661aSEmmanuel Vadot 768bab661aSEmmanuel Vadot interconnect-names: 778bab661aSEmmanuel Vadot items: 788bab661aSEmmanuel Vadot - const: pcie-mem 798bab661aSEmmanuel Vadot - const: cpu-pcie 808bab661aSEmmanuel Vadot 81d5b0e70fSEmmanuel Vadot resets: 82d5b0e70fSEmmanuel Vadot minItems: 1 83d5b0e70fSEmmanuel Vadot maxItems: 12 84d5b0e70fSEmmanuel Vadot 85d5b0e70fSEmmanuel Vadot resets-names: 86d5b0e70fSEmmanuel Vadot minItems: 1 87d5b0e70fSEmmanuel Vadot maxItems: 12 88d5b0e70fSEmmanuel Vadot 89d5b0e70fSEmmanuel Vadot vdda-supply: 90d5b0e70fSEmmanuel Vadot description: A phandle to the core analog power supply 91d5b0e70fSEmmanuel Vadot 92d5b0e70fSEmmanuel Vadot vdda_phy-supply: 93d5b0e70fSEmmanuel Vadot description: A phandle to the core analog power supply for PHY 94d5b0e70fSEmmanuel Vadot 95d5b0e70fSEmmanuel Vadot vdda_refclk-supply: 96d5b0e70fSEmmanuel Vadot description: A phandle to the core analog power supply for IC which generates reference clock 97d5b0e70fSEmmanuel Vadot 98d5b0e70fSEmmanuel Vadot vddpe-3v3-supply: 99d5b0e70fSEmmanuel Vadot description: A phandle to the PCIe endpoint power supply 100d5b0e70fSEmmanuel Vadot 101d5b0e70fSEmmanuel Vadot phys: 102d5b0e70fSEmmanuel Vadot maxItems: 1 103d5b0e70fSEmmanuel Vadot 104d5b0e70fSEmmanuel Vadot phy-names: 105d5b0e70fSEmmanuel Vadot items: 106d5b0e70fSEmmanuel Vadot - const: pciephy 107d5b0e70fSEmmanuel Vadot 108d5b0e70fSEmmanuel Vadot power-domains: 109d5b0e70fSEmmanuel Vadot maxItems: 1 110d5b0e70fSEmmanuel Vadot 111d5b0e70fSEmmanuel Vadot perst-gpios: 112d5b0e70fSEmmanuel Vadot description: GPIO controlled connection to PERST# signal 113d5b0e70fSEmmanuel Vadot maxItems: 1 114d5b0e70fSEmmanuel Vadot 115d5b0e70fSEmmanuel Vadot wake-gpios: 116d5b0e70fSEmmanuel Vadot description: GPIO controlled connection to WAKE# signal 117d5b0e70fSEmmanuel Vadot maxItems: 1 118d5b0e70fSEmmanuel Vadot 119d5b0e70fSEmmanuel Vadotrequired: 120d5b0e70fSEmmanuel Vadot - compatible 121d5b0e70fSEmmanuel Vadot - reg 122d5b0e70fSEmmanuel Vadot - reg-names 123d5b0e70fSEmmanuel Vadot - interrupts 124d5b0e70fSEmmanuel Vadot - interrupt-names 125d5b0e70fSEmmanuel Vadot - "#interrupt-cells" 126d5b0e70fSEmmanuel Vadot - interrupt-map-mask 127d5b0e70fSEmmanuel Vadot - interrupt-map 128d5b0e70fSEmmanuel Vadot - clocks 129d5b0e70fSEmmanuel Vadot - clock-names 130d5b0e70fSEmmanuel Vadot 131d5b0e70fSEmmanuel VadotallOf: 132d5b0e70fSEmmanuel Vadot - $ref: /schemas/pci/pci-bus.yaml# 133d5b0e70fSEmmanuel Vadot - if: 134d5b0e70fSEmmanuel Vadot properties: 135d5b0e70fSEmmanuel Vadot compatible: 136d5b0e70fSEmmanuel Vadot contains: 137d5b0e70fSEmmanuel Vadot enum: 138d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 139d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 140d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 141d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064v2 142d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 143d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 144d5b0e70fSEmmanuel Vadot then: 145d5b0e70fSEmmanuel Vadot properties: 146d5b0e70fSEmmanuel Vadot reg: 147d5b0e70fSEmmanuel Vadot minItems: 4 148d5b0e70fSEmmanuel Vadot maxItems: 4 149d5b0e70fSEmmanuel Vadot reg-names: 150d5b0e70fSEmmanuel Vadot items: 151d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 152d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 153d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 154d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 155d5b0e70fSEmmanuel Vadot 156d5b0e70fSEmmanuel Vadot - if: 157d5b0e70fSEmmanuel Vadot properties: 158d5b0e70fSEmmanuel Vadot compatible: 159d5b0e70fSEmmanuel Vadot contains: 160d5b0e70fSEmmanuel Vadot enum: 161d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq6018 162*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8074-gen3 163d5b0e70fSEmmanuel Vadot then: 164d5b0e70fSEmmanuel Vadot properties: 165d5b0e70fSEmmanuel Vadot reg: 166d5b0e70fSEmmanuel Vadot minItems: 5 167d5b0e70fSEmmanuel Vadot maxItems: 5 168d5b0e70fSEmmanuel Vadot reg-names: 169d5b0e70fSEmmanuel Vadot items: 170d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 171d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 172d5b0e70fSEmmanuel Vadot - const: atu # ATU address space 173d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 174d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 175d5b0e70fSEmmanuel Vadot 176d5b0e70fSEmmanuel Vadot - if: 177d5b0e70fSEmmanuel Vadot properties: 178d5b0e70fSEmmanuel Vadot compatible: 179d5b0e70fSEmmanuel Vadot contains: 180d5b0e70fSEmmanuel Vadot enum: 181d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8084 182d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 183d5b0e70fSEmmanuel Vadot - qcom,pcie-sdm845 184d5b0e70fSEmmanuel Vadot then: 185d5b0e70fSEmmanuel Vadot properties: 186d5b0e70fSEmmanuel Vadot reg: 187d5b0e70fSEmmanuel Vadot minItems: 4 188d5b0e70fSEmmanuel Vadot maxItems: 4 189d5b0e70fSEmmanuel Vadot reg-names: 190d5b0e70fSEmmanuel Vadot items: 191d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 192d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 193d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 194d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 195d5b0e70fSEmmanuel Vadot 196d5b0e70fSEmmanuel Vadot - if: 197d5b0e70fSEmmanuel Vadot properties: 198d5b0e70fSEmmanuel Vadot compatible: 199d5b0e70fSEmmanuel Vadot contains: 200d5b0e70fSEmmanuel Vadot enum: 201d5b0e70fSEmmanuel Vadot - qcom,pcie-sc7280 202d5b0e70fSEmmanuel Vadot - qcom,pcie-sc8180x 2037ef62cebSEmmanuel Vadot - qcom,pcie-sc8280xp 204d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8250 205*cb7aa33aSEmmanuel Vadot - qcom,pcie-sm8350 206d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie0 207d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie1 208d5b0e70fSEmmanuel Vadot then: 209d5b0e70fSEmmanuel Vadot properties: 210d5b0e70fSEmmanuel Vadot reg: 211d5b0e70fSEmmanuel Vadot minItems: 5 212d5b0e70fSEmmanuel Vadot maxItems: 5 213d5b0e70fSEmmanuel Vadot reg-names: 214d5b0e70fSEmmanuel Vadot items: 215d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 216d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 217d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 218d5b0e70fSEmmanuel Vadot - const: atu # ATU address space 219d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 220d5b0e70fSEmmanuel Vadot 221d5b0e70fSEmmanuel Vadot - if: 222d5b0e70fSEmmanuel Vadot properties: 223d5b0e70fSEmmanuel Vadot compatible: 224d5b0e70fSEmmanuel Vadot contains: 225d5b0e70fSEmmanuel Vadot enum: 226d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 227d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 228d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064v2 229d5b0e70fSEmmanuel Vadot then: 230d5b0e70fSEmmanuel Vadot properties: 231d5b0e70fSEmmanuel Vadot clocks: 232d5b0e70fSEmmanuel Vadot minItems: 3 233d5b0e70fSEmmanuel Vadot maxItems: 5 234d5b0e70fSEmmanuel Vadot clock-names: 235d5b0e70fSEmmanuel Vadot minItems: 3 236d5b0e70fSEmmanuel Vadot items: 237d5b0e70fSEmmanuel Vadot - const: core # Clocks the pcie hw block 238d5b0e70fSEmmanuel Vadot - const: iface # Configuration AHB clock 239d5b0e70fSEmmanuel Vadot - const: phy # Clocks the pcie PHY block 240d5b0e70fSEmmanuel Vadot - const: aux # Clocks the pcie AUX block, not on apq8064 241d5b0e70fSEmmanuel Vadot - const: ref # Clocks the pcie ref block, not on apq8064 242d5b0e70fSEmmanuel Vadot resets: 243d5b0e70fSEmmanuel Vadot minItems: 5 244d5b0e70fSEmmanuel Vadot maxItems: 6 245d5b0e70fSEmmanuel Vadot reset-names: 246d5b0e70fSEmmanuel Vadot minItems: 5 247d5b0e70fSEmmanuel Vadot items: 248d5b0e70fSEmmanuel Vadot - const: axi # AXI reset 249d5b0e70fSEmmanuel Vadot - const: ahb # AHB reset 250d5b0e70fSEmmanuel Vadot - const: por # POR reset 251d5b0e70fSEmmanuel Vadot - const: pci # PCI reset 252d5b0e70fSEmmanuel Vadot - const: phy # PHY reset 253d5b0e70fSEmmanuel Vadot - const: ext # EXT reset, not on apq8064 254d5b0e70fSEmmanuel Vadot required: 255d5b0e70fSEmmanuel Vadot - vdda-supply 256d5b0e70fSEmmanuel Vadot - vdda_phy-supply 257d5b0e70fSEmmanuel Vadot - vdda_refclk-supply 258d5b0e70fSEmmanuel Vadot 259d5b0e70fSEmmanuel Vadot - if: 260d5b0e70fSEmmanuel Vadot properties: 261d5b0e70fSEmmanuel Vadot compatible: 262d5b0e70fSEmmanuel Vadot contains: 263d5b0e70fSEmmanuel Vadot enum: 264d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8084 265d5b0e70fSEmmanuel Vadot then: 266d5b0e70fSEmmanuel Vadot properties: 267d5b0e70fSEmmanuel Vadot clocks: 268d5b0e70fSEmmanuel Vadot minItems: 4 269d5b0e70fSEmmanuel Vadot maxItems: 4 270d5b0e70fSEmmanuel Vadot clock-names: 271d5b0e70fSEmmanuel Vadot items: 272d5b0e70fSEmmanuel Vadot - const: iface # Configuration AHB clock 273d5b0e70fSEmmanuel Vadot - const: master_bus # Master AXI clock 274d5b0e70fSEmmanuel Vadot - const: slave_bus # Slave AXI clock 275d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 276d5b0e70fSEmmanuel Vadot resets: 277d5b0e70fSEmmanuel Vadot maxItems: 1 278d5b0e70fSEmmanuel Vadot reset-names: 279d5b0e70fSEmmanuel Vadot items: 280d5b0e70fSEmmanuel Vadot - const: core # Core reset 281d5b0e70fSEmmanuel Vadot 282d5b0e70fSEmmanuel Vadot - if: 283d5b0e70fSEmmanuel Vadot properties: 284d5b0e70fSEmmanuel Vadot compatible: 285d5b0e70fSEmmanuel Vadot contains: 286d5b0e70fSEmmanuel Vadot enum: 287d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 288d5b0e70fSEmmanuel Vadot then: 289d5b0e70fSEmmanuel Vadot properties: 290d5b0e70fSEmmanuel Vadot clocks: 291d5b0e70fSEmmanuel Vadot minItems: 3 292d5b0e70fSEmmanuel Vadot maxItems: 3 293d5b0e70fSEmmanuel Vadot clock-names: 294d5b0e70fSEmmanuel Vadot items: 295d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 296d5b0e70fSEmmanuel Vadot - const: master_bus # Master AXI clock 297d5b0e70fSEmmanuel Vadot - const: slave_bus # Slave AXI clock 298d5b0e70fSEmmanuel Vadot resets: 299d5b0e70fSEmmanuel Vadot minItems: 12 300d5b0e70fSEmmanuel Vadot maxItems: 12 301d5b0e70fSEmmanuel Vadot reset-names: 302d5b0e70fSEmmanuel Vadot items: 303d5b0e70fSEmmanuel Vadot - const: axi_m # AXI master reset 304d5b0e70fSEmmanuel Vadot - const: axi_s # AXI slave reset 305d5b0e70fSEmmanuel Vadot - const: pipe # PIPE reset 306d5b0e70fSEmmanuel Vadot - const: axi_m_vmid # VMID reset 307d5b0e70fSEmmanuel Vadot - const: axi_s_xpu # XPU reset 308d5b0e70fSEmmanuel Vadot - const: parf # PARF reset 309d5b0e70fSEmmanuel Vadot - const: phy # PHY reset 310d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI sticky reset 311d5b0e70fSEmmanuel Vadot - const: pipe_sticky # PIPE sticky reset 312d5b0e70fSEmmanuel Vadot - const: pwr # PWR reset 313d5b0e70fSEmmanuel Vadot - const: ahb # AHB reset 314d5b0e70fSEmmanuel Vadot - const: phy_ahb # PHY AHB reset 315d5b0e70fSEmmanuel Vadot 316d5b0e70fSEmmanuel Vadot - if: 317d5b0e70fSEmmanuel Vadot properties: 318d5b0e70fSEmmanuel Vadot compatible: 319d5b0e70fSEmmanuel Vadot contains: 320d5b0e70fSEmmanuel Vadot enum: 321d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 322d5b0e70fSEmmanuel Vadot then: 323d5b0e70fSEmmanuel Vadot properties: 324d5b0e70fSEmmanuel Vadot clocks: 325d5b0e70fSEmmanuel Vadot minItems: 5 326d5b0e70fSEmmanuel Vadot maxItems: 5 327*cb7aa33aSEmmanuel Vadot clock-names: 328*cb7aa33aSEmmanuel Vadot items: 329*cb7aa33aSEmmanuel Vadot - const: pipe # Pipe Clock driving internal logic 330*cb7aa33aSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 331*cb7aa33aSEmmanuel Vadot - const: cfg # Configuration clock 332*cb7aa33aSEmmanuel Vadot - const: bus_master # Master AXI clock 333*cb7aa33aSEmmanuel Vadot - const: bus_slave # Slave AXI clock 334d5b0e70fSEmmanuel Vadot resets: false 335d5b0e70fSEmmanuel Vadot reset-names: false 336d5b0e70fSEmmanuel Vadot 337d5b0e70fSEmmanuel Vadot - if: 338d5b0e70fSEmmanuel Vadot properties: 339d5b0e70fSEmmanuel Vadot compatible: 340d5b0e70fSEmmanuel Vadot contains: 341d5b0e70fSEmmanuel Vadot enum: 342d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 343d5b0e70fSEmmanuel Vadot then: 344d5b0e70fSEmmanuel Vadot properties: 345d5b0e70fSEmmanuel Vadot clocks: 346d5b0e70fSEmmanuel Vadot minItems: 5 347d5b0e70fSEmmanuel Vadot maxItems: 5 348d5b0e70fSEmmanuel Vadot clock-names: 349d5b0e70fSEmmanuel Vadot items: 350d5b0e70fSEmmanuel Vadot - const: iface # PCIe to SysNOC BIU clock 351d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master clock 352d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave clock 353d5b0e70fSEmmanuel Vadot - const: ahb # AHB clock 354d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 355d5b0e70fSEmmanuel Vadot resets: 356d5b0e70fSEmmanuel Vadot minItems: 7 357d5b0e70fSEmmanuel Vadot maxItems: 7 358d5b0e70fSEmmanuel Vadot reset-names: 359d5b0e70fSEmmanuel Vadot items: 360d5b0e70fSEmmanuel Vadot - const: pipe # PIPE reset 361d5b0e70fSEmmanuel Vadot - const: sleep # Sleep reset 362d5b0e70fSEmmanuel Vadot - const: sticky # Core Sticky reset 363d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master reset 364d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave reset 365d5b0e70fSEmmanuel Vadot - const: ahb # AHB Reset 366d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI Master Sticky reset 367d5b0e70fSEmmanuel Vadot 368d5b0e70fSEmmanuel Vadot - if: 369d5b0e70fSEmmanuel Vadot properties: 370d5b0e70fSEmmanuel Vadot compatible: 371d5b0e70fSEmmanuel Vadot contains: 372d5b0e70fSEmmanuel Vadot enum: 373d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq6018 374*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8074-gen3 375d5b0e70fSEmmanuel Vadot then: 376d5b0e70fSEmmanuel Vadot properties: 377d5b0e70fSEmmanuel Vadot clocks: 378d5b0e70fSEmmanuel Vadot minItems: 5 379d5b0e70fSEmmanuel Vadot maxItems: 5 380d5b0e70fSEmmanuel Vadot clock-names: 381d5b0e70fSEmmanuel Vadot items: 382d5b0e70fSEmmanuel Vadot - const: iface # PCIe to SysNOC BIU clock 383d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master clock 384d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave clock 385d5b0e70fSEmmanuel Vadot - const: axi_bridge # AXI bridge clock 386d5b0e70fSEmmanuel Vadot - const: rchng 387d5b0e70fSEmmanuel Vadot resets: 388d5b0e70fSEmmanuel Vadot minItems: 8 389d5b0e70fSEmmanuel Vadot maxItems: 8 390d5b0e70fSEmmanuel Vadot reset-names: 391d5b0e70fSEmmanuel Vadot items: 392d5b0e70fSEmmanuel Vadot - const: pipe # PIPE reset 393d5b0e70fSEmmanuel Vadot - const: sleep # Sleep reset 394d5b0e70fSEmmanuel Vadot - const: sticky # Core Sticky reset 395d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master reset 396d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave reset 397d5b0e70fSEmmanuel Vadot - const: ahb # AHB Reset 398d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI Master Sticky reset 399d5b0e70fSEmmanuel Vadot - const: axi_s_sticky # AXI Slave Sticky reset 400d5b0e70fSEmmanuel Vadot 401d5b0e70fSEmmanuel Vadot - if: 402d5b0e70fSEmmanuel Vadot properties: 403d5b0e70fSEmmanuel Vadot compatible: 404d5b0e70fSEmmanuel Vadot contains: 405d5b0e70fSEmmanuel Vadot enum: 406d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 407d5b0e70fSEmmanuel Vadot then: 408d5b0e70fSEmmanuel Vadot properties: 409d5b0e70fSEmmanuel Vadot clocks: 410d5b0e70fSEmmanuel Vadot minItems: 4 411d5b0e70fSEmmanuel Vadot maxItems: 4 412d5b0e70fSEmmanuel Vadot clock-names: 413d5b0e70fSEmmanuel Vadot items: 414d5b0e70fSEmmanuel Vadot - const: iface # AHB clock 415d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 416d5b0e70fSEmmanuel Vadot - const: master_bus # AXI Master clock 417d5b0e70fSEmmanuel Vadot - const: slave_bus # AXI Slave clock 418d5b0e70fSEmmanuel Vadot resets: 419d5b0e70fSEmmanuel Vadot minItems: 6 420d5b0e70fSEmmanuel Vadot maxItems: 6 421d5b0e70fSEmmanuel Vadot reset-names: 422d5b0e70fSEmmanuel Vadot items: 423d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master reset 424d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave reset 425d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI Master Sticky reset 426d5b0e70fSEmmanuel Vadot - const: pipe_sticky # PIPE sticky reset 427d5b0e70fSEmmanuel Vadot - const: pwr # PWR reset 428d5b0e70fSEmmanuel Vadot - const: ahb # AHB reset 429d5b0e70fSEmmanuel Vadot 430d5b0e70fSEmmanuel Vadot - if: 431d5b0e70fSEmmanuel Vadot properties: 432d5b0e70fSEmmanuel Vadot compatible: 433d5b0e70fSEmmanuel Vadot contains: 434d5b0e70fSEmmanuel Vadot enum: 435d5b0e70fSEmmanuel Vadot - qcom,pcie-sc7280 436d5b0e70fSEmmanuel Vadot then: 437d5b0e70fSEmmanuel Vadot properties: 438d5b0e70fSEmmanuel Vadot clocks: 4397ef62cebSEmmanuel Vadot minItems: 13 4407ef62cebSEmmanuel Vadot maxItems: 13 441d5b0e70fSEmmanuel Vadot clock-names: 442d5b0e70fSEmmanuel Vadot items: 443d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 444d5b0e70fSEmmanuel Vadot - const: pipe_mux # PIPE MUX 445d5b0e70fSEmmanuel Vadot - const: phy_pipe # PIPE output clock 446d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 447d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 448d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 449d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 450d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 451d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 452d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 453d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 4547ef62cebSEmmanuel Vadot - const: aggre0 # Aggre NoC PCIe CENTER SF AXI clock 4557ef62cebSEmmanuel Vadot - const: aggre1 # Aggre NoC PCIe1 AXI clock 456d5b0e70fSEmmanuel Vadot resets: 457d5b0e70fSEmmanuel Vadot maxItems: 1 458d5b0e70fSEmmanuel Vadot reset-names: 459d5b0e70fSEmmanuel Vadot items: 460d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 461d5b0e70fSEmmanuel Vadot 462d5b0e70fSEmmanuel Vadot - if: 463d5b0e70fSEmmanuel Vadot properties: 464d5b0e70fSEmmanuel Vadot compatible: 465d5b0e70fSEmmanuel Vadot contains: 466d5b0e70fSEmmanuel Vadot enum: 467d5b0e70fSEmmanuel Vadot - qcom,pcie-sdm845 468d5b0e70fSEmmanuel Vadot then: 469d5b0e70fSEmmanuel Vadot oneOf: 470d5b0e70fSEmmanuel Vadot # Unfortunately the "optional" ref clock is used in the middle of the list 471d5b0e70fSEmmanuel Vadot - properties: 472d5b0e70fSEmmanuel Vadot clocks: 473d5b0e70fSEmmanuel Vadot minItems: 8 474d5b0e70fSEmmanuel Vadot maxItems: 8 475d5b0e70fSEmmanuel Vadot clock-names: 476d5b0e70fSEmmanuel Vadot items: 477d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 478d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 479d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 480d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 481d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 482d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 483d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 484d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 485d5b0e70fSEmmanuel Vadot - properties: 486d5b0e70fSEmmanuel Vadot clocks: 487d5b0e70fSEmmanuel Vadot minItems: 7 488d5b0e70fSEmmanuel Vadot maxItems: 7 489d5b0e70fSEmmanuel Vadot clock-names: 490d5b0e70fSEmmanuel Vadot items: 491d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 492d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 493d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 494d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 495d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 496d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 497d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 498d5b0e70fSEmmanuel Vadot properties: 499d5b0e70fSEmmanuel Vadot resets: 500d5b0e70fSEmmanuel Vadot maxItems: 1 501d5b0e70fSEmmanuel Vadot reset-names: 502d5b0e70fSEmmanuel Vadot items: 503d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 504d5b0e70fSEmmanuel Vadot 505d5b0e70fSEmmanuel Vadot - if: 506d5b0e70fSEmmanuel Vadot properties: 507d5b0e70fSEmmanuel Vadot compatible: 508d5b0e70fSEmmanuel Vadot contains: 509d5b0e70fSEmmanuel Vadot enum: 510d5b0e70fSEmmanuel Vadot - qcom,pcie-sc8180x 511d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8150 512d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8250 513d5b0e70fSEmmanuel Vadot then: 514d5b0e70fSEmmanuel Vadot oneOf: 515d5b0e70fSEmmanuel Vadot # Unfortunately the "optional" ref clock is used in the middle of the list 516d5b0e70fSEmmanuel Vadot - properties: 517d5b0e70fSEmmanuel Vadot clocks: 518d5b0e70fSEmmanuel Vadot minItems: 9 519d5b0e70fSEmmanuel Vadot maxItems: 9 520d5b0e70fSEmmanuel Vadot clock-names: 521d5b0e70fSEmmanuel Vadot items: 522d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 523d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 524d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 525d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 526d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 527d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 528d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 529d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 530d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 531d5b0e70fSEmmanuel Vadot - properties: 532d5b0e70fSEmmanuel Vadot clocks: 533d5b0e70fSEmmanuel Vadot minItems: 8 534d5b0e70fSEmmanuel Vadot maxItems: 8 535d5b0e70fSEmmanuel Vadot clock-names: 536d5b0e70fSEmmanuel Vadot items: 537d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 538d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 539d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 540d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 541d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 542d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 543d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 544d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 545d5b0e70fSEmmanuel Vadot properties: 546d5b0e70fSEmmanuel Vadot resets: 547d5b0e70fSEmmanuel Vadot maxItems: 1 548d5b0e70fSEmmanuel Vadot reset-names: 549d5b0e70fSEmmanuel Vadot items: 550d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 551d5b0e70fSEmmanuel Vadot 552d5b0e70fSEmmanuel Vadot - if: 553d5b0e70fSEmmanuel Vadot properties: 554d5b0e70fSEmmanuel Vadot compatible: 555d5b0e70fSEmmanuel Vadot contains: 556d5b0e70fSEmmanuel Vadot enum: 557*cb7aa33aSEmmanuel Vadot - qcom,pcie-sm8350 558*cb7aa33aSEmmanuel Vadot then: 559*cb7aa33aSEmmanuel Vadot properties: 560*cb7aa33aSEmmanuel Vadot clocks: 561*cb7aa33aSEmmanuel Vadot minItems: 8 562*cb7aa33aSEmmanuel Vadot maxItems: 9 563*cb7aa33aSEmmanuel Vadot clock-names: 564*cb7aa33aSEmmanuel Vadot minItems: 8 565*cb7aa33aSEmmanuel Vadot items: 566*cb7aa33aSEmmanuel Vadot - const: aux # Auxiliary clock 567*cb7aa33aSEmmanuel Vadot - const: cfg # Configuration clock 568*cb7aa33aSEmmanuel Vadot - const: bus_master # Master AXI clock 569*cb7aa33aSEmmanuel Vadot - const: bus_slave # Slave AXI clock 570*cb7aa33aSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 571*cb7aa33aSEmmanuel Vadot - const: tbu # PCIe TBU clock 572*cb7aa33aSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 573*cb7aa33aSEmmanuel Vadot - const: aggre1 # Aggre NoC PCIe1 AXI clock 574*cb7aa33aSEmmanuel Vadot - const: aggre0 # Aggre NoC PCIe0 AXI clock 575*cb7aa33aSEmmanuel Vadot resets: 576*cb7aa33aSEmmanuel Vadot maxItems: 1 577*cb7aa33aSEmmanuel Vadot reset-names: 578*cb7aa33aSEmmanuel Vadot items: 579*cb7aa33aSEmmanuel Vadot - const: pci # PCIe core reset 580*cb7aa33aSEmmanuel Vadot 581*cb7aa33aSEmmanuel Vadot - if: 582*cb7aa33aSEmmanuel Vadot properties: 583*cb7aa33aSEmmanuel Vadot compatible: 584*cb7aa33aSEmmanuel Vadot contains: 585*cb7aa33aSEmmanuel Vadot enum: 586d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie0 587d5b0e70fSEmmanuel Vadot then: 588d5b0e70fSEmmanuel Vadot properties: 589d5b0e70fSEmmanuel Vadot clocks: 590d5b0e70fSEmmanuel Vadot minItems: 12 591d5b0e70fSEmmanuel Vadot maxItems: 12 592d5b0e70fSEmmanuel Vadot clock-names: 593d5b0e70fSEmmanuel Vadot items: 594d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 595d5b0e70fSEmmanuel Vadot - const: pipe_mux # PIPE MUX 596d5b0e70fSEmmanuel Vadot - const: phy_pipe # PIPE output clock 597d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 598d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 599d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 600d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 601d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 602d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 603d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 604d5b0e70fSEmmanuel Vadot - const: aggre0 # Aggre NoC PCIe0 AXI clock 605d5b0e70fSEmmanuel Vadot - const: aggre1 # Aggre NoC PCIe1 AXI clock 606d5b0e70fSEmmanuel Vadot resets: 607d5b0e70fSEmmanuel Vadot maxItems: 1 608d5b0e70fSEmmanuel Vadot reset-names: 609d5b0e70fSEmmanuel Vadot items: 610d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 611d5b0e70fSEmmanuel Vadot 612d5b0e70fSEmmanuel Vadot - if: 613d5b0e70fSEmmanuel Vadot properties: 614d5b0e70fSEmmanuel Vadot compatible: 615d5b0e70fSEmmanuel Vadot contains: 616d5b0e70fSEmmanuel Vadot enum: 617d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie1 618d5b0e70fSEmmanuel Vadot then: 619d5b0e70fSEmmanuel Vadot properties: 620d5b0e70fSEmmanuel Vadot clocks: 621d5b0e70fSEmmanuel Vadot minItems: 11 622d5b0e70fSEmmanuel Vadot maxItems: 11 623d5b0e70fSEmmanuel Vadot clock-names: 624d5b0e70fSEmmanuel Vadot items: 625d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 626d5b0e70fSEmmanuel Vadot - const: pipe_mux # PIPE MUX 627d5b0e70fSEmmanuel Vadot - const: phy_pipe # PIPE output clock 628d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 629d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 630d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 631d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 632d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 633d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 634d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 635d5b0e70fSEmmanuel Vadot - const: aggre1 # Aggre NoC PCIe1 AXI clock 636d5b0e70fSEmmanuel Vadot resets: 637d5b0e70fSEmmanuel Vadot maxItems: 1 638d5b0e70fSEmmanuel Vadot reset-names: 639d5b0e70fSEmmanuel Vadot items: 640d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 641d5b0e70fSEmmanuel Vadot 642d5b0e70fSEmmanuel Vadot - if: 6437ef62cebSEmmanuel Vadot properties: 6447ef62cebSEmmanuel Vadot compatible: 6457ef62cebSEmmanuel Vadot contains: 6467ef62cebSEmmanuel Vadot enum: 6477ef62cebSEmmanuel Vadot - qcom,pcie-sa8540p 6487ef62cebSEmmanuel Vadot - qcom,pcie-sc8280xp 6497ef62cebSEmmanuel Vadot then: 6507ef62cebSEmmanuel Vadot properties: 6517ef62cebSEmmanuel Vadot clocks: 6527ef62cebSEmmanuel Vadot minItems: 8 6537ef62cebSEmmanuel Vadot maxItems: 9 6547ef62cebSEmmanuel Vadot clock-names: 6557ef62cebSEmmanuel Vadot minItems: 8 6567ef62cebSEmmanuel Vadot items: 6577ef62cebSEmmanuel Vadot - const: aux # Auxiliary clock 6587ef62cebSEmmanuel Vadot - const: cfg # Configuration clock 6597ef62cebSEmmanuel Vadot - const: bus_master # Master AXI clock 6607ef62cebSEmmanuel Vadot - const: bus_slave # Slave AXI clock 6617ef62cebSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 6627ef62cebSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 6637ef62cebSEmmanuel Vadot - const: noc_aggr_4 # NoC aggregate 4 clock 6647ef62cebSEmmanuel Vadot - const: noc_aggr_south_sf # NoC aggregate South SF clock 6657ef62cebSEmmanuel Vadot - const: cnoc_qx # Configuration NoC QX clock 6667ef62cebSEmmanuel Vadot resets: 6677ef62cebSEmmanuel Vadot maxItems: 1 6687ef62cebSEmmanuel Vadot reset-names: 6697ef62cebSEmmanuel Vadot items: 6707ef62cebSEmmanuel Vadot - const: pci # PCIe core reset 6717ef62cebSEmmanuel Vadot 6727ef62cebSEmmanuel Vadot - if: 6738bab661aSEmmanuel Vadot properties: 6748bab661aSEmmanuel Vadot compatible: 6758bab661aSEmmanuel Vadot contains: 6768bab661aSEmmanuel Vadot enum: 6778bab661aSEmmanuel Vadot - qcom,pcie-sa8540p 6788bab661aSEmmanuel Vadot - qcom,pcie-sc8280xp 6798bab661aSEmmanuel Vadot then: 6808bab661aSEmmanuel Vadot required: 6818bab661aSEmmanuel Vadot - interconnects 6828bab661aSEmmanuel Vadot - interconnect-names 6838bab661aSEmmanuel Vadot 6848bab661aSEmmanuel Vadot - if: 685d5b0e70fSEmmanuel Vadot not: 686d5b0e70fSEmmanuel Vadot properties: 687d5b0e70fSEmmanuel Vadot compatible: 688d5b0e70fSEmmanuel Vadot contains: 689d5b0e70fSEmmanuel Vadot enum: 690d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 691d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 692d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 693d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064v2 694d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 695*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8074-gen3 696d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 697d5b0e70fSEmmanuel Vadot then: 698d5b0e70fSEmmanuel Vadot required: 699d5b0e70fSEmmanuel Vadot - power-domains 700d5b0e70fSEmmanuel Vadot 701d5b0e70fSEmmanuel Vadot - if: 702d5b0e70fSEmmanuel Vadot not: 703d5b0e70fSEmmanuel Vadot properties: 704b97ee269SEmmanuel Vadot compatible: 705d5b0e70fSEmmanuel Vadot contains: 706d5b0e70fSEmmanuel Vadot enum: 707d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 708d5b0e70fSEmmanuel Vadot then: 709d5b0e70fSEmmanuel Vadot required: 710d5b0e70fSEmmanuel Vadot - resets 711d5b0e70fSEmmanuel Vadot - reset-names 712d5b0e70fSEmmanuel Vadot 713b97ee269SEmmanuel Vadot - if: 714b97ee269SEmmanuel Vadot properties: 715b97ee269SEmmanuel Vadot compatible: 716b97ee269SEmmanuel Vadot contains: 717b97ee269SEmmanuel Vadot enum: 718b97ee269SEmmanuel Vadot - qcom,pcie-msm8996 719b97ee269SEmmanuel Vadot - qcom,pcie-sc7280 720b97ee269SEmmanuel Vadot - qcom,pcie-sc8180x 721b97ee269SEmmanuel Vadot - qcom,pcie-sdm845 722b97ee269SEmmanuel Vadot - qcom,pcie-sm8150 723b97ee269SEmmanuel Vadot - qcom,pcie-sm8250 724*cb7aa33aSEmmanuel Vadot - qcom,pcie-sm8350 725b97ee269SEmmanuel Vadot - qcom,pcie-sm8450-pcie0 726b97ee269SEmmanuel Vadot - qcom,pcie-sm8450-pcie1 727b97ee269SEmmanuel Vadot then: 728b97ee269SEmmanuel Vadot oneOf: 729b97ee269SEmmanuel Vadot - properties: 730b97ee269SEmmanuel Vadot interrupts: 731b97ee269SEmmanuel Vadot maxItems: 1 732b97ee269SEmmanuel Vadot interrupt-names: 733b97ee269SEmmanuel Vadot items: 734b97ee269SEmmanuel Vadot - const: msi 735b97ee269SEmmanuel Vadot - properties: 736b97ee269SEmmanuel Vadot interrupts: 737b97ee269SEmmanuel Vadot minItems: 8 738b97ee269SEmmanuel Vadot interrupt-names: 739b97ee269SEmmanuel Vadot items: 740b97ee269SEmmanuel Vadot - const: msi0 741b97ee269SEmmanuel Vadot - const: msi1 742b97ee269SEmmanuel Vadot - const: msi2 743b97ee269SEmmanuel Vadot - const: msi3 744b97ee269SEmmanuel Vadot - const: msi4 745b97ee269SEmmanuel Vadot - const: msi5 746b97ee269SEmmanuel Vadot - const: msi6 747b97ee269SEmmanuel Vadot - const: msi7 7487ef62cebSEmmanuel Vadot 7497ef62cebSEmmanuel Vadot - if: 7507ef62cebSEmmanuel Vadot properties: 7517ef62cebSEmmanuel Vadot compatible: 7527ef62cebSEmmanuel Vadot contains: 7537ef62cebSEmmanuel Vadot enum: 7547ef62cebSEmmanuel Vadot - qcom,pcie-sc8280xp 7557ef62cebSEmmanuel Vadot then: 7567ef62cebSEmmanuel Vadot properties: 7577ef62cebSEmmanuel Vadot interrupts: 7587ef62cebSEmmanuel Vadot minItems: 4 7597ef62cebSEmmanuel Vadot maxItems: 4 7607ef62cebSEmmanuel Vadot interrupt-names: 7617ef62cebSEmmanuel Vadot items: 7627ef62cebSEmmanuel Vadot - const: msi0 7637ef62cebSEmmanuel Vadot - const: msi1 7647ef62cebSEmmanuel Vadot - const: msi2 7657ef62cebSEmmanuel Vadot - const: msi3 7667ef62cebSEmmanuel Vadot 7677ef62cebSEmmanuel Vadot - if: 7687ef62cebSEmmanuel Vadot properties: 7697ef62cebSEmmanuel Vadot compatible: 7707ef62cebSEmmanuel Vadot contains: 7717ef62cebSEmmanuel Vadot enum: 7727ef62cebSEmmanuel Vadot - qcom,pcie-apq8064 7737ef62cebSEmmanuel Vadot - qcom,pcie-apq8084 7747ef62cebSEmmanuel Vadot - qcom,pcie-ipq4019 7757ef62cebSEmmanuel Vadot - qcom,pcie-ipq6018 7767ef62cebSEmmanuel Vadot - qcom,pcie-ipq8064 7777ef62cebSEmmanuel Vadot - qcom,pcie-ipq8064-v2 7787ef62cebSEmmanuel Vadot - qcom,pcie-ipq8074 779*cb7aa33aSEmmanuel Vadot - qcom,pcie-ipq8074-gen3 7807ef62cebSEmmanuel Vadot - qcom,pcie-qcs404 7817ef62cebSEmmanuel Vadot - qcom,pcie-sa8540p 7827ef62cebSEmmanuel Vadot then: 783b97ee269SEmmanuel Vadot properties: 784b97ee269SEmmanuel Vadot interrupts: 785b97ee269SEmmanuel Vadot maxItems: 1 786b97ee269SEmmanuel Vadot interrupt-names: 787b97ee269SEmmanuel Vadot items: 788b97ee269SEmmanuel Vadot - const: msi 789b97ee269SEmmanuel Vadot 790d5b0e70fSEmmanuel VadotunevaluatedProperties: false 791d5b0e70fSEmmanuel Vadot 792d5b0e70fSEmmanuel Vadotexamples: 793d5b0e70fSEmmanuel Vadot - | 794d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 795d5b0e70fSEmmanuel Vadot pcie@1b500000 { 796d5b0e70fSEmmanuel Vadot compatible = "qcom,pcie-ipq8064"; 797d5b0e70fSEmmanuel Vadot reg = <0x1b500000 0x1000>, 798d5b0e70fSEmmanuel Vadot <0x1b502000 0x80>, 799d5b0e70fSEmmanuel Vadot <0x1b600000 0x100>, 800d5b0e70fSEmmanuel Vadot <0x0ff00000 0x100000>; 801d5b0e70fSEmmanuel Vadot reg-names = "dbi", "elbi", "parf", "config"; 802d5b0e70fSEmmanuel Vadot device_type = "pci"; 803d5b0e70fSEmmanuel Vadot linux,pci-domain = <0>; 804d5b0e70fSEmmanuel Vadot bus-range = <0x00 0xff>; 805d5b0e70fSEmmanuel Vadot num-lanes = <1>; 806d5b0e70fSEmmanuel Vadot #address-cells = <3>; 807d5b0e70fSEmmanuel Vadot #size-cells = <2>; 808d5b0e70fSEmmanuel Vadot ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000>, 809d5b0e70fSEmmanuel Vadot <0x82000000 0 0 0x08000000 0 0x07e00000>; 810d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 811d5b0e70fSEmmanuel Vadot interrupt-names = "msi"; 812d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 813d5b0e70fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 814d5b0e70fSEmmanuel Vadot interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, 815d5b0e70fSEmmanuel Vadot <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, 816d5b0e70fSEmmanuel Vadot <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, 817d5b0e70fSEmmanuel Vadot <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; 818d5b0e70fSEmmanuel Vadot clocks = <&gcc 41>, 819d5b0e70fSEmmanuel Vadot <&gcc 43>, 820d5b0e70fSEmmanuel Vadot <&gcc 44>, 821d5b0e70fSEmmanuel Vadot <&gcc 42>, 822d5b0e70fSEmmanuel Vadot <&gcc 248>; 823d5b0e70fSEmmanuel Vadot clock-names = "core", "iface", "phy", "aux", "ref"; 824d5b0e70fSEmmanuel Vadot resets = <&gcc 27>, 825d5b0e70fSEmmanuel Vadot <&gcc 26>, 826d5b0e70fSEmmanuel Vadot <&gcc 25>, 827d5b0e70fSEmmanuel Vadot <&gcc 24>, 828d5b0e70fSEmmanuel Vadot <&gcc 23>, 829d5b0e70fSEmmanuel Vadot <&gcc 22>; 830d5b0e70fSEmmanuel Vadot reset-names = "axi", "ahb", "por", "pci", "phy", "ext"; 831d5b0e70fSEmmanuel Vadot pinctrl-0 = <&pcie_pins_default>; 832d5b0e70fSEmmanuel Vadot pinctrl-names = "default"; 833d5b0e70fSEmmanuel Vadot vdda-supply = <&pm8921_s3>; 834d5b0e70fSEmmanuel Vadot vdda_phy-supply = <&pm8921_lvs6>; 835d5b0e70fSEmmanuel Vadot vdda_refclk-supply = <&ext_3p3v>; 836d5b0e70fSEmmanuel Vadot }; 837d5b0e70fSEmmanuel Vadot - | 838d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 839d5b0e70fSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 840d5b0e70fSEmmanuel Vadot pcie@fc520000 { 841d5b0e70fSEmmanuel Vadot compatible = "qcom,pcie-apq8084"; 842d5b0e70fSEmmanuel Vadot reg = <0xfc520000 0x2000>, 843d5b0e70fSEmmanuel Vadot <0xff000000 0x1000>, 844d5b0e70fSEmmanuel Vadot <0xff001000 0x1000>, 845d5b0e70fSEmmanuel Vadot <0xff002000 0x2000>; 846d5b0e70fSEmmanuel Vadot reg-names = "parf", "dbi", "elbi", "config"; 847d5b0e70fSEmmanuel Vadot device_type = "pci"; 848d5b0e70fSEmmanuel Vadot linux,pci-domain = <0>; 849d5b0e70fSEmmanuel Vadot bus-range = <0x00 0xff>; 850d5b0e70fSEmmanuel Vadot num-lanes = <1>; 851d5b0e70fSEmmanuel Vadot #address-cells = <3>; 852d5b0e70fSEmmanuel Vadot #size-cells = <2>; 853d5b0e70fSEmmanuel Vadot ranges = <0x81000000 0 0 0xff200000 0 0x00100000>, 854d5b0e70fSEmmanuel Vadot <0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; 855d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; 856d5b0e70fSEmmanuel Vadot interrupt-names = "msi"; 857d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 858d5b0e70fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 859d5b0e70fSEmmanuel Vadot interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, 860d5b0e70fSEmmanuel Vadot <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, 861d5b0e70fSEmmanuel Vadot <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, 862d5b0e70fSEmmanuel Vadot <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; 863d5b0e70fSEmmanuel Vadot clocks = <&gcc 324>, 864d5b0e70fSEmmanuel Vadot <&gcc 325>, 865d5b0e70fSEmmanuel Vadot <&gcc 327>, 866d5b0e70fSEmmanuel Vadot <&gcc 323>; 867d5b0e70fSEmmanuel Vadot clock-names = "iface", "master_bus", "slave_bus", "aux"; 868d5b0e70fSEmmanuel Vadot resets = <&gcc 81>; 869d5b0e70fSEmmanuel Vadot reset-names = "core"; 870d5b0e70fSEmmanuel Vadot power-domains = <&gcc 1>; 871d5b0e70fSEmmanuel Vadot vdda-supply = <&pma8084_l3>; 872d5b0e70fSEmmanuel Vadot phys = <&pciephy0>; 873d5b0e70fSEmmanuel Vadot phy-names = "pciephy"; 874d5b0e70fSEmmanuel Vadot perst-gpios = <&tlmm 70 GPIO_ACTIVE_LOW>; 875d5b0e70fSEmmanuel Vadot pinctrl-0 = <&pcie0_pins_default>; 876d5b0e70fSEmmanuel Vadot pinctrl-names = "default"; 877d5b0e70fSEmmanuel Vadot }; 878d5b0e70fSEmmanuel Vadot... 879