2 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #include <dt-bindings/interrupt-controller/arm-gic.h>
15 #include <dt-bindings/clock/qcom,gcc-ipq8074.h>
18 model = "Qualcomm Technologies, Inc. IPQ8074";
19 compatible = "qcom,ipq8074";
22 #address-cells = <0x1>;
24 ranges = <0 0 0 0xffffffff>;
25 compatible = "simple-bus";
27 tlmm: pinctrl@1000000 {
28 compatible = "qcom,ipq8074-pinctrl";
29 reg = <0x1000000 0x300000>;
30 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
34 #interrupt-cells = <0x2>;
36 serial_4_pins: serial4-pinmux {
37 pins = "gpio23", "gpio24";
38 function = "blsp4_uart1";
43 i2c_0_pins: i2c-0-pinmux {
44 pins = "gpio42", "gpio43";
45 function = "blsp1_i2c";
50 spi_0_pins: spi-0-pins {
51 pins = "gpio38", "gpio39", "gpio40", "gpio41";
52 function = "blsp0_spi";
57 hsuart_pins: hsuart-pins {
58 pins = "gpio46", "gpio47", "gpio48", "gpio49";
59 function = "blsp2_uart";
64 qpic_pins: qpic-pins {
65 pins = "gpio1", "gpio3", "gpio4",
66 "gpio5", "gpio6", "gpio7",
67 "gpio8", "gpio10", "gpio11",
68 "gpio12", "gpio13", "gpio14",
69 "gpio15", "gpio16", "gpio17";
76 intc: interrupt-controller@b000000 {
77 compatible = "qcom,msm-qgic2";
79 #interrupt-cells = <0x3>;
80 reg = <0xb000000 0x1000>, <0xb002000 0x1000>;
84 compatible = "arm,armv8-timer";
85 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
86 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
87 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
88 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
95 compatible = "arm,armv7-timer-mem";
96 reg = <0xb120000 0x1000>;
97 clock-frequency = <19200000>;
101 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
102 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
103 reg = <0xb121000 0x1000>,
109 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
110 reg = <0xb123000 0x1000>;
116 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
117 reg = <0xb124000 0x1000>;
123 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
124 reg = <0xb125000 0x1000>;
130 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
131 reg = <0xb126000 0x1000>;
137 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
138 reg = <0xb127000 0x1000>;
144 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
145 reg = <0xb128000 0x1000>;
151 compatible = "qcom,gcc-ipq8074";
152 reg = <0x1800000 0x80000>;
153 #clock-cells = <0x1>;
154 #reset-cells = <0x1>;
157 blsp1_uart5: serial@78b3000 {
158 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
159 reg = <0x78b3000 0x200>;
160 interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
161 clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
162 <&gcc GCC_BLSP1_AHB_CLK>;
163 clock-names = "core", "iface";
164 pinctrl-0 = <&serial_4_pins>;
165 pinctrl-names = "default";
169 blsp_dma: dma@7884000 {
170 compatible = "qcom,bam-v1.7.0";
171 reg = <0x7884000 0x2b000>;
172 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
173 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
174 clock-names = "bam_clk";
179 blsp1_uart1: serial@78af000 {
180 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
181 reg = <0x78af000 0x200>;
182 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
183 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
184 <&gcc GCC_BLSP1_AHB_CLK>;
185 clock-names = "core", "iface";
189 blsp1_uart3: serial@78b1000 {
190 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
191 reg = <0x78b1000 0x200>;
192 interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
193 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
194 <&gcc GCC_BLSP1_AHB_CLK>;
195 clock-names = "core", "iface";
196 dmas = <&blsp_dma 4>,
198 dma-names = "tx", "rx";
199 pinctrl-0 = <&hsuart_pins>;
200 pinctrl-names = "default";
204 blsp1_spi1: spi@78b5000 {
205 compatible = "qcom,spi-qup-v2.2.1";
206 #address-cells = <1>;
208 reg = <0x78b5000 0x600>;
209 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
210 spi-max-frequency = <50000000>;
211 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
212 <&gcc GCC_BLSP1_AHB_CLK>;
213 clock-names = "core", "iface";
214 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
215 dma-names = "tx", "rx";
216 pinctrl-0 = <&spi_0_pins>;
217 pinctrl-names = "default";
221 blsp1_i2c2: i2c@78b6000 {
222 compatible = "qcom,i2c-qup-v2.2.1";
223 #address-cells = <1>;
225 reg = <0x78b6000 0x600>;
226 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
228 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
229 clock-names = "iface", "core";
230 clock-frequency = <400000>;
231 dmas = <&blsp_dma 15>, <&blsp_dma 14>;
232 dma-names = "rx", "tx";
233 pinctrl-0 = <&i2c_0_pins>;
234 pinctrl-names = "default";
238 blsp1_i2c3: i2c@78b7000 {
239 compatible = "qcom,i2c-qup-v2.2.1";
240 #address-cells = <1>;
242 reg = <0x78b7000 0x600>;
243 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
244 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
245 <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
246 clock-names = "iface", "core";
247 clock-frequency = <100000>;
248 dmas = <&blsp_dma 17>, <&blsp_dma 16>;
249 dma-names = "rx", "tx";
253 qpic_bam: dma@7984000 {
254 compatible = "qcom,bam-v1.7.0";
255 reg = <0x7984000 0x1a000>;
256 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
257 clocks = <&gcc GCC_QPIC_AHB_CLK>;
258 clock-names = "bam_clk";
264 qpic_nand: nand@79b0000 {
265 compatible = "qcom,ipq8074-nand";
266 reg = <0x79b0000 0x10000>;
267 #address-cells = <1>;
269 clocks = <&gcc GCC_QPIC_CLK>,
270 <&gcc GCC_QPIC_AHB_CLK>;
271 clock-names = "core", "aon";
273 dmas = <&qpic_bam 0>,
276 dma-names = "tx", "rx", "cmd";
277 pinctrl-0 = <&qpic_pins>;
278 pinctrl-names = "default";
282 pcie_phy0: phy@86000 {
283 compatible = "qcom,ipq8074-qmp-pcie-phy";
284 reg = <0x86000 0x1000>;
286 clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
287 clock-names = "pipe_clk";
288 clock-output-names = "pcie20_phy0_pipe_clk";
290 resets = <&gcc GCC_PCIE0_PHY_BCR>,
291 <&gcc GCC_PCIE0PHY_PHY_BCR>;
297 pcie0: pci@20000000 {
298 compatible = "qcom,pcie-ipq8074";
299 reg = <0x20000000 0xf1d
303 reg-names = "dbi", "elbi", "parf", "config";
305 linux,pci-domain = <0>;
306 bus-range = <0x00 0xff>;
308 #address-cells = <3>;
312 phy-names = "pciephy";
314 ranges = <0x81000000 0 0x20200000 0x20200000
315 0 0x100000 /* downstream I/O */
316 0x82000000 0 0x20300000 0x20300000
317 0 0xd00000>; /* non-prefetchable memory */
319 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
320 interrupt-names = "msi";
321 #interrupt-cells = <1>;
322 interrupt-map-mask = <0 0 0 0x7>;
323 interrupt-map = <0 0 0 1 &intc 0 75
324 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
326 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
328 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
330 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
332 clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
333 <&gcc GCC_PCIE0_AXI_M_CLK>,
334 <&gcc GCC_PCIE0_AXI_S_CLK>,
335 <&gcc GCC_PCIE0_AHB_CLK>,
336 <&gcc GCC_PCIE0_AUX_CLK>;
338 clock-names = "iface",
343 resets = <&gcc GCC_PCIE0_PIPE_ARES>,
344 <&gcc GCC_PCIE0_SLEEP_ARES>,
345 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
346 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
347 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
348 <&gcc GCC_PCIE0_AHB_ARES>,
349 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>;
350 reset-names = "pipe",
360 pcie_phy1: phy@8e000 {
361 compatible = "qcom,ipq8074-qmp-pcie-phy";
362 reg = <0x8e000 0x1000>;
364 clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
365 clock-names = "pipe_clk";
366 clock-output-names = "pcie20_phy1_pipe_clk";
368 resets = <&gcc GCC_PCIE1_PHY_BCR>,
369 <&gcc GCC_PCIE1PHY_PHY_BCR>;
375 pcie1: pci@10000000 {
376 compatible = "qcom,pcie-ipq8074";
377 reg = <0x10000000 0xf1d
381 reg-names = "dbi", "elbi", "parf", "config";
383 linux,pci-domain = <1>;
384 bus-range = <0x00 0xff>;
386 #address-cells = <3>;
390 phy-names = "pciephy";
392 ranges = <0x81000000 0 0x10200000 0x10200000
393 0 0x100000 /* downstream I/O */
394 0x82000000 0 0x10300000 0x10300000
395 0 0xd00000>; /* non-prefetchable memory */
397 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
398 interrupt-names = "msi";
399 #interrupt-cells = <1>;
400 interrupt-map-mask = <0 0 0 0x7>;
401 interrupt-map = <0 0 0 1 &intc 0 142
402 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
404 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
406 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
408 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
410 clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
411 <&gcc GCC_PCIE1_AXI_M_CLK>,
412 <&gcc GCC_PCIE1_AXI_S_CLK>,
413 <&gcc GCC_PCIE1_AHB_CLK>,
414 <&gcc GCC_PCIE1_AUX_CLK>;
415 clock-names = "iface",
420 resets = <&gcc GCC_PCIE1_PIPE_ARES>,
421 <&gcc GCC_PCIE1_SLEEP_ARES>,
422 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
423 <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
424 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
425 <&gcc GCC_PCIE1_AHB_ARES>,
426 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>;
427 reset-names = "pipe",
439 #address-cells = <0x1>;
444 compatible = "arm,cortex-a53";
446 next-level-cache = <&L2_0>;
447 enable-method = "psci";
452 compatible = "arm,cortex-a53";
453 enable-method = "psci";
455 next-level-cache = <&L2_0>;
460 compatible = "arm,cortex-a53";
461 enable-method = "psci";
463 next-level-cache = <&L2_0>;
468 compatible = "arm,cortex-a53";
469 enable-method = "psci";
471 next-level-cache = <&L2_0>;
475 compatible = "cache";
481 compatible = "arm,psci-1.0";
486 compatible = "arm,armv8-pmuv3";
487 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
491 sleep_clk: sleep_clk {
492 compatible = "fixed-clock";
493 clock-frequency = <32000>;
498 compatible = "fixed-clock";
499 clock-frequency = <19200000>;