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: | 14*b97ee269SEmmanuel Vadot Qualcomm PCIe root complex controller is based on the Synopsys DesignWare 15d5b0e70fSEmmanuel Vadot PCIe IP. 16d5b0e70fSEmmanuel Vadot 17d5b0e70fSEmmanuel Vadotproperties: 18d5b0e70fSEmmanuel Vadot compatible: 19d5b0e70fSEmmanuel Vadot enum: 20d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 21d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064-v2 22d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 23d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8084 24d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 25d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 26d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 27d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 28d5b0e70fSEmmanuel Vadot - qcom,pcie-sc7280 29d5b0e70fSEmmanuel Vadot - qcom,pcie-sc8180x 30d5b0e70fSEmmanuel Vadot - qcom,pcie-sdm845 31d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8150 32d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8250 33d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie0 34d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie1 35d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq6018 36d5b0e70fSEmmanuel Vadot 37d5b0e70fSEmmanuel Vadot reg: 38d5b0e70fSEmmanuel Vadot minItems: 4 39d5b0e70fSEmmanuel Vadot maxItems: 5 40d5b0e70fSEmmanuel Vadot 41d5b0e70fSEmmanuel Vadot reg-names: 42d5b0e70fSEmmanuel Vadot minItems: 4 43d5b0e70fSEmmanuel Vadot maxItems: 5 44d5b0e70fSEmmanuel Vadot 45d5b0e70fSEmmanuel Vadot interrupts: 46*b97ee269SEmmanuel Vadot minItems: 1 47*b97ee269SEmmanuel Vadot maxItems: 8 48d5b0e70fSEmmanuel Vadot 49d5b0e70fSEmmanuel Vadot interrupt-names: 50*b97ee269SEmmanuel Vadot minItems: 1 51*b97ee269SEmmanuel Vadot maxItems: 8 52d5b0e70fSEmmanuel Vadot 53d5b0e70fSEmmanuel Vadot # Common definitions for clocks, clock-names and reset. 54d5b0e70fSEmmanuel Vadot # Platform constraints are described later. 55d5b0e70fSEmmanuel Vadot clocks: 56d5b0e70fSEmmanuel Vadot minItems: 3 57d5b0e70fSEmmanuel Vadot maxItems: 12 58d5b0e70fSEmmanuel Vadot 59d5b0e70fSEmmanuel Vadot clock-names: 60d5b0e70fSEmmanuel Vadot minItems: 3 61d5b0e70fSEmmanuel Vadot maxItems: 12 62d5b0e70fSEmmanuel Vadot 63d5b0e70fSEmmanuel Vadot resets: 64d5b0e70fSEmmanuel Vadot minItems: 1 65d5b0e70fSEmmanuel Vadot maxItems: 12 66d5b0e70fSEmmanuel Vadot 67d5b0e70fSEmmanuel Vadot resets-names: 68d5b0e70fSEmmanuel Vadot minItems: 1 69d5b0e70fSEmmanuel Vadot maxItems: 12 70d5b0e70fSEmmanuel Vadot 71d5b0e70fSEmmanuel Vadot vdda-supply: 72d5b0e70fSEmmanuel Vadot description: A phandle to the core analog power supply 73d5b0e70fSEmmanuel Vadot 74d5b0e70fSEmmanuel Vadot vdda_phy-supply: 75d5b0e70fSEmmanuel Vadot description: A phandle to the core analog power supply for PHY 76d5b0e70fSEmmanuel Vadot 77d5b0e70fSEmmanuel Vadot vdda_refclk-supply: 78d5b0e70fSEmmanuel Vadot description: A phandle to the core analog power supply for IC which generates reference clock 79d5b0e70fSEmmanuel Vadot 80d5b0e70fSEmmanuel Vadot vddpe-3v3-supply: 81d5b0e70fSEmmanuel Vadot description: A phandle to the PCIe endpoint power supply 82d5b0e70fSEmmanuel Vadot 83d5b0e70fSEmmanuel Vadot phys: 84d5b0e70fSEmmanuel Vadot maxItems: 1 85d5b0e70fSEmmanuel Vadot 86d5b0e70fSEmmanuel Vadot phy-names: 87d5b0e70fSEmmanuel Vadot items: 88d5b0e70fSEmmanuel Vadot - const: pciephy 89d5b0e70fSEmmanuel Vadot 90d5b0e70fSEmmanuel Vadot power-domains: 91d5b0e70fSEmmanuel Vadot maxItems: 1 92d5b0e70fSEmmanuel Vadot 93d5b0e70fSEmmanuel Vadot perst-gpios: 94d5b0e70fSEmmanuel Vadot description: GPIO controlled connection to PERST# signal 95d5b0e70fSEmmanuel Vadot maxItems: 1 96d5b0e70fSEmmanuel Vadot 97d5b0e70fSEmmanuel Vadot wake-gpios: 98d5b0e70fSEmmanuel Vadot description: GPIO controlled connection to WAKE# signal 99d5b0e70fSEmmanuel Vadot maxItems: 1 100d5b0e70fSEmmanuel Vadot 101d5b0e70fSEmmanuel Vadotrequired: 102d5b0e70fSEmmanuel Vadot - compatible 103d5b0e70fSEmmanuel Vadot - reg 104d5b0e70fSEmmanuel Vadot - reg-names 105d5b0e70fSEmmanuel Vadot - interrupts 106d5b0e70fSEmmanuel Vadot - interrupt-names 107d5b0e70fSEmmanuel Vadot - "#interrupt-cells" 108d5b0e70fSEmmanuel Vadot - interrupt-map-mask 109d5b0e70fSEmmanuel Vadot - interrupt-map 110d5b0e70fSEmmanuel Vadot - clocks 111d5b0e70fSEmmanuel Vadot - clock-names 112d5b0e70fSEmmanuel Vadot 113d5b0e70fSEmmanuel VadotallOf: 114d5b0e70fSEmmanuel Vadot - $ref: /schemas/pci/pci-bus.yaml# 115d5b0e70fSEmmanuel Vadot - if: 116d5b0e70fSEmmanuel Vadot properties: 117d5b0e70fSEmmanuel Vadot compatible: 118d5b0e70fSEmmanuel Vadot contains: 119d5b0e70fSEmmanuel Vadot enum: 120d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 121d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 122d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 123d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064v2 124d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 125d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 126d5b0e70fSEmmanuel Vadot then: 127d5b0e70fSEmmanuel Vadot properties: 128d5b0e70fSEmmanuel Vadot reg: 129d5b0e70fSEmmanuel Vadot minItems: 4 130d5b0e70fSEmmanuel Vadot maxItems: 4 131d5b0e70fSEmmanuel Vadot reg-names: 132d5b0e70fSEmmanuel Vadot items: 133d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 134d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 135d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 136d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 137d5b0e70fSEmmanuel Vadot 138d5b0e70fSEmmanuel Vadot - if: 139d5b0e70fSEmmanuel Vadot properties: 140d5b0e70fSEmmanuel Vadot compatible: 141d5b0e70fSEmmanuel Vadot contains: 142d5b0e70fSEmmanuel Vadot enum: 143d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq6018 144d5b0e70fSEmmanuel Vadot then: 145d5b0e70fSEmmanuel Vadot properties: 146d5b0e70fSEmmanuel Vadot reg: 147d5b0e70fSEmmanuel Vadot minItems: 5 148d5b0e70fSEmmanuel Vadot maxItems: 5 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: atu # ATU address space 154d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 155d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 156d5b0e70fSEmmanuel Vadot 157d5b0e70fSEmmanuel Vadot - if: 158d5b0e70fSEmmanuel Vadot properties: 159d5b0e70fSEmmanuel Vadot compatible: 160d5b0e70fSEmmanuel Vadot contains: 161d5b0e70fSEmmanuel Vadot enum: 162d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8084 163d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 164d5b0e70fSEmmanuel Vadot - qcom,pcie-sdm845 165d5b0e70fSEmmanuel Vadot then: 166d5b0e70fSEmmanuel Vadot properties: 167d5b0e70fSEmmanuel Vadot reg: 168d5b0e70fSEmmanuel Vadot minItems: 4 169d5b0e70fSEmmanuel Vadot maxItems: 4 170d5b0e70fSEmmanuel Vadot reg-names: 171d5b0e70fSEmmanuel Vadot items: 172d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 173d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 174d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 175d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 176d5b0e70fSEmmanuel Vadot 177d5b0e70fSEmmanuel Vadot - if: 178d5b0e70fSEmmanuel Vadot properties: 179d5b0e70fSEmmanuel Vadot compatible: 180d5b0e70fSEmmanuel Vadot contains: 181d5b0e70fSEmmanuel Vadot enum: 182d5b0e70fSEmmanuel Vadot - qcom,pcie-sc7280 183d5b0e70fSEmmanuel Vadot - qcom,pcie-sc8180x 184d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8250 185d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie0 186d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie1 187d5b0e70fSEmmanuel Vadot then: 188d5b0e70fSEmmanuel Vadot properties: 189d5b0e70fSEmmanuel Vadot reg: 190d5b0e70fSEmmanuel Vadot minItems: 5 191d5b0e70fSEmmanuel Vadot maxItems: 5 192d5b0e70fSEmmanuel Vadot reg-names: 193d5b0e70fSEmmanuel Vadot items: 194d5b0e70fSEmmanuel Vadot - const: parf # Qualcomm specific registers 195d5b0e70fSEmmanuel Vadot - const: dbi # DesignWare PCIe registers 196d5b0e70fSEmmanuel Vadot - const: elbi # External local bus interface registers 197d5b0e70fSEmmanuel Vadot - const: atu # ATU address space 198d5b0e70fSEmmanuel Vadot - const: config # PCIe configuration space 199d5b0e70fSEmmanuel Vadot 200d5b0e70fSEmmanuel Vadot - if: 201d5b0e70fSEmmanuel Vadot properties: 202d5b0e70fSEmmanuel Vadot compatible: 203d5b0e70fSEmmanuel Vadot contains: 204d5b0e70fSEmmanuel Vadot enum: 205d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 206d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 207d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064v2 208d5b0e70fSEmmanuel Vadot then: 209d5b0e70fSEmmanuel Vadot properties: 210d5b0e70fSEmmanuel Vadot clocks: 211d5b0e70fSEmmanuel Vadot minItems: 3 212d5b0e70fSEmmanuel Vadot maxItems: 5 213d5b0e70fSEmmanuel Vadot clock-names: 214d5b0e70fSEmmanuel Vadot minItems: 3 215d5b0e70fSEmmanuel Vadot items: 216d5b0e70fSEmmanuel Vadot - const: core # Clocks the pcie hw block 217d5b0e70fSEmmanuel Vadot - const: iface # Configuration AHB clock 218d5b0e70fSEmmanuel Vadot - const: phy # Clocks the pcie PHY block 219d5b0e70fSEmmanuel Vadot - const: aux # Clocks the pcie AUX block, not on apq8064 220d5b0e70fSEmmanuel Vadot - const: ref # Clocks the pcie ref block, not on apq8064 221d5b0e70fSEmmanuel Vadot resets: 222d5b0e70fSEmmanuel Vadot minItems: 5 223d5b0e70fSEmmanuel Vadot maxItems: 6 224d5b0e70fSEmmanuel Vadot reset-names: 225d5b0e70fSEmmanuel Vadot minItems: 5 226d5b0e70fSEmmanuel Vadot items: 227d5b0e70fSEmmanuel Vadot - const: axi # AXI reset 228d5b0e70fSEmmanuel Vadot - const: ahb # AHB reset 229d5b0e70fSEmmanuel Vadot - const: por # POR reset 230d5b0e70fSEmmanuel Vadot - const: pci # PCI reset 231d5b0e70fSEmmanuel Vadot - const: phy # PHY reset 232d5b0e70fSEmmanuel Vadot - const: ext # EXT reset, not on apq8064 233d5b0e70fSEmmanuel Vadot required: 234d5b0e70fSEmmanuel Vadot - vdda-supply 235d5b0e70fSEmmanuel Vadot - vdda_phy-supply 236d5b0e70fSEmmanuel Vadot - vdda_refclk-supply 237d5b0e70fSEmmanuel Vadot 238d5b0e70fSEmmanuel Vadot - if: 239d5b0e70fSEmmanuel Vadot properties: 240d5b0e70fSEmmanuel Vadot compatible: 241d5b0e70fSEmmanuel Vadot contains: 242d5b0e70fSEmmanuel Vadot enum: 243d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8084 244d5b0e70fSEmmanuel Vadot then: 245d5b0e70fSEmmanuel Vadot properties: 246d5b0e70fSEmmanuel Vadot clocks: 247d5b0e70fSEmmanuel Vadot minItems: 4 248d5b0e70fSEmmanuel Vadot maxItems: 4 249d5b0e70fSEmmanuel Vadot clock-names: 250d5b0e70fSEmmanuel Vadot items: 251d5b0e70fSEmmanuel Vadot - const: iface # Configuration AHB clock 252d5b0e70fSEmmanuel Vadot - const: master_bus # Master AXI clock 253d5b0e70fSEmmanuel Vadot - const: slave_bus # Slave AXI clock 254d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 255d5b0e70fSEmmanuel Vadot resets: 256d5b0e70fSEmmanuel Vadot maxItems: 1 257d5b0e70fSEmmanuel Vadot reset-names: 258d5b0e70fSEmmanuel Vadot items: 259d5b0e70fSEmmanuel Vadot - const: core # Core reset 260d5b0e70fSEmmanuel Vadot 261d5b0e70fSEmmanuel Vadot - if: 262d5b0e70fSEmmanuel Vadot properties: 263d5b0e70fSEmmanuel Vadot compatible: 264d5b0e70fSEmmanuel Vadot contains: 265d5b0e70fSEmmanuel Vadot enum: 266d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 267d5b0e70fSEmmanuel Vadot then: 268d5b0e70fSEmmanuel Vadot properties: 269d5b0e70fSEmmanuel Vadot clocks: 270d5b0e70fSEmmanuel Vadot minItems: 3 271d5b0e70fSEmmanuel Vadot maxItems: 3 272d5b0e70fSEmmanuel Vadot clock-names: 273d5b0e70fSEmmanuel Vadot items: 274d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 275d5b0e70fSEmmanuel Vadot - const: master_bus # Master AXI clock 276d5b0e70fSEmmanuel Vadot - const: slave_bus # Slave AXI clock 277d5b0e70fSEmmanuel Vadot resets: 278d5b0e70fSEmmanuel Vadot minItems: 12 279d5b0e70fSEmmanuel Vadot maxItems: 12 280d5b0e70fSEmmanuel Vadot reset-names: 281d5b0e70fSEmmanuel Vadot items: 282d5b0e70fSEmmanuel Vadot - const: axi_m # AXI master reset 283d5b0e70fSEmmanuel Vadot - const: axi_s # AXI slave reset 284d5b0e70fSEmmanuel Vadot - const: pipe # PIPE reset 285d5b0e70fSEmmanuel Vadot - const: axi_m_vmid # VMID reset 286d5b0e70fSEmmanuel Vadot - const: axi_s_xpu # XPU reset 287d5b0e70fSEmmanuel Vadot - const: parf # PARF reset 288d5b0e70fSEmmanuel Vadot - const: phy # PHY reset 289d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI sticky reset 290d5b0e70fSEmmanuel Vadot - const: pipe_sticky # PIPE sticky reset 291d5b0e70fSEmmanuel Vadot - const: pwr # PWR reset 292d5b0e70fSEmmanuel Vadot - const: ahb # AHB reset 293d5b0e70fSEmmanuel Vadot - const: phy_ahb # PHY AHB reset 294d5b0e70fSEmmanuel Vadot 295d5b0e70fSEmmanuel Vadot - if: 296d5b0e70fSEmmanuel Vadot properties: 297d5b0e70fSEmmanuel Vadot compatible: 298d5b0e70fSEmmanuel Vadot contains: 299d5b0e70fSEmmanuel Vadot enum: 300d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 301d5b0e70fSEmmanuel Vadot then: 302d5b0e70fSEmmanuel Vadot oneOf: 303d5b0e70fSEmmanuel Vadot - properties: 304d5b0e70fSEmmanuel Vadot clock-names: 305d5b0e70fSEmmanuel Vadot items: 306d5b0e70fSEmmanuel Vadot - const: pipe # Pipe Clock driving internal logic 307d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 308d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 309d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 310d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 311d5b0e70fSEmmanuel Vadot - properties: 312d5b0e70fSEmmanuel Vadot clock-names: 313d5b0e70fSEmmanuel Vadot items: 314d5b0e70fSEmmanuel Vadot - const: pipe # Pipe Clock driving internal logic 315d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 316d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 317d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 318d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary (AUX) clock 319d5b0e70fSEmmanuel Vadot properties: 320d5b0e70fSEmmanuel Vadot clocks: 321d5b0e70fSEmmanuel Vadot minItems: 5 322d5b0e70fSEmmanuel Vadot maxItems: 5 323d5b0e70fSEmmanuel Vadot resets: false 324d5b0e70fSEmmanuel Vadot reset-names: false 325d5b0e70fSEmmanuel Vadot 326d5b0e70fSEmmanuel Vadot - if: 327d5b0e70fSEmmanuel Vadot properties: 328d5b0e70fSEmmanuel Vadot compatible: 329d5b0e70fSEmmanuel Vadot contains: 330d5b0e70fSEmmanuel Vadot enum: 331d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 332d5b0e70fSEmmanuel Vadot then: 333d5b0e70fSEmmanuel Vadot properties: 334d5b0e70fSEmmanuel Vadot clocks: 335d5b0e70fSEmmanuel Vadot minItems: 5 336d5b0e70fSEmmanuel Vadot maxItems: 5 337d5b0e70fSEmmanuel Vadot clock-names: 338d5b0e70fSEmmanuel Vadot items: 339d5b0e70fSEmmanuel Vadot - const: iface # PCIe to SysNOC BIU clock 340d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master clock 341d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave clock 342d5b0e70fSEmmanuel Vadot - const: ahb # AHB clock 343d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 344d5b0e70fSEmmanuel Vadot resets: 345d5b0e70fSEmmanuel Vadot minItems: 7 346d5b0e70fSEmmanuel Vadot maxItems: 7 347d5b0e70fSEmmanuel Vadot reset-names: 348d5b0e70fSEmmanuel Vadot items: 349d5b0e70fSEmmanuel Vadot - const: pipe # PIPE reset 350d5b0e70fSEmmanuel Vadot - const: sleep # Sleep reset 351d5b0e70fSEmmanuel Vadot - const: sticky # Core Sticky reset 352d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master reset 353d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave reset 354d5b0e70fSEmmanuel Vadot - const: ahb # AHB Reset 355d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI Master Sticky reset 356d5b0e70fSEmmanuel Vadot 357d5b0e70fSEmmanuel Vadot - if: 358d5b0e70fSEmmanuel Vadot properties: 359d5b0e70fSEmmanuel Vadot compatible: 360d5b0e70fSEmmanuel Vadot contains: 361d5b0e70fSEmmanuel Vadot enum: 362d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq6018 363d5b0e70fSEmmanuel Vadot then: 364d5b0e70fSEmmanuel Vadot properties: 365d5b0e70fSEmmanuel Vadot clocks: 366d5b0e70fSEmmanuel Vadot minItems: 5 367d5b0e70fSEmmanuel Vadot maxItems: 5 368d5b0e70fSEmmanuel Vadot clock-names: 369d5b0e70fSEmmanuel Vadot items: 370d5b0e70fSEmmanuel Vadot - const: iface # PCIe to SysNOC BIU clock 371d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master clock 372d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave clock 373d5b0e70fSEmmanuel Vadot - const: axi_bridge # AXI bridge clock 374d5b0e70fSEmmanuel Vadot - const: rchng 375d5b0e70fSEmmanuel Vadot resets: 376d5b0e70fSEmmanuel Vadot minItems: 8 377d5b0e70fSEmmanuel Vadot maxItems: 8 378d5b0e70fSEmmanuel Vadot reset-names: 379d5b0e70fSEmmanuel Vadot items: 380d5b0e70fSEmmanuel Vadot - const: pipe # PIPE reset 381d5b0e70fSEmmanuel Vadot - const: sleep # Sleep reset 382d5b0e70fSEmmanuel Vadot - const: sticky # Core Sticky reset 383d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master reset 384d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave reset 385d5b0e70fSEmmanuel Vadot - const: ahb # AHB Reset 386d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI Master Sticky reset 387d5b0e70fSEmmanuel Vadot - const: axi_s_sticky # AXI Slave Sticky reset 388d5b0e70fSEmmanuel Vadot 389d5b0e70fSEmmanuel Vadot - if: 390d5b0e70fSEmmanuel Vadot properties: 391d5b0e70fSEmmanuel Vadot compatible: 392d5b0e70fSEmmanuel Vadot contains: 393d5b0e70fSEmmanuel Vadot enum: 394d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 395d5b0e70fSEmmanuel Vadot then: 396d5b0e70fSEmmanuel Vadot properties: 397d5b0e70fSEmmanuel Vadot clocks: 398d5b0e70fSEmmanuel Vadot minItems: 4 399d5b0e70fSEmmanuel Vadot maxItems: 4 400d5b0e70fSEmmanuel Vadot clock-names: 401d5b0e70fSEmmanuel Vadot items: 402d5b0e70fSEmmanuel Vadot - const: iface # AHB clock 403d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 404d5b0e70fSEmmanuel Vadot - const: master_bus # AXI Master clock 405d5b0e70fSEmmanuel Vadot - const: slave_bus # AXI Slave clock 406d5b0e70fSEmmanuel Vadot resets: 407d5b0e70fSEmmanuel Vadot minItems: 6 408d5b0e70fSEmmanuel Vadot maxItems: 6 409d5b0e70fSEmmanuel Vadot reset-names: 410d5b0e70fSEmmanuel Vadot items: 411d5b0e70fSEmmanuel Vadot - const: axi_m # AXI Master reset 412d5b0e70fSEmmanuel Vadot - const: axi_s # AXI Slave reset 413d5b0e70fSEmmanuel Vadot - const: axi_m_sticky # AXI Master Sticky reset 414d5b0e70fSEmmanuel Vadot - const: pipe_sticky # PIPE sticky reset 415d5b0e70fSEmmanuel Vadot - const: pwr # PWR reset 416d5b0e70fSEmmanuel Vadot - const: ahb # AHB reset 417d5b0e70fSEmmanuel Vadot 418d5b0e70fSEmmanuel Vadot - if: 419d5b0e70fSEmmanuel Vadot properties: 420d5b0e70fSEmmanuel Vadot compatible: 421d5b0e70fSEmmanuel Vadot contains: 422d5b0e70fSEmmanuel Vadot enum: 423d5b0e70fSEmmanuel Vadot - qcom,pcie-sc7280 424d5b0e70fSEmmanuel Vadot then: 425d5b0e70fSEmmanuel Vadot properties: 426d5b0e70fSEmmanuel Vadot clocks: 427d5b0e70fSEmmanuel Vadot minItems: 11 428d5b0e70fSEmmanuel Vadot maxItems: 11 429d5b0e70fSEmmanuel Vadot clock-names: 430d5b0e70fSEmmanuel Vadot items: 431d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 432d5b0e70fSEmmanuel Vadot - const: pipe_mux # PIPE MUX 433d5b0e70fSEmmanuel Vadot - const: phy_pipe # PIPE output clock 434d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 435d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 436d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 437d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 438d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 439d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 440d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 441d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 442d5b0e70fSEmmanuel Vadot resets: 443d5b0e70fSEmmanuel Vadot maxItems: 1 444d5b0e70fSEmmanuel Vadot reset-names: 445d5b0e70fSEmmanuel Vadot items: 446d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 447d5b0e70fSEmmanuel Vadot 448d5b0e70fSEmmanuel Vadot - if: 449d5b0e70fSEmmanuel Vadot properties: 450d5b0e70fSEmmanuel Vadot compatible: 451d5b0e70fSEmmanuel Vadot contains: 452d5b0e70fSEmmanuel Vadot enum: 453d5b0e70fSEmmanuel Vadot - qcom,pcie-sdm845 454d5b0e70fSEmmanuel Vadot then: 455d5b0e70fSEmmanuel Vadot oneOf: 456d5b0e70fSEmmanuel Vadot # Unfortunately the "optional" ref clock is used in the middle of the list 457d5b0e70fSEmmanuel Vadot - properties: 458d5b0e70fSEmmanuel Vadot clocks: 459d5b0e70fSEmmanuel Vadot minItems: 8 460d5b0e70fSEmmanuel Vadot maxItems: 8 461d5b0e70fSEmmanuel Vadot clock-names: 462d5b0e70fSEmmanuel Vadot items: 463d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 464d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 465d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 466d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 467d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 468d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 469d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 470d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 471d5b0e70fSEmmanuel Vadot - properties: 472d5b0e70fSEmmanuel Vadot clocks: 473d5b0e70fSEmmanuel Vadot minItems: 7 474d5b0e70fSEmmanuel Vadot maxItems: 7 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: tbu # PCIe TBU clock 484d5b0e70fSEmmanuel Vadot properties: 485d5b0e70fSEmmanuel Vadot resets: 486d5b0e70fSEmmanuel Vadot maxItems: 1 487d5b0e70fSEmmanuel Vadot reset-names: 488d5b0e70fSEmmanuel Vadot items: 489d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 490d5b0e70fSEmmanuel Vadot 491d5b0e70fSEmmanuel Vadot - if: 492d5b0e70fSEmmanuel Vadot properties: 493d5b0e70fSEmmanuel Vadot compatible: 494d5b0e70fSEmmanuel Vadot contains: 495d5b0e70fSEmmanuel Vadot enum: 496d5b0e70fSEmmanuel Vadot - qcom,pcie-sc8180x 497d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8150 498d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8250 499d5b0e70fSEmmanuel Vadot then: 500d5b0e70fSEmmanuel Vadot oneOf: 501d5b0e70fSEmmanuel Vadot # Unfortunately the "optional" ref clock is used in the middle of the list 502d5b0e70fSEmmanuel Vadot - properties: 503d5b0e70fSEmmanuel Vadot clocks: 504d5b0e70fSEmmanuel Vadot minItems: 9 505d5b0e70fSEmmanuel Vadot maxItems: 9 506d5b0e70fSEmmanuel Vadot clock-names: 507d5b0e70fSEmmanuel Vadot items: 508d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 509d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 510d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 511d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 512d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 513d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 514d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 515d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 516d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 517d5b0e70fSEmmanuel Vadot - properties: 518d5b0e70fSEmmanuel Vadot clocks: 519d5b0e70fSEmmanuel Vadot minItems: 8 520d5b0e70fSEmmanuel Vadot maxItems: 8 521d5b0e70fSEmmanuel Vadot clock-names: 522d5b0e70fSEmmanuel Vadot items: 523d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 524d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 525d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 526d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 527d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 528d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 529d5b0e70fSEmmanuel Vadot - const: tbu # PCIe TBU clock 530d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 531d5b0e70fSEmmanuel Vadot properties: 532d5b0e70fSEmmanuel Vadot resets: 533d5b0e70fSEmmanuel Vadot maxItems: 1 534d5b0e70fSEmmanuel Vadot reset-names: 535d5b0e70fSEmmanuel Vadot items: 536d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 537d5b0e70fSEmmanuel Vadot 538d5b0e70fSEmmanuel Vadot - if: 539d5b0e70fSEmmanuel Vadot properties: 540d5b0e70fSEmmanuel Vadot compatible: 541d5b0e70fSEmmanuel Vadot contains: 542d5b0e70fSEmmanuel Vadot enum: 543d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie0 544d5b0e70fSEmmanuel Vadot then: 545d5b0e70fSEmmanuel Vadot properties: 546d5b0e70fSEmmanuel Vadot clocks: 547d5b0e70fSEmmanuel Vadot minItems: 12 548d5b0e70fSEmmanuel Vadot maxItems: 12 549d5b0e70fSEmmanuel Vadot clock-names: 550d5b0e70fSEmmanuel Vadot items: 551d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 552d5b0e70fSEmmanuel Vadot - const: pipe_mux # PIPE MUX 553d5b0e70fSEmmanuel Vadot - const: phy_pipe # PIPE output clock 554d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 555d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 556d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 557d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 558d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 559d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 560d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 561d5b0e70fSEmmanuel Vadot - const: aggre0 # Aggre NoC PCIe0 AXI clock 562d5b0e70fSEmmanuel Vadot - const: aggre1 # Aggre NoC PCIe1 AXI clock 563d5b0e70fSEmmanuel Vadot resets: 564d5b0e70fSEmmanuel Vadot maxItems: 1 565d5b0e70fSEmmanuel Vadot reset-names: 566d5b0e70fSEmmanuel Vadot items: 567d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 568d5b0e70fSEmmanuel Vadot 569d5b0e70fSEmmanuel Vadot - if: 570d5b0e70fSEmmanuel Vadot properties: 571d5b0e70fSEmmanuel Vadot compatible: 572d5b0e70fSEmmanuel Vadot contains: 573d5b0e70fSEmmanuel Vadot enum: 574d5b0e70fSEmmanuel Vadot - qcom,pcie-sm8450-pcie1 575d5b0e70fSEmmanuel Vadot then: 576d5b0e70fSEmmanuel Vadot properties: 577d5b0e70fSEmmanuel Vadot clocks: 578d5b0e70fSEmmanuel Vadot minItems: 11 579d5b0e70fSEmmanuel Vadot maxItems: 11 580d5b0e70fSEmmanuel Vadot clock-names: 581d5b0e70fSEmmanuel Vadot items: 582d5b0e70fSEmmanuel Vadot - const: pipe # PIPE clock 583d5b0e70fSEmmanuel Vadot - const: pipe_mux # PIPE MUX 584d5b0e70fSEmmanuel Vadot - const: phy_pipe # PIPE output clock 585d5b0e70fSEmmanuel Vadot - const: ref # REFERENCE clock 586d5b0e70fSEmmanuel Vadot - const: aux # Auxiliary clock 587d5b0e70fSEmmanuel Vadot - const: cfg # Configuration clock 588d5b0e70fSEmmanuel Vadot - const: bus_master # Master AXI clock 589d5b0e70fSEmmanuel Vadot - const: bus_slave # Slave AXI clock 590d5b0e70fSEmmanuel Vadot - const: slave_q2a # Slave Q2A clock 591d5b0e70fSEmmanuel Vadot - const: ddrss_sf_tbu # PCIe SF TBU clock 592d5b0e70fSEmmanuel Vadot - const: aggre1 # Aggre NoC PCIe1 AXI clock 593d5b0e70fSEmmanuel Vadot resets: 594d5b0e70fSEmmanuel Vadot maxItems: 1 595d5b0e70fSEmmanuel Vadot reset-names: 596d5b0e70fSEmmanuel Vadot items: 597d5b0e70fSEmmanuel Vadot - const: pci # PCIe core reset 598d5b0e70fSEmmanuel Vadot 599d5b0e70fSEmmanuel Vadot - if: 600d5b0e70fSEmmanuel Vadot not: 601d5b0e70fSEmmanuel Vadot properties: 602d5b0e70fSEmmanuel Vadot compatible: 603d5b0e70fSEmmanuel Vadot contains: 604d5b0e70fSEmmanuel Vadot enum: 605d5b0e70fSEmmanuel Vadot - qcom,pcie-apq8064 606d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq4019 607d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064 608d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8064v2 609d5b0e70fSEmmanuel Vadot - qcom,pcie-ipq8074 610d5b0e70fSEmmanuel Vadot - qcom,pcie-qcs404 611d5b0e70fSEmmanuel Vadot then: 612d5b0e70fSEmmanuel Vadot required: 613d5b0e70fSEmmanuel Vadot - power-domains 614d5b0e70fSEmmanuel Vadot 615d5b0e70fSEmmanuel Vadot - if: 616d5b0e70fSEmmanuel Vadot not: 617d5b0e70fSEmmanuel Vadot properties: 618*b97ee269SEmmanuel Vadot compatible: 619d5b0e70fSEmmanuel Vadot contains: 620d5b0e70fSEmmanuel Vadot enum: 621d5b0e70fSEmmanuel Vadot - qcom,pcie-msm8996 622d5b0e70fSEmmanuel Vadot then: 623d5b0e70fSEmmanuel Vadot required: 624d5b0e70fSEmmanuel Vadot - resets 625d5b0e70fSEmmanuel Vadot - reset-names 626d5b0e70fSEmmanuel Vadot 627*b97ee269SEmmanuel Vadot # Newer chipsets support either 1 or 8 MSI vectors 628*b97ee269SEmmanuel Vadot # On older chipsets it's always 1 MSI vector 629*b97ee269SEmmanuel Vadot - if: 630*b97ee269SEmmanuel Vadot properties: 631*b97ee269SEmmanuel Vadot compatible: 632*b97ee269SEmmanuel Vadot contains: 633*b97ee269SEmmanuel Vadot enum: 634*b97ee269SEmmanuel Vadot - qcom,pcie-msm8996 635*b97ee269SEmmanuel Vadot - qcom,pcie-sc7280 636*b97ee269SEmmanuel Vadot - qcom,pcie-sc8180x 637*b97ee269SEmmanuel Vadot - qcom,pcie-sdm845 638*b97ee269SEmmanuel Vadot - qcom,pcie-sm8150 639*b97ee269SEmmanuel Vadot - qcom,pcie-sm8250 640*b97ee269SEmmanuel Vadot - qcom,pcie-sm8450-pcie0 641*b97ee269SEmmanuel Vadot - qcom,pcie-sm8450-pcie1 642*b97ee269SEmmanuel Vadot then: 643*b97ee269SEmmanuel Vadot oneOf: 644*b97ee269SEmmanuel Vadot - properties: 645*b97ee269SEmmanuel Vadot interrupts: 646*b97ee269SEmmanuel Vadot maxItems: 1 647*b97ee269SEmmanuel Vadot interrupt-names: 648*b97ee269SEmmanuel Vadot items: 649*b97ee269SEmmanuel Vadot - const: msi 650*b97ee269SEmmanuel Vadot - properties: 651*b97ee269SEmmanuel Vadot interrupts: 652*b97ee269SEmmanuel Vadot minItems: 8 653*b97ee269SEmmanuel Vadot interrupt-names: 654*b97ee269SEmmanuel Vadot items: 655*b97ee269SEmmanuel Vadot - const: msi0 656*b97ee269SEmmanuel Vadot - const: msi1 657*b97ee269SEmmanuel Vadot - const: msi2 658*b97ee269SEmmanuel Vadot - const: msi3 659*b97ee269SEmmanuel Vadot - const: msi4 660*b97ee269SEmmanuel Vadot - const: msi5 661*b97ee269SEmmanuel Vadot - const: msi6 662*b97ee269SEmmanuel Vadot - const: msi7 663*b97ee269SEmmanuel Vadot else: 664*b97ee269SEmmanuel Vadot properties: 665*b97ee269SEmmanuel Vadot interrupts: 666*b97ee269SEmmanuel Vadot maxItems: 1 667*b97ee269SEmmanuel Vadot interrupt-names: 668*b97ee269SEmmanuel Vadot items: 669*b97ee269SEmmanuel Vadot - const: msi 670*b97ee269SEmmanuel Vadot 671d5b0e70fSEmmanuel VadotunevaluatedProperties: false 672d5b0e70fSEmmanuel Vadot 673d5b0e70fSEmmanuel Vadotexamples: 674d5b0e70fSEmmanuel Vadot - | 675d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 676d5b0e70fSEmmanuel Vadot pcie@1b500000 { 677d5b0e70fSEmmanuel Vadot compatible = "qcom,pcie-ipq8064"; 678d5b0e70fSEmmanuel Vadot reg = <0x1b500000 0x1000>, 679d5b0e70fSEmmanuel Vadot <0x1b502000 0x80>, 680d5b0e70fSEmmanuel Vadot <0x1b600000 0x100>, 681d5b0e70fSEmmanuel Vadot <0x0ff00000 0x100000>; 682d5b0e70fSEmmanuel Vadot reg-names = "dbi", "elbi", "parf", "config"; 683d5b0e70fSEmmanuel Vadot device_type = "pci"; 684d5b0e70fSEmmanuel Vadot linux,pci-domain = <0>; 685d5b0e70fSEmmanuel Vadot bus-range = <0x00 0xff>; 686d5b0e70fSEmmanuel Vadot num-lanes = <1>; 687d5b0e70fSEmmanuel Vadot #address-cells = <3>; 688d5b0e70fSEmmanuel Vadot #size-cells = <2>; 689d5b0e70fSEmmanuel Vadot ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000>, 690d5b0e70fSEmmanuel Vadot <0x82000000 0 0 0x08000000 0 0x07e00000>; 691d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 692d5b0e70fSEmmanuel Vadot interrupt-names = "msi"; 693d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 694d5b0e70fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 695d5b0e70fSEmmanuel Vadot interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, 696d5b0e70fSEmmanuel Vadot <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, 697d5b0e70fSEmmanuel Vadot <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, 698d5b0e70fSEmmanuel Vadot <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; 699d5b0e70fSEmmanuel Vadot clocks = <&gcc 41>, 700d5b0e70fSEmmanuel Vadot <&gcc 43>, 701d5b0e70fSEmmanuel Vadot <&gcc 44>, 702d5b0e70fSEmmanuel Vadot <&gcc 42>, 703d5b0e70fSEmmanuel Vadot <&gcc 248>; 704d5b0e70fSEmmanuel Vadot clock-names = "core", "iface", "phy", "aux", "ref"; 705d5b0e70fSEmmanuel Vadot resets = <&gcc 27>, 706d5b0e70fSEmmanuel Vadot <&gcc 26>, 707d5b0e70fSEmmanuel Vadot <&gcc 25>, 708d5b0e70fSEmmanuel Vadot <&gcc 24>, 709d5b0e70fSEmmanuel Vadot <&gcc 23>, 710d5b0e70fSEmmanuel Vadot <&gcc 22>; 711d5b0e70fSEmmanuel Vadot reset-names = "axi", "ahb", "por", "pci", "phy", "ext"; 712d5b0e70fSEmmanuel Vadot pinctrl-0 = <&pcie_pins_default>; 713d5b0e70fSEmmanuel Vadot pinctrl-names = "default"; 714d5b0e70fSEmmanuel Vadot vdda-supply = <&pm8921_s3>; 715d5b0e70fSEmmanuel Vadot vdda_phy-supply = <&pm8921_lvs6>; 716d5b0e70fSEmmanuel Vadot vdda_refclk-supply = <&ext_3p3v>; 717d5b0e70fSEmmanuel Vadot }; 718d5b0e70fSEmmanuel Vadot - | 719d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 720d5b0e70fSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 721d5b0e70fSEmmanuel Vadot pcie@fc520000 { 722d5b0e70fSEmmanuel Vadot compatible = "qcom,pcie-apq8084"; 723d5b0e70fSEmmanuel Vadot reg = <0xfc520000 0x2000>, 724d5b0e70fSEmmanuel Vadot <0xff000000 0x1000>, 725d5b0e70fSEmmanuel Vadot <0xff001000 0x1000>, 726d5b0e70fSEmmanuel Vadot <0xff002000 0x2000>; 727d5b0e70fSEmmanuel Vadot reg-names = "parf", "dbi", "elbi", "config"; 728d5b0e70fSEmmanuel Vadot device_type = "pci"; 729d5b0e70fSEmmanuel Vadot linux,pci-domain = <0>; 730d5b0e70fSEmmanuel Vadot bus-range = <0x00 0xff>; 731d5b0e70fSEmmanuel Vadot num-lanes = <1>; 732d5b0e70fSEmmanuel Vadot #address-cells = <3>; 733d5b0e70fSEmmanuel Vadot #size-cells = <2>; 734d5b0e70fSEmmanuel Vadot ranges = <0x81000000 0 0 0xff200000 0 0x00100000>, 735d5b0e70fSEmmanuel Vadot <0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; 736d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; 737d5b0e70fSEmmanuel Vadot interrupt-names = "msi"; 738d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 739d5b0e70fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 740d5b0e70fSEmmanuel Vadot interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, 741d5b0e70fSEmmanuel Vadot <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, 742d5b0e70fSEmmanuel Vadot <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, 743d5b0e70fSEmmanuel Vadot <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; 744d5b0e70fSEmmanuel Vadot clocks = <&gcc 324>, 745d5b0e70fSEmmanuel Vadot <&gcc 325>, 746d5b0e70fSEmmanuel Vadot <&gcc 327>, 747d5b0e70fSEmmanuel Vadot <&gcc 323>; 748d5b0e70fSEmmanuel Vadot clock-names = "iface", "master_bus", "slave_bus", "aux"; 749d5b0e70fSEmmanuel Vadot resets = <&gcc 81>; 750d5b0e70fSEmmanuel Vadot reset-names = "core"; 751d5b0e70fSEmmanuel Vadot power-domains = <&gcc 1>; 752d5b0e70fSEmmanuel Vadot vdda-supply = <&pma8084_l3>; 753d5b0e70fSEmmanuel Vadot phys = <&pciephy0>; 754d5b0e70fSEmmanuel Vadot phy-names = "pciephy"; 755d5b0e70fSEmmanuel Vadot perst-gpios = <&tlmm 70 GPIO_ACTIVE_LOW>; 756d5b0e70fSEmmanuel Vadot pinctrl-0 = <&pcie0_pins_default>; 757d5b0e70fSEmmanuel Vadot pinctrl-names = "default"; 758d5b0e70fSEmmanuel Vadot }; 759d5b0e70fSEmmanuel Vadot... 760