1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq8074.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm IPQ8074 PCI Express Root Complex 8 9maintainers: 10 - Bjorn Andersson <andersson@kernel.org> 11 - Manivannan Sadhasivam <mani@kernel.org> 12 13properties: 14 compatible: 15 enum: 16 - qcom,pcie-ipq8074 17 18 reg: 19 maxItems: 4 20 21 reg-names: 22 items: 23 - const: dbi 24 - const: elbi 25 - const: parf 26 - const: config 27 28 clocks: 29 maxItems: 5 30 31 clock-names: 32 items: 33 - const: iface # PCIe to SysNOC BIU clock 34 - const: axi_m # AXI Master clock 35 - const: axi_s # AXI Slave clock 36 - const: ahb 37 - const: aux 38 39 interrupts: 40 maxItems: 9 41 42 interrupt-names: 43 items: 44 - const: msi0 45 - const: msi1 46 - const: msi2 47 - const: msi3 48 - const: msi4 49 - const: msi5 50 - const: msi6 51 - const: msi7 52 - const: global 53 54 resets: 55 maxItems: 7 56 57 reset-names: 58 items: 59 - const: pipe 60 - const: sleep 61 - const: sticky # Core sticky reset 62 - const: axi_m # AXI master reset 63 - const: axi_s # AXI slave reset 64 - const: ahb 65 - const: axi_m_sticky # AXI master sticky reset 66 67required: 68 - resets 69 - reset-names 70 71allOf: 72 - $ref: qcom,pcie-common.yaml# 73 74unevaluatedProperties: false 75 76examples: 77 - | 78 #include <dt-bindings/clock/qcom,gcc-ipq8074.h> 79 #include <dt-bindings/gpio/gpio.h> 80 #include <dt-bindings/interrupt-controller/arm-gic.h> 81 82 pcie@10000000 { 83 compatible = "qcom,pcie-ipq8074"; 84 reg = <0x10000000 0xf1d>, 85 <0x10000f20 0xa8>, 86 <0x00088000 0x2000>, 87 <0x10100000 0x1000>; 88 reg-names = "dbi", "elbi", "parf", "config"; 89 ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */ 90 <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */ 91 92 device_type = "pci"; 93 linux,pci-domain = <1>; 94 bus-range = <0x00 0xff>; 95 num-lanes = <1>; 96 max-link-speed = <2>; 97 #address-cells = <3>; 98 #size-cells = <2>; 99 100 clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>, 101 <&gcc GCC_PCIE1_AXI_M_CLK>, 102 <&gcc GCC_PCIE1_AXI_S_CLK>, 103 <&gcc GCC_PCIE1_AHB_CLK>, 104 <&gcc GCC_PCIE1_AUX_CLK>; 105 clock-names = "iface", 106 "axi_m", 107 "axi_s", 108 "ahb", 109 "aux"; 110 111 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 112 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 113 <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 114 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 115 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 116 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 117 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 118 <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 119 <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 120 interrupt-names = "msi0", 121 "msi1", 122 "msi2", 123 "msi3", 124 "msi4", 125 "msi5", 126 "msi6", 127 "msi7", 128 "global"; 129 #interrupt-cells = <1>; 130 interrupt-map-mask = <0 0 0 0x7>; 131 interrupt-map = <0 0 0 1 &intc 0 GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 132 <0 0 0 2 &intc 0 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 133 <0 0 0 3 &intc 0 GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 134 <0 0 0 4 &intc 0 GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 135 136 phys = <&pcie_qmp1>; 137 phy-names = "pciephy"; 138 139 resets = <&gcc GCC_PCIE1_PIPE_ARES>, 140 <&gcc GCC_PCIE1_SLEEP_ARES>, 141 <&gcc GCC_PCIE1_CORE_STICKY_ARES>, 142 <&gcc GCC_PCIE1_AXI_MASTER_ARES>, 143 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>, 144 <&gcc GCC_PCIE1_AHB_ARES>, 145 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>; 146 reset-names = "pipe", 147 "sleep", 148 "sticky", 149 "axi_m", 150 "axi_s", 151 "ahb", 152 "axi_m_sticky"; 153 154 perst-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; 155 156 pcie@0 { 157 device_type = "pci"; 158 reg = <0x0 0x0 0x0 0x0 0x0>; 159 bus-range = <0x01 0xff>; 160 161 #address-cells = <3>; 162 #size-cells = <2>; 163 ranges; 164 }; 165 }; 166