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