1c66ec88fSEmmanuel Vadot* Qualcomm PCI express root complex 2c66ec88fSEmmanuel Vadot 3c66ec88fSEmmanuel Vadot- compatible: 4c66ec88fSEmmanuel Vadot Usage: required 5c66ec88fSEmmanuel Vadot Value type: <stringlist> 6c66ec88fSEmmanuel Vadot Definition: Value should contain 7c66ec88fSEmmanuel Vadot - "qcom,pcie-ipq8064" for ipq8064 8c66ec88fSEmmanuel Vadot - "qcom,pcie-ipq8064-v2" for ipq8064 rev 2 or ipq8065 9c66ec88fSEmmanuel Vadot - "qcom,pcie-apq8064" for apq8064 10c66ec88fSEmmanuel Vadot - "qcom,pcie-apq8084" for apq8084 11c66ec88fSEmmanuel Vadot - "qcom,pcie-msm8996" for msm8996 or apq8096 12c66ec88fSEmmanuel Vadot - "qcom,pcie-ipq4019" for ipq4019 13c66ec88fSEmmanuel Vadot - "qcom,pcie-ipq8074" for ipq8074 14c66ec88fSEmmanuel Vadot - "qcom,pcie-qcs404" for qcs404 158cc087a1SEmmanuel Vadot - "qcom,pcie-sc8180x" for sc8180x 16c66ec88fSEmmanuel Vadot - "qcom,pcie-sdm845" for sdm845 175def4c47SEmmanuel Vadot - "qcom,pcie-sm8250" for sm8250 18*c9ccf3a3SEmmanuel Vadot - "qcom,pcie-sm8450-pcie0" for PCIe0 on sm8450 19*c9ccf3a3SEmmanuel Vadot - "qcom,pcie-sm8450-pcie1" for PCIe1 on sm8450 205956d97fSEmmanuel Vadot - "qcom,pcie-ipq6018" for ipq6018 21c66ec88fSEmmanuel Vadot 22c66ec88fSEmmanuel Vadot- reg: 23c66ec88fSEmmanuel Vadot Usage: required 24c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 25c66ec88fSEmmanuel Vadot Definition: Register ranges as listed in the reg-names property 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel Vadot- reg-names: 28c66ec88fSEmmanuel Vadot Usage: required 29c66ec88fSEmmanuel Vadot Value type: <stringlist> 30c66ec88fSEmmanuel Vadot Definition: Must include the following entries 31c66ec88fSEmmanuel Vadot - "parf" Qualcomm specific registers 32c66ec88fSEmmanuel Vadot - "dbi" DesignWare PCIe registers 33c66ec88fSEmmanuel Vadot - "elbi" External local bus interface registers 34c66ec88fSEmmanuel Vadot - "config" PCIe configuration space 355def4c47SEmmanuel Vadot - "atu" ATU address space (optional) 36c66ec88fSEmmanuel Vadot 37c66ec88fSEmmanuel Vadot- device_type: 38c66ec88fSEmmanuel Vadot Usage: required 39c66ec88fSEmmanuel Vadot Value type: <string> 40354d7675SEmmanuel Vadot Definition: Should be "pci". As specified in snps,dw-pcie.yaml 41c66ec88fSEmmanuel Vadot 42c66ec88fSEmmanuel Vadot- #address-cells: 43c66ec88fSEmmanuel Vadot Usage: required 44c66ec88fSEmmanuel Vadot Value type: <u32> 45354d7675SEmmanuel Vadot Definition: Should be 3. As specified in snps,dw-pcie.yaml 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot- #size-cells: 48c66ec88fSEmmanuel Vadot Usage: required 49c66ec88fSEmmanuel Vadot Value type: <u32> 50354d7675SEmmanuel Vadot Definition: Should be 2. As specified in snps,dw-pcie.yaml 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot- ranges: 53c66ec88fSEmmanuel Vadot Usage: required 54c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 55354d7675SEmmanuel Vadot Definition: As specified in snps,dw-pcie.yaml 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot- interrupts: 58c66ec88fSEmmanuel Vadot Usage: required 59c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 60c66ec88fSEmmanuel Vadot Definition: MSI interrupt 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot- interrupt-names: 63c66ec88fSEmmanuel Vadot Usage: required 64c66ec88fSEmmanuel Vadot Value type: <stringlist> 65c66ec88fSEmmanuel Vadot Definition: Should contain "msi" 66c66ec88fSEmmanuel Vadot 67c66ec88fSEmmanuel Vadot- #interrupt-cells: 68c66ec88fSEmmanuel Vadot Usage: required 69c66ec88fSEmmanuel Vadot Value type: <u32> 70354d7675SEmmanuel Vadot Definition: Should be 1. As specified in snps,dw-pcie.yaml 71c66ec88fSEmmanuel Vadot 72c66ec88fSEmmanuel Vadot- interrupt-map-mask: 73c66ec88fSEmmanuel Vadot Usage: required 74c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 75354d7675SEmmanuel Vadot Definition: As specified in snps,dw-pcie.yaml 76c66ec88fSEmmanuel Vadot 77c66ec88fSEmmanuel Vadot- interrupt-map: 78c66ec88fSEmmanuel Vadot Usage: required 79c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 80354d7675SEmmanuel Vadot Definition: As specified in snps,dw-pcie.yaml 81c66ec88fSEmmanuel Vadot 82c66ec88fSEmmanuel Vadot- clocks: 83c66ec88fSEmmanuel Vadot Usage: required 84c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 85c66ec88fSEmmanuel Vadot Definition: List of phandle and clock specifier pairs as listed 86c66ec88fSEmmanuel Vadot in clock-names property 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot- clock-names: 89c66ec88fSEmmanuel Vadot Usage: required 90c66ec88fSEmmanuel Vadot Value type: <stringlist> 91c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 92c66ec88fSEmmanuel Vadot - "iface" Configuration AHB clock 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot- clock-names: 95c66ec88fSEmmanuel Vadot Usage: required for ipq/apq8064 96c66ec88fSEmmanuel Vadot Value type: <stringlist> 97c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 98c66ec88fSEmmanuel Vadot - "core" Clocks the pcie hw block 99c66ec88fSEmmanuel Vadot - "phy" Clocks the pcie PHY block 100c66ec88fSEmmanuel Vadot - "aux" Clocks the pcie AUX block 101c66ec88fSEmmanuel Vadot - "ref" Clocks the pcie ref block 102c66ec88fSEmmanuel Vadot- clock-names: 103c66ec88fSEmmanuel Vadot Usage: required for apq8084/ipq4019 104c66ec88fSEmmanuel Vadot Value type: <stringlist> 105c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 106c66ec88fSEmmanuel Vadot - "aux" Auxiliary (AUX) clock 107c66ec88fSEmmanuel Vadot - "bus_master" Master AXI clock 108c66ec88fSEmmanuel Vadot - "bus_slave" Slave AXI clock 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadot- clock-names: 111c66ec88fSEmmanuel Vadot Usage: required for msm8996/apq8096 112c66ec88fSEmmanuel Vadot Value type: <stringlist> 113c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 114c66ec88fSEmmanuel Vadot - "pipe" Pipe Clock driving internal logic 115c66ec88fSEmmanuel Vadot - "aux" Auxiliary (AUX) clock 116c66ec88fSEmmanuel Vadot - "cfg" Configuration clock 117c66ec88fSEmmanuel Vadot - "bus_master" Master AXI clock 118c66ec88fSEmmanuel Vadot - "bus_slave" Slave AXI clock 119c66ec88fSEmmanuel Vadot 120c66ec88fSEmmanuel Vadot- clock-names: 121c66ec88fSEmmanuel Vadot Usage: required for ipq8074 122c66ec88fSEmmanuel Vadot Value type: <stringlist> 123c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 124c66ec88fSEmmanuel Vadot - "iface" PCIe to SysNOC BIU clock 125c66ec88fSEmmanuel Vadot - "axi_m" AXI Master clock 126c66ec88fSEmmanuel Vadot - "axi_s" AXI Slave clock 127c66ec88fSEmmanuel Vadot - "ahb" AHB clock 128c66ec88fSEmmanuel Vadot - "aux" Auxiliary clock 129c66ec88fSEmmanuel Vadot 130c66ec88fSEmmanuel Vadot- clock-names: 1315956d97fSEmmanuel Vadot Usage: required for ipq6018 1325956d97fSEmmanuel Vadot Value type: <stringlist> 1335956d97fSEmmanuel Vadot Definition: Should contain the following entries 1345956d97fSEmmanuel Vadot - "iface" PCIe to SysNOC BIU clock 1355956d97fSEmmanuel Vadot - "axi_m" AXI Master clock 1365956d97fSEmmanuel Vadot - "axi_s" AXI Slave clock 1375956d97fSEmmanuel Vadot - "axi_bridge" AXI bridge clock 1385956d97fSEmmanuel Vadot - "rchng" 1395956d97fSEmmanuel Vadot 1405956d97fSEmmanuel Vadot- clock-names: 141c66ec88fSEmmanuel Vadot Usage: required for qcs404 142c66ec88fSEmmanuel Vadot Value type: <stringlist> 143c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 144c66ec88fSEmmanuel Vadot - "iface" AHB clock 145c66ec88fSEmmanuel Vadot - "aux" Auxiliary clock 146c66ec88fSEmmanuel Vadot - "master_bus" AXI Master clock 147c66ec88fSEmmanuel Vadot - "slave_bus" AXI Slave clock 148c66ec88fSEmmanuel Vadot 149c66ec88fSEmmanuel Vadot- clock-names: 150c66ec88fSEmmanuel Vadot Usage: required for sdm845 151c66ec88fSEmmanuel Vadot Value type: <stringlist> 152c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 153c66ec88fSEmmanuel Vadot - "aux" Auxiliary clock 154c66ec88fSEmmanuel Vadot - "cfg" Configuration clock 155c66ec88fSEmmanuel Vadot - "bus_master" Master AXI clock 156c66ec88fSEmmanuel Vadot - "bus_slave" Slave AXI clock 157c66ec88fSEmmanuel Vadot - "slave_q2a" Slave Q2A clock 158c66ec88fSEmmanuel Vadot - "tbu" PCIe TBU clock 159c66ec88fSEmmanuel Vadot - "pipe" PIPE clock 160c66ec88fSEmmanuel Vadot 1615def4c47SEmmanuel Vadot- clock-names: 1628cc087a1SEmmanuel Vadot Usage: required for sc8180x and sm8250 1635def4c47SEmmanuel Vadot Value type: <stringlist> 1645def4c47SEmmanuel Vadot Definition: Should contain the following entries 1655def4c47SEmmanuel Vadot - "aux" Auxiliary clock 1665def4c47SEmmanuel Vadot - "cfg" Configuration clock 1675def4c47SEmmanuel Vadot - "bus_master" Master AXI clock 1685def4c47SEmmanuel Vadot - "bus_slave" Slave AXI clock 1695def4c47SEmmanuel Vadot - "slave_q2a" Slave Q2A clock 1705def4c47SEmmanuel Vadot - "tbu" PCIe TBU clock 1715def4c47SEmmanuel Vadot - "ddrss_sf_tbu" PCIe SF TBU clock 1725def4c47SEmmanuel Vadot - "pipe" PIPE clock 1735def4c47SEmmanuel Vadot 174*c9ccf3a3SEmmanuel Vadot- clock-names: 175*c9ccf3a3SEmmanuel Vadot Usage: required for sm8450-pcie0 and sm8450-pcie1 176*c9ccf3a3SEmmanuel Vadot Value type: <stringlist> 177*c9ccf3a3SEmmanuel Vadot Definition: Should contain the following entries 178*c9ccf3a3SEmmanuel Vadot - "aux" Auxiliary clock 179*c9ccf3a3SEmmanuel Vadot - "cfg" Configuration clock 180*c9ccf3a3SEmmanuel Vadot - "bus_master" Master AXI clock 181*c9ccf3a3SEmmanuel Vadot - "bus_slave" Slave AXI clock 182*c9ccf3a3SEmmanuel Vadot - "slave_q2a" Slave Q2A clock 183*c9ccf3a3SEmmanuel Vadot - "tbu" PCIe TBU clock 184*c9ccf3a3SEmmanuel Vadot - "ddrss_sf_tbu" PCIe SF TBU clock 185*c9ccf3a3SEmmanuel Vadot - "pipe" PIPE clock 186*c9ccf3a3SEmmanuel Vadot - "pipe_mux" PIPE MUX 187*c9ccf3a3SEmmanuel Vadot - "phy_pipe" PIPE output clock 188*c9ccf3a3SEmmanuel Vadot - "ref" REFERENCE clock 189*c9ccf3a3SEmmanuel Vadot - "aggre0" Aggre NoC PCIe0 AXI clock, only for sm8450-pcie0 190*c9ccf3a3SEmmanuel Vadot - "aggre1" Aggre NoC PCIe1 AXI clock 191*c9ccf3a3SEmmanuel Vadot 192c66ec88fSEmmanuel Vadot- resets: 193c66ec88fSEmmanuel Vadot Usage: required 194c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 195c66ec88fSEmmanuel Vadot Definition: List of phandle and reset specifier pairs as listed 196c66ec88fSEmmanuel Vadot in reset-names property 197c66ec88fSEmmanuel Vadot 198c66ec88fSEmmanuel Vadot- reset-names: 199c66ec88fSEmmanuel Vadot Usage: required for ipq/apq8064 200c66ec88fSEmmanuel Vadot Value type: <stringlist> 201c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 202c66ec88fSEmmanuel Vadot - "axi" AXI reset 203c66ec88fSEmmanuel Vadot - "ahb" AHB reset 204c66ec88fSEmmanuel Vadot - "por" POR reset 205c66ec88fSEmmanuel Vadot - "pci" PCI reset 206c66ec88fSEmmanuel Vadot - "phy" PHY reset 207c66ec88fSEmmanuel Vadot 208c66ec88fSEmmanuel Vadot- reset-names: 209c66ec88fSEmmanuel Vadot Usage: required for apq8084 210c66ec88fSEmmanuel Vadot Value type: <stringlist> 211c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 212c66ec88fSEmmanuel Vadot - "core" Core reset 213c66ec88fSEmmanuel Vadot 214c66ec88fSEmmanuel Vadot- reset-names: 215c66ec88fSEmmanuel Vadot Usage: required for ipq/apq8064 216c66ec88fSEmmanuel Vadot Value type: <stringlist> 217c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 218c66ec88fSEmmanuel Vadot - "axi_m" AXI master reset 219c66ec88fSEmmanuel Vadot - "axi_s" AXI slave reset 220c66ec88fSEmmanuel Vadot - "pipe" PIPE reset 221c66ec88fSEmmanuel Vadot - "axi_m_vmid" VMID reset 222c66ec88fSEmmanuel Vadot - "axi_s_xpu" XPU reset 223c66ec88fSEmmanuel Vadot - "parf" PARF reset 224c66ec88fSEmmanuel Vadot - "phy" PHY reset 225c66ec88fSEmmanuel Vadot - "axi_m_sticky" AXI sticky reset 226c66ec88fSEmmanuel Vadot - "pipe_sticky" PIPE sticky reset 227c66ec88fSEmmanuel Vadot - "pwr" PWR reset 228c66ec88fSEmmanuel Vadot - "ahb" AHB reset 229c66ec88fSEmmanuel Vadot - "phy_ahb" PHY AHB reset 230c66ec88fSEmmanuel Vadot - "ext" EXT reset 231c66ec88fSEmmanuel Vadot 232c66ec88fSEmmanuel Vadot- reset-names: 233c66ec88fSEmmanuel Vadot Usage: required for ipq8074 234c66ec88fSEmmanuel Vadot Value type: <stringlist> 235c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 236c66ec88fSEmmanuel Vadot - "pipe" PIPE reset 237c66ec88fSEmmanuel Vadot - "sleep" Sleep reset 238c66ec88fSEmmanuel Vadot - "sticky" Core Sticky reset 239c66ec88fSEmmanuel Vadot - "axi_m" AXI Master reset 240c66ec88fSEmmanuel Vadot - "axi_s" AXI Slave reset 241c66ec88fSEmmanuel Vadot - "ahb" AHB Reset 242c66ec88fSEmmanuel Vadot - "axi_m_sticky" AXI Master Sticky reset 243c66ec88fSEmmanuel Vadot 244c66ec88fSEmmanuel Vadot- reset-names: 2455956d97fSEmmanuel Vadot Usage: required for ipq6018 2465956d97fSEmmanuel Vadot Value type: <stringlist> 2475956d97fSEmmanuel Vadot Definition: Should contain the following entries 2485956d97fSEmmanuel Vadot - "pipe" PIPE reset 2495956d97fSEmmanuel Vadot - "sleep" Sleep reset 2505956d97fSEmmanuel Vadot - "sticky" Core Sticky reset 2515956d97fSEmmanuel Vadot - "axi_m" AXI Master reset 2525956d97fSEmmanuel Vadot - "axi_s" AXI Slave reset 2535956d97fSEmmanuel Vadot - "ahb" AHB Reset 2545956d97fSEmmanuel Vadot - "axi_m_sticky" AXI Master Sticky reset 2555956d97fSEmmanuel Vadot - "axi_s_sticky" AXI Slave Sticky reset 2565956d97fSEmmanuel Vadot 2575956d97fSEmmanuel Vadot- reset-names: 258c66ec88fSEmmanuel Vadot Usage: required for qcs404 259c66ec88fSEmmanuel Vadot Value type: <stringlist> 260c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 261c66ec88fSEmmanuel Vadot - "axi_m" AXI Master reset 262c66ec88fSEmmanuel Vadot - "axi_s" AXI Slave reset 263c66ec88fSEmmanuel Vadot - "axi_m_sticky" AXI Master Sticky reset 264c66ec88fSEmmanuel Vadot - "pipe_sticky" PIPE sticky reset 265c66ec88fSEmmanuel Vadot - "pwr" PWR reset 266c66ec88fSEmmanuel Vadot - "ahb" AHB reset 267c66ec88fSEmmanuel Vadot 268c66ec88fSEmmanuel Vadot- reset-names: 269*c9ccf3a3SEmmanuel Vadot Usage: required for sc8180x, sdm845, sm8250 and sm8450 270c66ec88fSEmmanuel Vadot Value type: <stringlist> 271c66ec88fSEmmanuel Vadot Definition: Should contain the following entries 272c66ec88fSEmmanuel Vadot - "pci" PCIe core reset 273c66ec88fSEmmanuel Vadot 274c66ec88fSEmmanuel Vadot- power-domains: 275c66ec88fSEmmanuel Vadot Usage: required for apq8084 and msm8996/apq8096 276c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 277c66ec88fSEmmanuel Vadot Definition: A phandle and power domain specifier pair to the 278c66ec88fSEmmanuel Vadot power domain which is responsible for collapsing 279c66ec88fSEmmanuel Vadot and restoring power to the peripheral 280c66ec88fSEmmanuel Vadot 281c66ec88fSEmmanuel Vadot- vdda-supply: 282c66ec88fSEmmanuel Vadot Usage: required 283c66ec88fSEmmanuel Vadot Value type: <phandle> 284c66ec88fSEmmanuel Vadot Definition: A phandle to the core analog power supply 285c66ec88fSEmmanuel Vadot 286c66ec88fSEmmanuel Vadot- vdda_phy-supply: 287c66ec88fSEmmanuel Vadot Usage: required for ipq/apq8064 288c66ec88fSEmmanuel Vadot Value type: <phandle> 289c66ec88fSEmmanuel Vadot Definition: A phandle to the analog power supply for PHY 290c66ec88fSEmmanuel Vadot 291c66ec88fSEmmanuel Vadot- vdda_refclk-supply: 292c66ec88fSEmmanuel Vadot Usage: required for ipq/apq8064 293c66ec88fSEmmanuel Vadot Value type: <phandle> 294c66ec88fSEmmanuel Vadot Definition: A phandle to the analog power supply for IC which generates 295c66ec88fSEmmanuel Vadot reference clock 296c66ec88fSEmmanuel Vadot- vddpe-3v3-supply: 297c66ec88fSEmmanuel Vadot Usage: optional 298c66ec88fSEmmanuel Vadot Value type: <phandle> 299c66ec88fSEmmanuel Vadot Definition: A phandle to the PCIe endpoint power supply 300c66ec88fSEmmanuel Vadot 301c66ec88fSEmmanuel Vadot- phys: 302c66ec88fSEmmanuel Vadot Usage: required for apq8084 and qcs404 303c66ec88fSEmmanuel Vadot Value type: <phandle> 304c66ec88fSEmmanuel Vadot Definition: List of phandle(s) as listed in phy-names property 305c66ec88fSEmmanuel Vadot 306c66ec88fSEmmanuel Vadot- phy-names: 307c66ec88fSEmmanuel Vadot Usage: required for apq8084 and qcs404 308c66ec88fSEmmanuel Vadot Value type: <stringlist> 309c66ec88fSEmmanuel Vadot Definition: Should contain "pciephy" 310c66ec88fSEmmanuel Vadot 311c66ec88fSEmmanuel Vadot- <name>-gpios: 312c66ec88fSEmmanuel Vadot Usage: optional 313c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 314c66ec88fSEmmanuel Vadot Definition: List of phandle and GPIO specifier pairs. Should contain 315c66ec88fSEmmanuel Vadot - "perst-gpios" PCIe endpoint reset signal line 316c66ec88fSEmmanuel Vadot - "wake-gpios" PCIe endpoint wake signal line 317c66ec88fSEmmanuel Vadot 318c66ec88fSEmmanuel Vadot* Example for ipq/apq8064 319c66ec88fSEmmanuel Vadot pcie@1b500000 { 320c66ec88fSEmmanuel Vadot compatible = "qcom,pcie-apq8064", "qcom,pcie-ipq8064", "snps,dw-pcie"; 321c66ec88fSEmmanuel Vadot reg = <0x1b500000 0x1000 322c66ec88fSEmmanuel Vadot 0x1b502000 0x80 323c66ec88fSEmmanuel Vadot 0x1b600000 0x100 324c66ec88fSEmmanuel Vadot 0x0ff00000 0x100000>; 325c66ec88fSEmmanuel Vadot reg-names = "dbi", "elbi", "parf", "config"; 326c66ec88fSEmmanuel Vadot device_type = "pci"; 327c66ec88fSEmmanuel Vadot linux,pci-domain = <0>; 328c66ec88fSEmmanuel Vadot bus-range = <0x00 0xff>; 329c66ec88fSEmmanuel Vadot num-lanes = <1>; 330c66ec88fSEmmanuel Vadot #address-cells = <3>; 331c66ec88fSEmmanuel Vadot #size-cells = <2>; 332c66ec88fSEmmanuel Vadot ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000 /* I/O */ 333c66ec88fSEmmanuel Vadot 0x82000000 0 0 0x08000000 0 0x07e00000>; /* memory */ 334c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>; 335c66ec88fSEmmanuel Vadot interrupt-names = "msi"; 336c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 337c66ec88fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 338c66ec88fSEmmanuel Vadot interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 339c66ec88fSEmmanuel Vadot <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 340c66ec88fSEmmanuel Vadot <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 341c66ec88fSEmmanuel Vadot <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 342c66ec88fSEmmanuel Vadot clocks = <&gcc PCIE_A_CLK>, 343c66ec88fSEmmanuel Vadot <&gcc PCIE_H_CLK>, 344c66ec88fSEmmanuel Vadot <&gcc PCIE_PHY_CLK>, 345c66ec88fSEmmanuel Vadot <&gcc PCIE_AUX_CLK>, 346c66ec88fSEmmanuel Vadot <&gcc PCIE_ALT_REF_CLK>; 347c66ec88fSEmmanuel Vadot clock-names = "core", "iface", "phy", "aux", "ref"; 348c66ec88fSEmmanuel Vadot resets = <&gcc PCIE_ACLK_RESET>, 349c66ec88fSEmmanuel Vadot <&gcc PCIE_HCLK_RESET>, 350c66ec88fSEmmanuel Vadot <&gcc PCIE_POR_RESET>, 351c66ec88fSEmmanuel Vadot <&gcc PCIE_PCI_RESET>, 352c66ec88fSEmmanuel Vadot <&gcc PCIE_PHY_RESET>, 353c66ec88fSEmmanuel Vadot <&gcc PCIE_EXT_RESET>; 354c66ec88fSEmmanuel Vadot reset-names = "axi", "ahb", "por", "pci", "phy", "ext"; 355c66ec88fSEmmanuel Vadot pinctrl-0 = <&pcie_pins_default>; 356c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 357c66ec88fSEmmanuel Vadot }; 358c66ec88fSEmmanuel Vadot 359c66ec88fSEmmanuel Vadot* Example for apq8084 360c66ec88fSEmmanuel Vadot pcie0@fc520000 { 361c66ec88fSEmmanuel Vadot compatible = "qcom,pcie-apq8084", "snps,dw-pcie"; 362c66ec88fSEmmanuel Vadot reg = <0xfc520000 0x2000>, 363c66ec88fSEmmanuel Vadot <0xff000000 0x1000>, 364c66ec88fSEmmanuel Vadot <0xff001000 0x1000>, 365c66ec88fSEmmanuel Vadot <0xff002000 0x2000>; 366c66ec88fSEmmanuel Vadot reg-names = "parf", "dbi", "elbi", "config"; 367c66ec88fSEmmanuel Vadot device_type = "pci"; 368c66ec88fSEmmanuel Vadot linux,pci-domain = <0>; 369c66ec88fSEmmanuel Vadot bus-range = <0x00 0xff>; 370c66ec88fSEmmanuel Vadot num-lanes = <1>; 371c66ec88fSEmmanuel Vadot #address-cells = <3>; 372c66ec88fSEmmanuel Vadot #size-cells = <2>; 373c66ec88fSEmmanuel Vadot ranges = <0x81000000 0 0 0xff200000 0 0x00100000 /* I/O */ 374c66ec88fSEmmanuel Vadot 0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; /* memory */ 375c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 243 IRQ_TYPE_NONE>; 376c66ec88fSEmmanuel Vadot interrupt-names = "msi"; 377c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 378c66ec88fSEmmanuel Vadot interrupt-map-mask = <0 0 0 0x7>; 379c66ec88fSEmmanuel Vadot interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 380c66ec88fSEmmanuel Vadot <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 381c66ec88fSEmmanuel Vadot <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 382c66ec88fSEmmanuel Vadot <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 383c66ec88fSEmmanuel Vadot clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>, 384c66ec88fSEmmanuel Vadot <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, 385c66ec88fSEmmanuel Vadot <&gcc GCC_PCIE_0_SLV_AXI_CLK>, 386c66ec88fSEmmanuel Vadot <&gcc GCC_PCIE_0_AUX_CLK>; 387c66ec88fSEmmanuel Vadot clock-names = "iface", "master_bus", "slave_bus", "aux"; 388c66ec88fSEmmanuel Vadot resets = <&gcc GCC_PCIE_0_BCR>; 389c66ec88fSEmmanuel Vadot reset-names = "core"; 390c66ec88fSEmmanuel Vadot power-domains = <&gcc PCIE0_GDSC>; 391c66ec88fSEmmanuel Vadot vdda-supply = <&pma8084_l3>; 392c66ec88fSEmmanuel Vadot phys = <&pciephy0>; 393c66ec88fSEmmanuel Vadot phy-names = "pciephy"; 394c66ec88fSEmmanuel Vadot perst-gpio = <&tlmm 70 GPIO_ACTIVE_LOW>; 395c66ec88fSEmmanuel Vadot pinctrl-0 = <&pcie0_pins_default>; 396c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 397c66ec88fSEmmanuel Vadot }; 398