Loading...
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/mfd/qcom-rpm.h>
6#include <dt-bindings/clock/qcom,rpmcc.h>
7#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
8#include <dt-bindings/clock/qcom,lcc-ipq806x.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/reset/qcom,gcc-ipq806x.h>
11#include <dt-bindings/soc/qcom,gsbi.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13
14/ {
15 #address-cells = <1>;
16 #size-cells = <1>;
17 model = "Qualcomm IPQ8064";
18 compatible = "qcom,ipq8064";
19 interrupt-parent = <&intc>;
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24
25 cpu0: cpu@0 {
26 compatible = "qcom,krait";
27 enable-method = "qcom,kpss-acc-v1";
28 device_type = "cpu";
29 reg = <0>;
30 next-level-cache = <&L2>;
31 qcom,acc = <&acc0>;
32 qcom,saw = <&saw0>;
33 };
34
35 cpu1: cpu@1 {
36 compatible = "qcom,krait";
37 enable-method = "qcom,kpss-acc-v1";
38 device_type = "cpu";
39 reg = <1>;
40 next-level-cache = <&L2>;
41 qcom,acc = <&acc1>;
42 qcom,saw = <&saw1>;
43 };
44
45 L2: l2-cache {
46 compatible = "cache";
47 cache-level = <2>;
48 };
49 };
50
51 thermal-zones {
52 sensor0-thermal {
53 polling-delay-passive = <0>;
54 polling-delay = <0>;
55 thermal-sensors = <&tsens 0>;
56
57 trips {
58 cpu-critical {
59 temperature = <105000>;
60 hysteresis = <2000>;
61 type = "critical";
62 };
63
64 cpu-hot {
65 temperature = <95000>;
66 hysteresis = <2000>;
67 type = "hot";
68 };
69 };
70 };
71
72 sensor1-thermal {
73 polling-delay-passive = <0>;
74 polling-delay = <0>;
75 thermal-sensors = <&tsens 1>;
76
77 trips {
78 cpu-critical {
79 temperature = <105000>;
80 hysteresis = <2000>;
81 type = "critical";
82 };
83
84 cpu-hot {
85 temperature = <95000>;
86 hysteresis = <2000>;
87 type = "hot";
88 };
89 };
90 };
91
92 sensor2-thermal {
93 polling-delay-passive = <0>;
94 polling-delay = <0>;
95 thermal-sensors = <&tsens 2>;
96
97 trips {
98 cpu-critical {
99 temperature = <105000>;
100 hysteresis = <2000>;
101 type = "critical";
102 };
103
104 cpu-hot {
105 temperature = <95000>;
106 hysteresis = <2000>;
107 type = "hot";
108 };
109 };
110 };
111
112 sensor3-thermal {
113 polling-delay-passive = <0>;
114 polling-delay = <0>;
115 thermal-sensors = <&tsens 3>;
116
117 trips {
118 cpu-critical {
119 temperature = <105000>;
120 hysteresis = <2000>;
121 type = "critical";
122 };
123
124 cpu-hot {
125 temperature = <95000>;
126 hysteresis = <2000>;
127 type = "hot";
128 };
129 };
130 };
131
132 sensor4-thermal {
133 polling-delay-passive = <0>;
134 polling-delay = <0>;
135 thermal-sensors = <&tsens 4>;
136
137 trips {
138 cpu-critical {
139 temperature = <105000>;
140 hysteresis = <2000>;
141 type = "critical";
142 };
143
144 cpu-hot {
145 temperature = <95000>;
146 hysteresis = <2000>;
147 type = "hot";
148 };
149 };
150 };
151
152 sensor5-thermal {
153 polling-delay-passive = <0>;
154 polling-delay = <0>;
155 thermal-sensors = <&tsens 5>;
156
157 trips {
158 cpu-critical {
159 temperature = <105000>;
160 hysteresis = <2000>;
161 type = "critical";
162 };
163
164 cpu-hot {
165 temperature = <95000>;
166 hysteresis = <2000>;
167 type = "hot";
168 };
169 };
170 };
171
172 sensor6-thermal {
173 polling-delay-passive = <0>;
174 polling-delay = <0>;
175 thermal-sensors = <&tsens 6>;
176
177 trips {
178 cpu-critical {
179 temperature = <105000>;
180 hysteresis = <2000>;
181 type = "critical";
182 };
183
184 cpu-hot {
185 temperature = <95000>;
186 hysteresis = <2000>;
187 type = "hot";
188 };
189 };
190 };
191
192 sensor7-thermal {
193 polling-delay-passive = <0>;
194 polling-delay = <0>;
195 thermal-sensors = <&tsens 7>;
196
197 trips {
198 cpu-critical {
199 temperature = <105000>;
200 hysteresis = <2000>;
201 type = "critical";
202 };
203
204 cpu-hot {
205 temperature = <95000>;
206 hysteresis = <2000>;
207 type = "hot";
208 };
209 };
210 };
211
212 sensor8-thermal {
213 polling-delay-passive = <0>;
214 polling-delay = <0>;
215 thermal-sensors = <&tsens 8>;
216
217 trips {
218 cpu-critical {
219 temperature = <105000>;
220 hysteresis = <2000>;
221 type = "critical";
222 };
223
224 cpu-hot {
225 temperature = <95000>;
226 hysteresis = <2000>;
227 type = "hot";
228 };
229 };
230 };
231
232 sensor9-thermal {
233 polling-delay-passive = <0>;
234 polling-delay = <0>;
235 thermal-sensors = <&tsens 9>;
236
237 trips {
238 cpu-critical {
239 temperature = <105000>;
240 hysteresis = <2000>;
241 type = "critical";
242 };
243
244 cpu-hot {
245 temperature = <95000>;
246 hysteresis = <2000>;
247 type = "hot";
248 };
249 };
250 };
251
252 sensor10-thermal {
253 polling-delay-passive = <0>;
254 polling-delay = <0>;
255 thermal-sensors = <&tsens 10>;
256
257 trips {
258 cpu-critical {
259 temperature = <105000>;
260 hysteresis = <2000>;
261 type = "critical";
262 };
263
264 cpu-hot {
265 temperature = <95000>;
266 hysteresis = <2000>;
267 type = "hot";
268 };
269 };
270 };
271 };
272
273 memory {
274 device_type = "memory";
275 reg = <0x0 0x0>;
276 };
277
278 cpu-pmu {
279 compatible = "qcom,krait-pmu";
280 interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
281 IRQ_TYPE_LEVEL_HIGH)>;
282 };
283
284 reserved-memory {
285 #address-cells = <1>;
286 #size-cells = <1>;
287 ranges;
288
289 nss@40000000 {
290 reg = <0x40000000 0x1000000>;
291 no-map;
292 };
293
294 smem: smem@41000000 {
295 compatible = "qcom,smem";
296 reg = <0x41000000 0x200000>;
297 no-map;
298
299 hwlocks = <&sfpb_mutex 3>;
300 };
301 };
302
303 clocks {
304 cxo_board: cxo_board {
305 compatible = "fixed-clock";
306 #clock-cells = <0>;
307 clock-frequency = <25000000>;
308 };
309
310 pxo_board: pxo_board {
311 compatible = "fixed-clock";
312 #clock-cells = <0>;
313 clock-frequency = <25000000>;
314 };
315
316 sleep_clk: sleep_clk {
317 compatible = "fixed-clock";
318 clock-frequency = <32768>;
319 #clock-cells = <0>;
320 };
321 };
322
323 firmware {
324 scm {
325 compatible = "qcom,scm-ipq806x", "qcom,scm";
326 };
327 };
328
329 soc: soc {
330 #address-cells = <1>;
331 #size-cells = <1>;
332 ranges;
333 compatible = "simple-bus";
334
335 stmmac_axi_setup: stmmac-axi-config {
336 snps,wr_osr_lmt = <7>;
337 snps,rd_osr_lmt = <7>;
338 snps,blen = <16 0 0 0 0 0 0>;
339 };
340
341 vsdcc_fixed: vsdcc-regulator {
342 compatible = "regulator-fixed";
343 regulator-name = "SDCC Power";
344 regulator-min-microvolt = <3300000>;
345 regulator-max-microvolt = <3300000>;
346 regulator-always-on;
347 };
348
349 rpm: rpm@108000 {
350 compatible = "qcom,rpm-ipq8064";
351 reg = <0x00108000 0x1000>;
352 qcom,ipc = <&l2cc 0x8 2>;
353
354 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
355 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
356 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
357 interrupt-names = "ack", "err", "wakeup";
358
359 clocks = <&gcc RPM_MSG_RAM_H_CLK>;
360 clock-names = "ram";
361
362 rpmcc: clock-controller {
363 compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
364 #clock-cells = <1>;
365 };
366 };
367
368 qcom,ssbi@500000 {
369 compatible = "qcom,ssbi";
370 reg = <0x00500000 0x1000>;
371 qcom,controller-type = "pmic-arbiter";
372 };
373
374 qfprom: qfprom@700000 {
375 compatible = "qcom,ipq8064-qfprom", "qcom,qfprom";
376 reg = <0x00700000 0x1000>;
377 #address-cells = <1>;
378 #size-cells = <1>;
379 speedbin_efuse: speedbin@c0 {
380 reg = <0xc0 0x4>;
381 };
382 tsens_calib: calib@400 {
383 reg = <0x400 0xb>;
384 };
385 tsens_calib_backup: calib_backup@410 {
386 reg = <0x410 0xb>;
387 };
388 };
389
390 qcom_pinmux: pinmux@800000 {
391 compatible = "qcom,ipq8064-pinctrl";
392 reg = <0x00800000 0x4000>;
393
394 gpio-controller;
395 gpio-ranges = <&qcom_pinmux 0 0 69>;
396 #gpio-cells = <2>;
397 interrupt-controller;
398 #interrupt-cells = <2>;
399 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
400
401 pcie0_pins: pcie0_pinmux {
402 mux {
403 pins = "gpio3";
404 function = "pcie1_rst";
405 drive-strength = <12>;
406 bias-disable;
407 };
408 };
409
410 pcie1_pins: pcie1_pinmux {
411 mux {
412 pins = "gpio48";
413 function = "pcie2_rst";
414 drive-strength = <12>;
415 bias-disable;
416 };
417 };
418
419 pcie2_pins: pcie2_pinmux {
420 mux {
421 pins = "gpio63";
422 function = "pcie3_rst";
423 drive-strength = <12>;
424 bias-disable;
425 };
426 };
427
428 i2c4_pins: i2c4-default {
429 pins = "gpio12", "gpio13";
430 function = "gsbi4";
431 drive-strength = <12>;
432 bias-disable;
433 };
434
435 spi_pins: spi_pins {
436 mux {
437 pins = "gpio18", "gpio19", "gpio21";
438 function = "gsbi5";
439 drive-strength = <10>;
440 bias-none;
441 };
442 };
443
444 leds_pins: leds_pins {
445 mux {
446 pins = "gpio7", "gpio8", "gpio9",
447 "gpio26", "gpio53";
448 function = "gpio";
449 drive-strength = <2>;
450 bias-pull-down;
451 output-low;
452 };
453 };
454
455 buttons_pins: buttons_pins {
456 mux {
457 pins = "gpio54";
458 drive-strength = <2>;
459 bias-pull-up;
460 };
461 };
462
463 nand_pins: nand_pins {
464 mux {
465 pins = "gpio34", "gpio35", "gpio36",
466 "gpio37", "gpio38", "gpio39",
467 "gpio40", "gpio41", "gpio42",
468 "gpio43", "gpio44", "gpio45",
469 "gpio46", "gpio47";
470 function = "nand";
471 drive-strength = <10>;
472 bias-disable;
473 };
474
475 pullups {
476 pins = "gpio39";
477 function = "nand";
478 drive-strength = <10>;
479 bias-pull-up;
480 };
481
482 hold {
483 pins = "gpio40", "gpio41", "gpio42",
484 "gpio43", "gpio44", "gpio45",
485 "gpio46", "gpio47";
486 function = "nand";
487 drive-strength = <10>;
488 bias-bus-hold;
489 };
490 };
491
492 mdio0_pins: mdio0-pins {
493 mux {
494 pins = "gpio0", "gpio1";
495 function = "mdio";
496 drive-strength = <8>;
497 bias-disable;
498 };
499 };
500
501 rgmii2_pins: rgmii2-pins {
502 mux {
503 pins = "gpio27", "gpio28", "gpio29",
504 "gpio30", "gpio31", "gpio32",
505 "gpio51", "gpio52", "gpio59",
506 "gpio60", "gpio61", "gpio62";
507 function = "rgmii2";
508 drive-strength = <8>;
509 bias-disable;
510 };
511 };
512 };
513
514 gcc: clock-controller@900000 {
515 compatible = "qcom,gcc-ipq8064", "syscon";
516 clocks = <&pxo_board>, <&cxo_board>, <&lcc PLL4>;
517 clock-names = "pxo", "cxo", "pll4";
518 reg = <0x00900000 0x4000>;
519 #clock-cells = <1>;
520 #reset-cells = <1>;
521 #power-domain-cells = <1>;
522
523 tsens: thermal-sensor@900000 {
524 compatible = "qcom,ipq8064-tsens";
525
526 nvmem-cells = <&tsens_calib>, <&tsens_calib_backup>;
527 nvmem-cell-names = "calib", "calib_backup";
528 interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
529 interrupt-names = "uplow";
530
531 #qcom,sensors = <11>;
532 #thermal-sensor-cells = <1>;
533 };
534 };
535
536 sfpb_mutex: hwlock@1200600 {
537 compatible = "qcom,sfpb-mutex";
538 reg = <0x01200600 0x100>;
539
540 #hwlock-cells = <1>;
541 };
542
543 intc: interrupt-controller@2000000 {
544 compatible = "qcom,msm-qgic2";
545 interrupt-controller;
546 #interrupt-cells = <3>;
547 reg = <0x02000000 0x1000>,
548 <0x02002000 0x1000>;
549 };
550
551 timer@200a000 {
552 compatible = "qcom,kpss-timer",
553 "qcom,kpss-wdt-ipq8064", "qcom,msm-timer";
554 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) |
555 IRQ_TYPE_EDGE_RISING)>,
556 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) |
557 IRQ_TYPE_EDGE_RISING)>,
558 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) |
559 IRQ_TYPE_EDGE_RISING)>,
560 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) |
561 IRQ_TYPE_EDGE_RISING)>,
562 <GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) |
563 IRQ_TYPE_EDGE_RISING)>;
564 reg = <0x0200a000 0x100>;
565 clock-frequency = <25000000>,
566 <32768>;
567 clocks = <&sleep_clk>;
568 clock-names = "sleep";
569 cpu-offset = <0x80000>;
570 };
571
572 l2cc: clock-controller@2011000 {
573 compatible = "qcom,kpss-gcc", "syscon";
574 reg = <0x02011000 0x1000>;
575 clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
576 clock-names = "pll8_vote", "pxo";
577 clock-output-names = "acpu_l2_aux";
578 };
579
580 acc0: clock-controller@2088000 {
581 compatible = "qcom,kpss-acc-v1";
582 reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
583 };
584
585 saw0: regulator@2089000 {
586 compatible = "qcom,saw2";
587 reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
588 regulator;
589 };
590
591 acc1: clock-controller@2098000 {
592 compatible = "qcom,kpss-acc-v1";
593 reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
594 };
595
596 saw1: regulator@2099000 {
597 compatible = "qcom,saw2";
598 reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
599 regulator;
600 };
601
602 nss_common: syscon@03000000 {
603 compatible = "syscon";
604 reg = <0x03000000 0x0000FFFF>;
605 };
606
607 usb3_0: usb3@100f8800 {
608 compatible = "qcom,ipq8064-dwc3", "qcom,dwc3";
609 #address-cells = <1>;
610 #size-cells = <1>;
611 reg = <0x100f8800 0x8000>;
612 clocks = <&gcc USB30_0_MASTER_CLK>;
613 clock-names = "core";
614
615 ranges;
616
617 resets = <&gcc USB30_0_MASTER_RESET>;
618 reset-names = "master";
619
620 status = "disabled";
621
622 dwc3_0: dwc3@10000000 {
623 compatible = "snps,dwc3";
624 reg = <0x10000000 0xcd00>;
625 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
626 phys = <&hs_phy_0>, <&ss_phy_0>;
627 phy-names = "usb2-phy", "usb3-phy";
628 dr_mode = "host";
629 snps,dis_u3_susphy_quirk;
630 };
631 };
632
633 hs_phy_0: phy@100f8800 {
634 compatible = "qcom,ipq806x-usb-phy-hs";
635 reg = <0x100f8800 0x30>;
636 clocks = <&gcc USB30_0_UTMI_CLK>;
637 clock-names = "ref";
638 #phy-cells = <0>;
639
640 status = "disabled";
641 };
642
643 ss_phy_0: phy@100f8830 {
644 compatible = "qcom,ipq806x-usb-phy-ss";
645 reg = <0x100f8830 0x30>;
646 clocks = <&gcc USB30_0_MASTER_CLK>;
647 clock-names = "ref";
648 #phy-cells = <0>;
649
650 status = "disabled";
651 };
652
653 usb3_1: usb3@110f8800 {
654 compatible = "qcom,ipq8064-dwc3", "qcom,dwc3";
655 #address-cells = <1>;
656 #size-cells = <1>;
657 reg = <0x110f8800 0x8000>;
658 clocks = <&gcc USB30_1_MASTER_CLK>;
659 clock-names = "core";
660
661 ranges;
662
663 resets = <&gcc USB30_1_MASTER_RESET>;
664 reset-names = "master";
665
666 status = "disabled";
667
668 dwc3_1: dwc3@11000000 {
669 compatible = "snps,dwc3";
670 reg = <0x11000000 0xcd00>;
671 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
672 phys = <&hs_phy_1>, <&ss_phy_1>;
673 phy-names = "usb2-phy", "usb3-phy";
674 dr_mode = "host";
675 snps,dis_u3_susphy_quirk;
676 };
677 };
678
679 hs_phy_1: phy@110f8800 {
680 compatible = "qcom,ipq806x-usb-phy-hs";
681 reg = <0x110f8800 0x30>;
682 clocks = <&gcc USB30_1_UTMI_CLK>;
683 clock-names = "ref";
684 #phy-cells = <0>;
685
686 status = "disabled";
687 };
688
689 ss_phy_1: phy@110f8830 {
690 compatible = "qcom,ipq806x-usb-phy-ss";
691 reg = <0x110f8830 0x30>;
692 clocks = <&gcc USB30_1_MASTER_CLK>;
693 clock-names = "ref";
694 #phy-cells = <0>;
695
696 status = "disabled";
697 };
698
699 sdcc3bam: dma-controller@12182000 {
700 compatible = "qcom,bam-v1.3.0";
701 reg = <0x12182000 0x8000>;
702 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
703 clocks = <&gcc SDC3_H_CLK>;
704 clock-names = "bam_clk";
705 #dma-cells = <1>;
706 qcom,ee = <0>;
707 };
708
709 sdcc1bam: dma-controller@12402000 {
710 compatible = "qcom,bam-v1.3.0";
711 reg = <0x12402000 0x8000>;
712 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
713 clocks = <&gcc SDC1_H_CLK>;
714 clock-names = "bam_clk";
715 #dma-cells = <1>;
716 qcom,ee = <0>;
717 };
718
719 amba: amba {
720 compatible = "simple-bus";
721 #address-cells = <1>;
722 #size-cells = <1>;
723 ranges;
724
725 sdcc3: mmc@12180000 {
726 compatible = "arm,pl18x", "arm,primecell";
727 arm,primecell-periphid = <0x00051180>;
728 status = "disabled";
729 reg = <0x12180000 0x2000>;
730 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
731 clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
732 clock-names = "mclk", "apb_pclk";
733 bus-width = <8>;
734 cap-sd-highspeed;
735 cap-mmc-highspeed;
736 max-frequency = <192000000>;
737 sd-uhs-sdr104;
738 sd-uhs-ddr50;
739 vqmmc-supply = <&vsdcc_fixed>;
740 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
741 dma-names = "tx", "rx";
742 };
743
744 sdcc1: mmc@12400000 {
745 status = "disabled";
746 compatible = "arm,pl18x", "arm,primecell";
747 arm,primecell-periphid = <0x00051180>;
748 reg = <0x12400000 0x2000>;
749 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
750 clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
751 clock-names = "mclk", "apb_pclk";
752 bus-width = <8>;
753 max-frequency = <96000000>;
754 non-removable;
755 cap-sd-highspeed;
756 cap-mmc-highspeed;
757 vmmc-supply = <&vsdcc_fixed>;
758 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
759 dma-names = "tx", "rx";
760 };
761 };
762
763 gsbi1: gsbi@12440000 {
764 compatible = "qcom,gsbi-v1.0.0";
765 reg = <0x12440000 0x100>;
766 cell-index = <1>;
767 clocks = <&gcc GSBI1_H_CLK>;
768 clock-names = "iface";
769 #address-cells = <1>;
770 #size-cells = <1>;
771 ranges;
772
773 syscon-tcsr = <&tcsr>;
774
775 status = "disabled";
776
777 gsbi1_serial: serial@12450000 {
778 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
779 reg = <0x12450000 0x100>,
780 <0x12400000 0x03>;
781 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
782 clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>;
783 clock-names = "core", "iface";
784
785 status = "disabled";
786 };
787
788 gsbi1_i2c: i2c@12460000 {
789 compatible = "qcom,i2c-qup-v1.1.1";
790 reg = <0x12460000 0x1000>;
791 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
792 clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
793 clock-names = "core", "iface";
794 #address-cells = <1>;
795 #size-cells = <0>;
796
797 status = "disabled";
798 };
799 };
800
801 gsbi2: gsbi@12480000 {
802 compatible = "qcom,gsbi-v1.0.0";
803 cell-index = <2>;
804 reg = <0x12480000 0x100>;
805 clocks = <&gcc GSBI2_H_CLK>;
806 clock-names = "iface";
807 #address-cells = <1>;
808 #size-cells = <1>;
809 ranges;
810 status = "disabled";
811
812 syscon-tcsr = <&tcsr>;
813
814 gsbi2_serial: serial@12490000 {
815 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
816 reg = <0x12490000 0x1000>,
817 <0x12480000 0x1000>;
818 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
819 clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>;
820 clock-names = "core", "iface";
821 status = "disabled";
822 };
823
824 gsbi2_i2c: i2c@124a0000 {
825 compatible = "qcom,i2c-qup-v1.1.1";
826 reg = <0x124a0000 0x1000>;
827 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
828
829 clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
830 clock-names = "core", "iface";
831 status = "disabled";
832
833 #address-cells = <1>;
834 #size-cells = <0>;
835 };
836 };
837
838 gsbi4: gsbi@16300000 {
839 compatible = "qcom,gsbi-v1.0.0";
840 cell-index = <4>;
841 reg = <0x16300000 0x100>;
842 clocks = <&gcc GSBI4_H_CLK>;
843 clock-names = "iface";
844 #address-cells = <1>;
845 #size-cells = <1>;
846 ranges;
847 status = "disabled";
848
849 syscon-tcsr = <&tcsr>;
850
851 gsbi4_serial: serial@16340000 {
852 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
853 reg = <0x16340000 0x1000>,
854 <0x16300000 0x1000>;
855 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
856 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
857 clock-names = "core", "iface";
858 status = "disabled";
859 };
860
861 i2c@16380000 {
862 compatible = "qcom,i2c-qup-v1.1.1";
863 reg = <0x16380000 0x1000>;
864 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
865
866 clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
867 clock-names = "core", "iface";
868 status = "disabled";
869
870 #address-cells = <1>;
871 #size-cells = <0>;
872 };
873 };
874
875 gsbi6: gsbi@16500000 {
876 compatible = "qcom,gsbi-v1.0.0";
877 reg = <0x16500000 0x100>;
878 cell-index = <6>;
879 clocks = <&gcc GSBI6_H_CLK>;
880 clock-names = "iface";
881 #address-cells = <1>;
882 #size-cells = <1>;
883 ranges;
884
885 syscon-tcsr = <&tcsr>;
886
887 status = "disabled";
888
889 gsbi6_i2c: i2c@16580000 {
890 compatible = "qcom,i2c-qup-v1.1.1";
891 reg = <0x16580000 0x1000>;
892 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
893
894 clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>;
895 clock-names = "core", "iface";
896
897 #address-cells = <1>;
898 #size-cells = <0>;
899
900 status = "disabled";
901 };
902
903 gsbi6_spi: spi@16580000 {
904 compatible = "qcom,spi-qup-v1.1.1";
905 reg = <0x16580000 0x1000>;
906 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
907
908 clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>;
909 clock-names = "core", "iface";
910
911 #address-cells = <1>;
912 #size-cells = <0>;
913
914 status = "disabled";
915 };
916 };
917
918 gsbi7: gsbi@16600000 {
919 status = "disabled";
920 compatible = "qcom,gsbi-v1.0.0";
921 cell-index = <7>;
922 reg = <0x16600000 0x100>;
923 clocks = <&gcc GSBI7_H_CLK>;
924 clock-names = "iface";
925 #address-cells = <1>;
926 #size-cells = <1>;
927 ranges;
928 syscon-tcsr = <&tcsr>;
929
930 gsbi7_serial: serial@16640000 {
931 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
932 reg = <0x16640000 0x1000>,
933 <0x16600000 0x1000>;
934 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
935 clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
936 clock-names = "core", "iface";
937 status = "disabled";
938 };
939
940 gsbi7_i2c: i2c@16680000 {
941 compatible = "qcom,i2c-qup-v1.1.1";
942 reg = <0x16680000 0x1000>;
943 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
944
945 clocks = <&gcc GSBI7_QUP_CLK>, <&gcc GSBI7_H_CLK>;
946 clock-names = "core", "iface";
947
948 #address-cells = <1>;
949 #size-cells = <0>;
950
951 status = "disabled";
952 };
953 };
954
955 adm_dma: dma-controller@18300000 {
956 compatible = "qcom,adm";
957 reg = <0x18300000 0x100000>;
958 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
959 #dma-cells = <1>;
960
961 clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>;
962 clock-names = "core", "iface";
963
964 resets = <&gcc ADM0_RESET>,
965 <&gcc ADM0_PBUS_RESET>,
966 <&gcc ADM0_C0_RESET>,
967 <&gcc ADM0_C1_RESET>,
968 <&gcc ADM0_C2_RESET>;
969 reset-names = "clk", "pbus", "c0", "c1", "c2";
970 qcom,ee = <0>;
971
972 status = "disabled";
973 };
974
975 gsbi5: gsbi@1a200000 {
976 compatible = "qcom,gsbi-v1.0.0";
977 cell-index = <5>;
978 reg = <0x1a200000 0x100>;
979 clocks = <&gcc GSBI5_H_CLK>;
980 clock-names = "iface";
981 #address-cells = <1>;
982
983 #size-cells = <1>;
984 ranges;
985 status = "disabled";
986
987 syscon-tcsr = <&tcsr>;
988
989 gsbi5_serial: serial@1a240000 {
990 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
991 reg = <0x1a240000 0x1000>,
992 <0x1a200000 0x1000>;
993 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
994 clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
995 clock-names = "core", "iface";
996 status = "disabled";
997 };
998
999 i2c@1a280000 {
1000 compatible = "qcom,i2c-qup-v1.1.1";
1001 reg = <0x1a280000 0x1000>;
1002 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
1003
1004 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
1005 clock-names = "core", "iface";
1006 status = "disabled";
1007
1008 #address-cells = <1>;
1009 #size-cells = <0>;
1010 };
1011
1012 spi@1a280000 {
1013 compatible = "qcom,spi-qup-v1.1.1";
1014 reg = <0x1a280000 0x1000>;
1015 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
1016
1017 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
1018 clock-names = "core", "iface";
1019 status = "disabled";
1020
1021 #address-cells = <1>;
1022 #size-cells = <0>;
1023 };
1024 };
1025
1026 tcsr: syscon@1a400000 {
1027 compatible = "qcom,tcsr-ipq8064", "syscon";
1028 reg = <0x1a400000 0x100>;
1029 };
1030
1031 rng@1a500000 {
1032 compatible = "qcom,prng";
1033 reg = <0x1a500000 0x200>;
1034 clocks = <&gcc PRNG_CLK>;
1035 clock-names = "core";
1036 };
1037
1038 nand: nand-controller@1ac00000 {
1039 compatible = "qcom,ipq806x-nand";
1040 reg = <0x1ac00000 0x800>;
1041
1042 pinctrl-0 = <&nand_pins>;
1043 pinctrl-names = "default";
1044
1045 clocks = <&gcc EBI2_CLK>,
1046 <&gcc EBI2_AON_CLK>;
1047 clock-names = "core", "aon";
1048
1049 dmas = <&adm_dma 3>;
1050 dma-names = "rxtx";
1051 qcom,cmd-crci = <15>;
1052 qcom,data-crci = <3>;
1053
1054 #address-cells = <1>;
1055 #size-cells = <0>;
1056
1057 status = "disabled";
1058 };
1059
1060 sata_phy: sata-phy@1b400000 {
1061 compatible = "qcom,ipq806x-sata-phy";
1062 reg = <0x1b400000 0x200>;
1063
1064 clocks = <&gcc SATA_PHY_CFG_CLK>;
1065 clock-names = "cfg";
1066
1067 #phy-cells = <0>;
1068 status = "disabled";
1069 };
1070
1071 pcie0: pci@1b500000 {
1072 compatible = "qcom,pcie-ipq8064";
1073 reg = <0x1b500000 0x1000
1074 0x1b502000 0x80
1075 0x1b600000 0x100
1076 0x0ff00000 0x100000>;
1077 reg-names = "dbi", "elbi", "parf", "config";
1078 device_type = "pci";
1079 linux,pci-domain = <0>;
1080 bus-range = <0x00 0xff>;
1081 num-lanes = <1>;
1082 #address-cells = <3>;
1083 #size-cells = <2>;
1084
1085 ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00010000 /* downstream I/O */
1086 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
1087
1088 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1089 interrupt-names = "msi";
1090 #interrupt-cells = <1>;
1091 interrupt-map-mask = <0 0 0 0x7>;
1092 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1093 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1094 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1095 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1096
1097 clocks = <&gcc PCIE_A_CLK>,
1098 <&gcc PCIE_H_CLK>,
1099 <&gcc PCIE_PHY_CLK>,
1100 <&gcc PCIE_AUX_CLK>,
1101 <&gcc PCIE_ALT_REF_CLK>;
1102 clock-names = "core", "iface", "phy", "aux", "ref";
1103
1104 assigned-clocks = <&gcc PCIE_ALT_REF_CLK>;
1105 assigned-clock-rates = <100000000>;
1106
1107 resets = <&gcc PCIE_ACLK_RESET>,
1108 <&gcc PCIE_HCLK_RESET>,
1109 <&gcc PCIE_POR_RESET>,
1110 <&gcc PCIE_PCI_RESET>,
1111 <&gcc PCIE_PHY_RESET>,
1112 <&gcc PCIE_EXT_RESET>;
1113 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
1114
1115 pinctrl-0 = <&pcie0_pins>;
1116 pinctrl-names = "default";
1117
1118 status = "disabled";
1119 perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
1120 };
1121
1122 pcie1: pci@1b700000 {
1123 compatible = "qcom,pcie-ipq8064";
1124 reg = <0x1b700000 0x1000
1125 0x1b702000 0x80
1126 0x1b800000 0x100
1127 0x31f00000 0x100000>;
1128 reg-names = "dbi", "elbi", "parf", "config";
1129 device_type = "pci";
1130 linux,pci-domain = <1>;
1131 bus-range = <0x00 0xff>;
1132 num-lanes = <1>;
1133 #address-cells = <3>;
1134 #size-cells = <2>;
1135
1136 ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00010000 /* downstream I/O */
1137 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
1138
1139 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
1140 interrupt-names = "msi";
1141 #interrupt-cells = <1>;
1142 interrupt-map-mask = <0 0 0 0x7>;
1143 interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1144 <0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1145 <0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1146 <0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1147
1148 clocks = <&gcc PCIE_1_A_CLK>,
1149 <&gcc PCIE_1_H_CLK>,
1150 <&gcc PCIE_1_PHY_CLK>,
1151 <&gcc PCIE_1_AUX_CLK>,
1152 <&gcc PCIE_1_ALT_REF_CLK>;
1153 clock-names = "core", "iface", "phy", "aux", "ref";
1154
1155 assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>;
1156 assigned-clock-rates = <100000000>;
1157
1158 resets = <&gcc PCIE_1_ACLK_RESET>,
1159 <&gcc PCIE_1_HCLK_RESET>,
1160 <&gcc PCIE_1_POR_RESET>,
1161 <&gcc PCIE_1_PCI_RESET>,
1162 <&gcc PCIE_1_PHY_RESET>,
1163 <&gcc PCIE_1_EXT_RESET>;
1164 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
1165
1166 pinctrl-0 = <&pcie1_pins>;
1167 pinctrl-names = "default";
1168
1169 status = "disabled";
1170 perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
1171 };
1172
1173 pcie2: pci@1b900000 {
1174 compatible = "qcom,pcie-ipq8064";
1175 reg = <0x1b900000 0x1000
1176 0x1b902000 0x80
1177 0x1ba00000 0x100
1178 0x35f00000 0x100000>;
1179 reg-names = "dbi", "elbi", "parf", "config";
1180 device_type = "pci";
1181 linux,pci-domain = <2>;
1182 bus-range = <0x00 0xff>;
1183 num-lanes = <1>;
1184 #address-cells = <3>;
1185 #size-cells = <2>;
1186
1187 ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00010000 /* downstream I/O */
1188 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
1189
1190 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
1191 interrupt-names = "msi";
1192 #interrupt-cells = <1>;
1193 interrupt-map-mask = <0 0 0 0x7>;
1194 interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1195 <0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1196 <0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1197 <0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1198
1199 clocks = <&gcc PCIE_2_A_CLK>,
1200 <&gcc PCIE_2_H_CLK>,
1201 <&gcc PCIE_2_PHY_CLK>,
1202 <&gcc PCIE_2_AUX_CLK>,
1203 <&gcc PCIE_2_ALT_REF_CLK>;
1204 clock-names = "core", "iface", "phy", "aux", "ref";
1205
1206 assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>;
1207 assigned-clock-rates = <100000000>;
1208
1209 resets = <&gcc PCIE_2_ACLK_RESET>,
1210 <&gcc PCIE_2_HCLK_RESET>,
1211 <&gcc PCIE_2_POR_RESET>,
1212 <&gcc PCIE_2_PCI_RESET>,
1213 <&gcc PCIE_2_PHY_RESET>,
1214 <&gcc PCIE_2_EXT_RESET>;
1215 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
1216
1217 pinctrl-0 = <&pcie2_pins>;
1218 pinctrl-names = "default";
1219
1220 status = "disabled";
1221 perst-gpios = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
1222 };
1223
1224 qsgmii_csr: syscon@1bb00000 {
1225 compatible = "syscon";
1226 reg = <0x1bb00000 0x000001FF>;
1227 };
1228
1229 lcc: clock-controller@28000000 {
1230 compatible = "qcom,lcc-ipq8064";
1231 reg = <0x28000000 0x1000>;
1232 #clock-cells = <1>;
1233 #reset-cells = <1>;
1234 };
1235
1236 lpass@28100000 {
1237 compatible = "qcom,lpass-cpu";
1238 status = "disabled";
1239 clocks = <&lcc AHBIX_CLK>,
1240 <&lcc MI2S_OSR_CLK>,
1241 <&lcc MI2S_BIT_CLK>;
1242 clock-names = "ahbix-clk",
1243 "mi2s-osr-clk",
1244 "mi2s-bit-clk";
1245 interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
1246 interrupt-names = "lpass-irq-lpaif";
1247 reg = <0x28100000 0x10000>;
1248 reg-names = "lpass-lpaif";
1249 };
1250
1251 sata: sata@29000000 {
1252 compatible = "qcom,ipq806x-ahci", "generic-ahci";
1253 reg = <0x29000000 0x180>;
1254
1255 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
1256
1257 clocks = <&gcc SFAB_SATA_S_H_CLK>,
1258 <&gcc SATA_H_CLK>,
1259 <&gcc SATA_A_CLK>,
1260 <&gcc SATA_RXOOB_CLK>,
1261 <&gcc SATA_PMALIVE_CLK>;
1262 clock-names = "slave_face", "iface", "core",
1263 "rxoob", "pmalive";
1264
1265 assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
1266 assigned-clock-rates = <100000000>, <100000000>;
1267
1268 phys = <&sata_phy>;
1269 phy-names = "sata-phy";
1270 status = "disabled";
1271 };
1272
1273 gmac0: ethernet@37000000 {
1274 device_type = "network";
1275 compatible = "qcom,ipq806x-gmac", "snps,dwmac";
1276 reg = <0x37000000 0x200000>;
1277 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
1278 interrupt-names = "macirq";
1279
1280 snps,axi-config = <&stmmac_axi_setup>;
1281 snps,pbl = <32>;
1282 snps,aal;
1283
1284 qcom,nss-common = <&nss_common>;
1285 qcom,qsgmii-csr = <&qsgmii_csr>;
1286
1287 clocks = <&gcc GMAC_CORE1_CLK>;
1288 clock-names = "stmmaceth";
1289
1290 resets = <&gcc GMAC_CORE1_RESET>,
1291 <&gcc GMAC_AHB_RESET>;
1292 reset-names = "stmmaceth", "ahb";
1293
1294 status = "disabled";
1295 };
1296
1297 gmac1: ethernet@37200000 {
1298 device_type = "network";
1299 compatible = "qcom,ipq806x-gmac", "snps,dwmac";
1300 reg = <0x37200000 0x200000>;
1301 interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
1302 interrupt-names = "macirq";
1303
1304 snps,axi-config = <&stmmac_axi_setup>;
1305 snps,pbl = <32>;
1306 snps,aal;
1307
1308 qcom,nss-common = <&nss_common>;
1309 qcom,qsgmii-csr = <&qsgmii_csr>;
1310
1311 clocks = <&gcc GMAC_CORE2_CLK>;
1312 clock-names = "stmmaceth";
1313
1314 resets = <&gcc GMAC_CORE2_RESET>,
1315 <&gcc GMAC_AHB_RESET>;
1316 reset-names = "stmmaceth", "ahb";
1317
1318 status = "disabled";
1319 };
1320
1321 gmac2: ethernet@37400000 {
1322 device_type = "network";
1323 compatible = "qcom,ipq806x-gmac", "snps,dwmac";
1324 reg = <0x37400000 0x200000>;
1325 interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
1326 interrupt-names = "macirq";
1327
1328 snps,axi-config = <&stmmac_axi_setup>;
1329 snps,pbl = <32>;
1330 snps,aal;
1331
1332 qcom,nss-common = <&nss_common>;
1333 qcom,qsgmii-csr = <&qsgmii_csr>;
1334
1335 clocks = <&gcc GMAC_CORE3_CLK>;
1336 clock-names = "stmmaceth";
1337
1338 resets = <&gcc GMAC_CORE3_RESET>,
1339 <&gcc GMAC_AHB_RESET>;
1340 reset-names = "stmmaceth", "ahb";
1341
1342 status = "disabled";
1343 };
1344
1345 gmac3: ethernet@37600000 {
1346 device_type = "network";
1347 compatible = "qcom,ipq806x-gmac", "snps,dwmac";
1348 reg = <0x37600000 0x200000>;
1349 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
1350 interrupt-names = "macirq";
1351
1352 snps,axi-config = <&stmmac_axi_setup>;
1353 snps,pbl = <32>;
1354 snps,aal;
1355
1356 qcom,nss-common = <&nss_common>;
1357 qcom,qsgmii-csr = <&qsgmii_csr>;
1358
1359 clocks = <&gcc GMAC_CORE4_CLK>;
1360 clock-names = "stmmaceth";
1361
1362 resets = <&gcc GMAC_CORE4_RESET>,
1363 <&gcc GMAC_AHB_RESET>;
1364 reset-names = "stmmaceth", "ahb";
1365
1366 status = "disabled";
1367 };
1368 };
1369};
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
6#include <dt-bindings/clock/qcom,lcc-ipq806x.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/reset/qcom,gcc-ipq806x.h>
9#include <dt-bindings/soc/qcom,gsbi.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11
12/ {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 model = "Qualcomm IPQ8064";
16 compatible = "qcom,ipq8064";
17 interrupt-parent = <&intc>;
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 cpu@0 {
24 compatible = "qcom,krait";
25 enable-method = "qcom,kpss-acc-v1";
26 device_type = "cpu";
27 reg = <0>;
28 next-level-cache = <&L2>;
29 qcom,acc = <&acc0>;
30 qcom,saw = <&saw0>;
31 };
32
33 cpu@1 {
34 compatible = "qcom,krait";
35 enable-method = "qcom,kpss-acc-v1";
36 device_type = "cpu";
37 reg = <1>;
38 next-level-cache = <&L2>;
39 qcom,acc = <&acc1>;
40 qcom,saw = <&saw1>;
41 };
42
43 L2: l2-cache {
44 compatible = "cache";
45 cache-level = <2>;
46 };
47 };
48
49 memory {
50 device_type = "memory";
51 reg = <0x0 0x0>;
52 };
53
54 cpu-pmu {
55 compatible = "qcom,krait-pmu";
56 interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
57 IRQ_TYPE_LEVEL_HIGH)>;
58 };
59
60 reserved-memory {
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64
65 nss@40000000 {
66 reg = <0x40000000 0x1000000>;
67 no-map;
68 };
69
70 smem@41000000 {
71 reg = <0x41000000 0x200000>;
72 no-map;
73 };
74 };
75
76 clocks {
77 cxo_board {
78 compatible = "fixed-clock";
79 #clock-cells = <0>;
80 clock-frequency = <25000000>;
81 };
82
83 pxo_board {
84 compatible = "fixed-clock";
85 #clock-cells = <0>;
86 clock-frequency = <25000000>;
87 };
88
89 sleep_clk: sleep_clk {
90 compatible = "fixed-clock";
91 clock-frequency = <32768>;
92 #clock-cells = <0>;
93 };
94 };
95
96 firmware {
97 scm {
98 compatible = "qcom,scm-ipq806x", "qcom,scm";
99 };
100 };
101
102 soc: soc {
103 #address-cells = <1>;
104 #size-cells = <1>;
105 ranges;
106 compatible = "simple-bus";
107
108 lpass@28100000 {
109 compatible = "qcom,lpass-cpu";
110 status = "disabled";
111 clocks = <&lcc AHBIX_CLK>,
112 <&lcc MI2S_OSR_CLK>,
113 <&lcc MI2S_BIT_CLK>;
114 clock-names = "ahbix-clk",
115 "mi2s-osr-clk",
116 "mi2s-bit-clk";
117 interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
118 interrupt-names = "lpass-irq-lpaif";
119 reg = <0x28100000 0x10000>;
120 reg-names = "lpass-lpaif";
121 };
122
123 qcom_pinmux: pinmux@800000 {
124 compatible = "qcom,ipq8064-pinctrl";
125 reg = <0x800000 0x4000>;
126
127 gpio-controller;
128 gpio-ranges = <&qcom_pinmux 0 0 69>;
129 #gpio-cells = <2>;
130 interrupt-controller;
131 #interrupt-cells = <2>;
132 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
133
134 pcie0_pins: pcie0_pinmux {
135 mux {
136 pins = "gpio3";
137 function = "pcie1_rst";
138 drive-strength = <12>;
139 bias-disable;
140 };
141 };
142
143 pcie1_pins: pcie1_pinmux {
144 mux {
145 pins = "gpio48";
146 function = "pcie2_rst";
147 drive-strength = <12>;
148 bias-disable;
149 };
150 };
151
152 pcie2_pins: pcie2_pinmux {
153 mux {
154 pins = "gpio63";
155 function = "pcie3_rst";
156 drive-strength = <12>;
157 bias-disable;
158 };
159 };
160
161 spi_pins: spi_pins {
162 mux {
163 pins = "gpio18", "gpio19", "gpio21";
164 function = "gsbi5";
165 drive-strength = <10>;
166 bias-none;
167 };
168 };
169
170 leds_pins: leds_pins {
171 mux {
172 pins = "gpio7", "gpio8", "gpio9",
173 "gpio26", "gpio53";
174 function = "gpio";
175 drive-strength = <2>;
176 bias-pull-down;
177 output-low;
178 };
179 };
180
181 buttons_pins: buttons_pins {
182 mux {
183 pins = "gpio54";
184 drive-strength = <2>;
185 bias-pull-up;
186 };
187 };
188 };
189
190 intc: interrupt-controller@2000000 {
191 compatible = "qcom,msm-qgic2";
192 interrupt-controller;
193 #interrupt-cells = <3>;
194 reg = <0x02000000 0x1000>,
195 <0x02002000 0x1000>;
196 };
197
198 timer@200a000 {
199 compatible = "qcom,kpss-timer",
200 "qcom,kpss-wdt-ipq8064", "qcom,msm-timer";
201 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) |
202 IRQ_TYPE_EDGE_RISING)>,
203 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) |
204 IRQ_TYPE_EDGE_RISING)>,
205 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) |
206 IRQ_TYPE_EDGE_RISING)>,
207 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) |
208 IRQ_TYPE_EDGE_RISING)>,
209 <GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) |
210 IRQ_TYPE_EDGE_RISING)>;
211 reg = <0x0200a000 0x100>;
212 clock-frequency = <25000000>,
213 <32768>;
214 clocks = <&sleep_clk>;
215 clock-names = "sleep";
216 cpu-offset = <0x80000>;
217 };
218
219 acc0: clock-controller@2088000 {
220 compatible = "qcom,kpss-acc-v1";
221 reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
222 };
223
224 acc1: clock-controller@2098000 {
225 compatible = "qcom,kpss-acc-v1";
226 reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
227 };
228
229 saw0: regulator@2089000 {
230 compatible = "qcom,saw2";
231 reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
232 regulator;
233 };
234
235 saw1: regulator@2099000 {
236 compatible = "qcom,saw2";
237 reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
238 regulator;
239 };
240
241 gsbi2: gsbi@12480000 {
242 compatible = "qcom,gsbi-v1.0.0";
243 cell-index = <2>;
244 reg = <0x12480000 0x100>;
245 clocks = <&gcc GSBI2_H_CLK>;
246 clock-names = "iface";
247 #address-cells = <1>;
248 #size-cells = <1>;
249 ranges;
250 status = "disabled";
251
252 syscon-tcsr = <&tcsr>;
253
254 serial@12490000 {
255 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
256 reg = <0x12490000 0x1000>,
257 <0x12480000 0x1000>;
258 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
259 clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>;
260 clock-names = "core", "iface";
261 status = "disabled";
262 };
263
264 i2c@124a0000 {
265 compatible = "qcom,i2c-qup-v1.1.1";
266 reg = <0x124a0000 0x1000>;
267 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
268
269 clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
270 clock-names = "core", "iface";
271 status = "disabled";
272
273 #address-cells = <1>;
274 #size-cells = <0>;
275 };
276
277 };
278
279 gsbi4: gsbi@16300000 {
280 compatible = "qcom,gsbi-v1.0.0";
281 cell-index = <4>;
282 reg = <0x16300000 0x100>;
283 clocks = <&gcc GSBI4_H_CLK>;
284 clock-names = "iface";
285 #address-cells = <1>;
286 #size-cells = <1>;
287 ranges;
288 status = "disabled";
289
290 syscon-tcsr = <&tcsr>;
291
292 gsbi4_serial: serial@16340000 {
293 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
294 reg = <0x16340000 0x1000>,
295 <0x16300000 0x1000>;
296 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
298 clock-names = "core", "iface";
299 status = "disabled";
300 };
301
302 i2c@16380000 {
303 compatible = "qcom,i2c-qup-v1.1.1";
304 reg = <0x16380000 0x1000>;
305 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
306
307 clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
308 clock-names = "core", "iface";
309 status = "disabled";
310
311 #address-cells = <1>;
312 #size-cells = <0>;
313 };
314 };
315
316 gsbi5: gsbi@1a200000 {
317 compatible = "qcom,gsbi-v1.0.0";
318 cell-index = <5>;
319 reg = <0x1a200000 0x100>;
320 clocks = <&gcc GSBI5_H_CLK>;
321 clock-names = "iface";
322 #address-cells = <1>;
323 #size-cells = <1>;
324 ranges;
325 status = "disabled";
326
327 syscon-tcsr = <&tcsr>;
328
329 serial@1a240000 {
330 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
331 reg = <0x1a240000 0x1000>,
332 <0x1a200000 0x1000>;
333 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
334 clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
335 clock-names = "core", "iface";
336 status = "disabled";
337 };
338
339 i2c@1a280000 {
340 compatible = "qcom,i2c-qup-v1.1.1";
341 reg = <0x1a280000 0x1000>;
342 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
343
344 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
345 clock-names = "core", "iface";
346 status = "disabled";
347
348 #address-cells = <1>;
349 #size-cells = <0>;
350 };
351
352 spi@1a280000 {
353 compatible = "qcom,spi-qup-v1.1.1";
354 reg = <0x1a280000 0x1000>;
355 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
356
357 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
358 clock-names = "core", "iface";
359 status = "disabled";
360
361 #address-cells = <1>;
362 #size-cells = <0>;
363 };
364 };
365
366 gsbi7: gsbi@16600000 {
367 status = "disabled";
368 compatible = "qcom,gsbi-v1.0.0";
369 cell-index = <7>;
370 reg = <0x16600000 0x100>;
371 clocks = <&gcc GSBI7_H_CLK>;
372 clock-names = "iface";
373 #address-cells = <1>;
374 #size-cells = <1>;
375 ranges;
376 syscon-tcsr = <&tcsr>;
377
378 gsbi7_serial: serial@16640000 {
379 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
380 reg = <0x16640000 0x1000>,
381 <0x16600000 0x1000>;
382 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
383 clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
384 clock-names = "core", "iface";
385 status = "disabled";
386 };
387 };
388
389 sata_phy: sata-phy@1b400000 {
390 compatible = "qcom,ipq806x-sata-phy";
391 reg = <0x1b400000 0x200>;
392
393 clocks = <&gcc SATA_PHY_CFG_CLK>;
394 clock-names = "cfg";
395
396 #phy-cells = <0>;
397 status = "disabled";
398 };
399
400 sata@29000000 {
401 compatible = "qcom,ipq806x-ahci", "generic-ahci";
402 reg = <0x29000000 0x180>;
403
404 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
405
406 clocks = <&gcc SFAB_SATA_S_H_CLK>,
407 <&gcc SATA_H_CLK>,
408 <&gcc SATA_A_CLK>,
409 <&gcc SATA_RXOOB_CLK>,
410 <&gcc SATA_PMALIVE_CLK>;
411 clock-names = "slave_face", "iface", "core",
412 "rxoob", "pmalive";
413
414 assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
415 assigned-clock-rates = <100000000>, <100000000>;
416
417 phys = <&sata_phy>;
418 phy-names = "sata-phy";
419 status = "disabled";
420 };
421
422 qcom,ssbi@500000 {
423 compatible = "qcom,ssbi";
424 reg = <0x00500000 0x1000>;
425 qcom,controller-type = "pmic-arbiter";
426 };
427
428 qfprom: qfprom@700000 {
429 compatible = "qcom,qfprom";
430 reg = <0x00700000 0x1000>;
431 #address-cells = <1>;
432 #size-cells = <1>;
433 };
434
435 gcc: clock-controller@900000 {
436 compatible = "qcom,gcc-ipq8064";
437 reg = <0x00900000 0x4000>;
438 #clock-cells = <1>;
439 #reset-cells = <1>;
440 };
441
442 tcsr: syscon@1a400000 {
443 compatible = "qcom,tcsr-ipq8064", "syscon";
444 reg = <0x1a400000 0x100>;
445 };
446
447 lcc: clock-controller@28000000 {
448 compatible = "qcom,lcc-ipq8064";
449 reg = <0x28000000 0x1000>;
450 #clock-cells = <1>;
451 #reset-cells = <1>;
452 };
453
454 pcie0: pci@1b500000 {
455 compatible = "qcom,pcie-ipq8064";
456 reg = <0x1b500000 0x1000
457 0x1b502000 0x80
458 0x1b600000 0x100
459 0x0ff00000 0x100000>;
460 reg-names = "dbi", "elbi", "parf", "config";
461 device_type = "pci";
462 linux,pci-domain = <0>;
463 bus-range = <0x00 0xff>;
464 num-lanes = <1>;
465 #address-cells = <3>;
466 #size-cells = <2>;
467
468 ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
469 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
470
471 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
472 interrupt-names = "msi";
473 #interrupt-cells = <1>;
474 interrupt-map-mask = <0 0 0 0x7>;
475 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
476 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
477 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
478 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
479
480 clocks = <&gcc PCIE_A_CLK>,
481 <&gcc PCIE_H_CLK>,
482 <&gcc PCIE_PHY_CLK>,
483 <&gcc PCIE_AUX_CLK>,
484 <&gcc PCIE_ALT_REF_CLK>;
485 clock-names = "core", "iface", "phy", "aux", "ref";
486
487 assigned-clocks = <&gcc PCIE_ALT_REF_CLK>;
488 assigned-clock-rates = <100000000>;
489
490 resets = <&gcc PCIE_ACLK_RESET>,
491 <&gcc PCIE_HCLK_RESET>,
492 <&gcc PCIE_POR_RESET>,
493 <&gcc PCIE_PCI_RESET>,
494 <&gcc PCIE_PHY_RESET>,
495 <&gcc PCIE_EXT_RESET>;
496 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
497
498 pinctrl-0 = <&pcie0_pins>;
499 pinctrl-names = "default";
500
501 status = "disabled";
502 perst-gpio = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
503 };
504
505 pcie1: pci@1b700000 {
506 compatible = "qcom,pcie-ipq8064";
507 reg = <0x1b700000 0x1000
508 0x1b702000 0x80
509 0x1b800000 0x100
510 0x31f00000 0x100000>;
511 reg-names = "dbi", "elbi", "parf", "config";
512 device_type = "pci";
513 linux,pci-domain = <1>;
514 bus-range = <0x00 0xff>;
515 num-lanes = <1>;
516 #address-cells = <3>;
517 #size-cells = <2>;
518
519 ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
520 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
521
522 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
523 interrupt-names = "msi";
524 #interrupt-cells = <1>;
525 interrupt-map-mask = <0 0 0 0x7>;
526 interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
527 <0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
528 <0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
529 <0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
530
531 clocks = <&gcc PCIE_1_A_CLK>,
532 <&gcc PCIE_1_H_CLK>,
533 <&gcc PCIE_1_PHY_CLK>,
534 <&gcc PCIE_1_AUX_CLK>,
535 <&gcc PCIE_1_ALT_REF_CLK>;
536 clock-names = "core", "iface", "phy", "aux", "ref";
537
538 assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>;
539 assigned-clock-rates = <100000000>;
540
541 resets = <&gcc PCIE_1_ACLK_RESET>,
542 <&gcc PCIE_1_HCLK_RESET>,
543 <&gcc PCIE_1_POR_RESET>,
544 <&gcc PCIE_1_PCI_RESET>,
545 <&gcc PCIE_1_PHY_RESET>,
546 <&gcc PCIE_1_EXT_RESET>;
547 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
548
549 pinctrl-0 = <&pcie1_pins>;
550 pinctrl-names = "default";
551
552 status = "disabled";
553 perst-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
554 };
555
556 pcie2: pci@1b900000 {
557 compatible = "qcom,pcie-ipq8064";
558 reg = <0x1b900000 0x1000
559 0x1b902000 0x80
560 0x1ba00000 0x100
561 0x35f00000 0x100000>;
562 reg-names = "dbi", "elbi", "parf", "config";
563 device_type = "pci";
564 linux,pci-domain = <2>;
565 bus-range = <0x00 0xff>;
566 num-lanes = <1>;
567 #address-cells = <3>;
568 #size-cells = <2>;
569
570 ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
571 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
572
573 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
574 interrupt-names = "msi";
575 #interrupt-cells = <1>;
576 interrupt-map-mask = <0 0 0 0x7>;
577 interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
578 <0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
579 <0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
580 <0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
581
582 clocks = <&gcc PCIE_2_A_CLK>,
583 <&gcc PCIE_2_H_CLK>,
584 <&gcc PCIE_2_PHY_CLK>,
585 <&gcc PCIE_2_AUX_CLK>,
586 <&gcc PCIE_2_ALT_REF_CLK>;
587 clock-names = "core", "iface", "phy", "aux", "ref";
588
589 assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>;
590 assigned-clock-rates = <100000000>;
591
592 resets = <&gcc PCIE_2_ACLK_RESET>,
593 <&gcc PCIE_2_HCLK_RESET>,
594 <&gcc PCIE_2_POR_RESET>,
595 <&gcc PCIE_2_PCI_RESET>,
596 <&gcc PCIE_2_PHY_RESET>,
597 <&gcc PCIE_2_EXT_RESET>;
598 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
599
600 pinctrl-0 = <&pcie2_pins>;
601 pinctrl-names = "default";
602
603 status = "disabled";
604 perst-gpio = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
605 };
606
607 nss_common: syscon@03000000 {
608 compatible = "syscon";
609 reg = <0x03000000 0x0000FFFF>;
610 };
611
612 qsgmii_csr: syscon@1bb00000 {
613 compatible = "syscon";
614 reg = <0x1bb00000 0x000001FF>;
615 };
616
617 stmmac_axi_setup: stmmac-axi-config {
618 snps,wr_osr_lmt = <7>;
619 snps,rd_osr_lmt = <7>;
620 snps,blen = <16 0 0 0 0 0 0>;
621 };
622
623 gmac0: ethernet@37000000 {
624 device_type = "network";
625 compatible = "qcom,ipq806x-gmac";
626 reg = <0x37000000 0x200000>;
627 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
628 interrupt-names = "macirq";
629
630 snps,axi-config = <&stmmac_axi_setup>;
631 snps,pbl = <32>;
632 snps,aal = <1>;
633
634 qcom,nss-common = <&nss_common>;
635 qcom,qsgmii-csr = <&qsgmii_csr>;
636
637 clocks = <&gcc GMAC_CORE1_CLK>;
638 clock-names = "stmmaceth";
639
640 resets = <&gcc GMAC_CORE1_RESET>;
641 reset-names = "stmmaceth";
642
643 status = "disabled";
644 };
645
646 gmac1: ethernet@37200000 {
647 device_type = "network";
648 compatible = "qcom,ipq806x-gmac";
649 reg = <0x37200000 0x200000>;
650 interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
651 interrupt-names = "macirq";
652
653 snps,axi-config = <&stmmac_axi_setup>;
654 snps,pbl = <32>;
655 snps,aal = <1>;
656
657 qcom,nss-common = <&nss_common>;
658 qcom,qsgmii-csr = <&qsgmii_csr>;
659
660 clocks = <&gcc GMAC_CORE2_CLK>;
661 clock-names = "stmmaceth";
662
663 resets = <&gcc GMAC_CORE2_RESET>;
664 reset-names = "stmmaceth";
665
666 status = "disabled";
667 };
668
669 gmac2: ethernet@37400000 {
670 device_type = "network";
671 compatible = "qcom,ipq806x-gmac";
672 reg = <0x37400000 0x200000>;
673 interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
674 interrupt-names = "macirq";
675
676 snps,axi-config = <&stmmac_axi_setup>;
677 snps,pbl = <32>;
678 snps,aal = <1>;
679
680 qcom,nss-common = <&nss_common>;
681 qcom,qsgmii-csr = <&qsgmii_csr>;
682
683 clocks = <&gcc GMAC_CORE3_CLK>;
684 clock-names = "stmmaceth";
685
686 resets = <&gcc GMAC_CORE3_RESET>;
687 reset-names = "stmmaceth";
688
689 status = "disabled";
690 };
691
692 gmac3: ethernet@37600000 {
693 device_type = "network";
694 compatible = "qcom,ipq806x-gmac";
695 reg = <0x37600000 0x200000>;
696 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
697 interrupt-names = "macirq";
698
699 snps,axi-config = <&stmmac_axi_setup>;
700 snps,pbl = <32>;
701 snps,aal = <1>;
702
703 qcom,nss-common = <&nss_common>;
704 qcom,qsgmii-csr = <&qsgmii_csr>;
705
706 clocks = <&gcc GMAC_CORE4_CLK>;
707 clock-names = "stmmaceth";
708
709 resets = <&gcc GMAC_CORE4_RESET>;
710 reset-names = "stmmaceth";
711
712 status = "disabled";
713 };
714
715 vsdcc_fixed: vsdcc-regulator {
716 compatible = "regulator-fixed";
717 regulator-name = "SDCC Power";
718 regulator-min-microvolt = <3300000>;
719 regulator-max-microvolt = <3300000>;
720 regulator-always-on;
721 };
722
723 sdcc1bam:dma@12402000 {
724 compatible = "qcom,bam-v1.3.0";
725 reg = <0x12402000 0x8000>;
726 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
727 clocks = <&gcc SDC1_H_CLK>;
728 clock-names = "bam_clk";
729 #dma-cells = <1>;
730 qcom,ee = <0>;
731 };
732
733 sdcc3bam:dma@12182000 {
734 compatible = "qcom,bam-v1.3.0";
735 reg = <0x12182000 0x8000>;
736 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
737 clocks = <&gcc SDC3_H_CLK>;
738 clock-names = "bam_clk";
739 #dma-cells = <1>;
740 qcom,ee = <0>;
741 };
742
743 amba {
744 compatible = "simple-bus";
745 #address-cells = <1>;
746 #size-cells = <1>;
747 ranges;
748
749 sdcc@12400000 {
750 status = "disabled";
751 compatible = "arm,pl18x", "arm,primecell";
752 arm,primecell-periphid = <0x00051180>;
753 reg = <0x12400000 0x2000>;
754 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
755 interrupt-names = "cmd_irq";
756 clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
757 clock-names = "mclk", "apb_pclk";
758 bus-width = <8>;
759 max-frequency = <96000000>;
760 non-removable;
761 cap-sd-highspeed;
762 cap-mmc-highspeed;
763 mmc-ddr-1_8v;
764 vmmc-supply = <&vsdcc_fixed>;
765 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
766 dma-names = "tx", "rx";
767 };
768
769 sdcc@12180000 {
770 compatible = "arm,pl18x", "arm,primecell";
771 arm,primecell-periphid = <0x00051180>;
772 status = "disabled";
773 reg = <0x12180000 0x2000>;
774 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
775 interrupt-names = "cmd_irq";
776 clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
777 clock-names = "mclk", "apb_pclk";
778 bus-width = <8>;
779 cap-sd-highspeed;
780 cap-mmc-highspeed;
781 max-frequency = <192000000>;
782 #mmc-ddr-1_8v;
783 sd-uhs-sdr104;
784 sd-uhs-ddr50;
785 vqmmc-supply = <&vsdcc_fixed>;
786 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
787 dma-names = "tx", "rx";
788 };
789 };
790 };
791};