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/clock/qcom,gcc-msm8974.h>
6#include <dt-bindings/clock/qcom,rpmcc.h>
7#include <dt-bindings/reset/qcom,gcc-msm8974.h>
8#include <dt-bindings/gpio/gpio.h>
9#include "skeleton.dtsi"
10
11/ {
12 model = "Qualcomm MSM8974";
13 compatible = "qcom,msm8974";
14 interrupt-parent = <&intc>;
15
16 reserved-memory {
17 #address-cells = <1>;
18 #size-cells = <1>;
19 ranges;
20
21 mpss@8000000 {
22 reg = <0x08000000 0x5100000>;
23 no-map;
24 };
25
26 mba@d100000 {
27 reg = <0x0d100000 0x100000>;
28 no-map;
29 };
30
31 reserved@d200000 {
32 reg = <0x0d200000 0xa00000>;
33 no-map;
34 };
35
36 adsp_region: adsp@dc00000 {
37 reg = <0x0dc00000 0x1900000>;
38 no-map;
39 };
40
41 venus@f500000 {
42 reg = <0x0f500000 0x500000>;
43 no-map;
44 };
45
46 smem_region: smem@fa00000 {
47 reg = <0xfa00000 0x200000>;
48 no-map;
49 };
50
51 tz@fc00000 {
52 reg = <0x0fc00000 0x160000>;
53 no-map;
54 };
55
56 rfsa@fd60000 {
57 reg = <0x0fd60000 0x20000>;
58 no-map;
59 };
60
61 rmtfs@fd80000 {
62 reg = <0x0fd80000 0x180000>;
63 no-map;
64 };
65 };
66
67 cpus {
68 #address-cells = <1>;
69 #size-cells = <0>;
70 interrupts = <1 9 0xf04>;
71
72 CPU0: cpu@0 {
73 compatible = "qcom,krait";
74 enable-method = "qcom,kpss-acc-v2";
75 device_type = "cpu";
76 reg = <0>;
77 next-level-cache = <&L2>;
78 qcom,acc = <&acc0>;
79 qcom,saw = <&saw0>;
80 cpu-idle-states = <&CPU_SPC>;
81 };
82
83 CPU1: cpu@1 {
84 compatible = "qcom,krait";
85 enable-method = "qcom,kpss-acc-v2";
86 device_type = "cpu";
87 reg = <1>;
88 next-level-cache = <&L2>;
89 qcom,acc = <&acc1>;
90 qcom,saw = <&saw1>;
91 cpu-idle-states = <&CPU_SPC>;
92 };
93
94 CPU2: cpu@2 {
95 compatible = "qcom,krait";
96 enable-method = "qcom,kpss-acc-v2";
97 device_type = "cpu";
98 reg = <2>;
99 next-level-cache = <&L2>;
100 qcom,acc = <&acc2>;
101 qcom,saw = <&saw2>;
102 cpu-idle-states = <&CPU_SPC>;
103 };
104
105 CPU3: cpu@3 {
106 compatible = "qcom,krait";
107 enable-method = "qcom,kpss-acc-v2";
108 device_type = "cpu";
109 reg = <3>;
110 next-level-cache = <&L2>;
111 qcom,acc = <&acc3>;
112 qcom,saw = <&saw3>;
113 cpu-idle-states = <&CPU_SPC>;
114 };
115
116 L2: l2-cache {
117 compatible = "cache";
118 cache-level = <2>;
119 qcom,saw = <&saw_l2>;
120 };
121
122 idle-states {
123 CPU_SPC: spc {
124 compatible = "qcom,idle-state-spc",
125 "arm,idle-state";
126 entry-latency-us = <150>;
127 exit-latency-us = <200>;
128 min-residency-us = <2000>;
129 };
130 };
131 };
132
133 thermal-zones {
134 cpu-thermal0 {
135 polling-delay-passive = <250>;
136 polling-delay = <1000>;
137
138 thermal-sensors = <&tsens 5>;
139
140 trips {
141 cpu_alert0: trip0 {
142 temperature = <75000>;
143 hysteresis = <2000>;
144 type = "passive";
145 };
146 cpu_crit0: trip1 {
147 temperature = <110000>;
148 hysteresis = <2000>;
149 type = "critical";
150 };
151 };
152 };
153
154 cpu-thermal1 {
155 polling-delay-passive = <250>;
156 polling-delay = <1000>;
157
158 thermal-sensors = <&tsens 6>;
159
160 trips {
161 cpu_alert1: trip0 {
162 temperature = <75000>;
163 hysteresis = <2000>;
164 type = "passive";
165 };
166 cpu_crit1: trip1 {
167 temperature = <110000>;
168 hysteresis = <2000>;
169 type = "critical";
170 };
171 };
172 };
173
174 cpu-thermal2 {
175 polling-delay-passive = <250>;
176 polling-delay = <1000>;
177
178 thermal-sensors = <&tsens 7>;
179
180 trips {
181 cpu_alert2: trip0 {
182 temperature = <75000>;
183 hysteresis = <2000>;
184 type = "passive";
185 };
186 cpu_crit2: trip1 {
187 temperature = <110000>;
188 hysteresis = <2000>;
189 type = "critical";
190 };
191 };
192 };
193
194 cpu-thermal3 {
195 polling-delay-passive = <250>;
196 polling-delay = <1000>;
197
198 thermal-sensors = <&tsens 8>;
199
200 trips {
201 cpu_alert3: trip0 {
202 temperature = <75000>;
203 hysteresis = <2000>;
204 type = "passive";
205 };
206 cpu_crit3: trip1 {
207 temperature = <110000>;
208 hysteresis = <2000>;
209 type = "critical";
210 };
211 };
212 };
213 };
214
215 cpu-pmu {
216 compatible = "qcom,krait-pmu";
217 interrupts = <1 7 0xf04>;
218 };
219
220 clocks {
221 xo_board: xo_board {
222 compatible = "fixed-clock";
223 #clock-cells = <0>;
224 clock-frequency = <19200000>;
225 };
226
227 sleep_clk: sleep_clk {
228 compatible = "fixed-clock";
229 #clock-cells = <0>;
230 clock-frequency = <32768>;
231 };
232 };
233
234 timer {
235 compatible = "arm,armv7-timer";
236 interrupts = <1 2 0xf08>,
237 <1 3 0xf08>,
238 <1 4 0xf08>,
239 <1 1 0xf08>;
240 clock-frequency = <19200000>;
241 };
242
243 adsp-pil {
244 compatible = "qcom,msm8974-adsp-pil";
245
246 interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
247 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
248 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
249 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
250 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
251 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
252
253 cx-supply = <&pm8841_s2>;
254
255 clocks = <&xo_board>;
256 clock-names = "xo";
257
258 memory-region = <&adsp_region>;
259
260 qcom,smem-states = <&adsp_smp2p_out 0>;
261 qcom,smem-state-names = "stop";
262 };
263
264 smem {
265 compatible = "qcom,smem";
266
267 memory-region = <&smem_region>;
268 qcom,rpm-msg-ram = <&rpm_msg_ram>;
269
270 hwlocks = <&tcsr_mutex 3>;
271 };
272
273 smp2p-adsp {
274 compatible = "qcom,smp2p";
275 qcom,smem = <443>, <429>;
276
277 interrupt-parent = <&intc>;
278 interrupts = <0 158 IRQ_TYPE_EDGE_RISING>;
279
280 qcom,ipc = <&apcs 8 10>;
281
282 qcom,local-pid = <0>;
283 qcom,remote-pid = <2>;
284
285 adsp_smp2p_out: master-kernel {
286 qcom,entry-name = "master-kernel";
287 #qcom,smem-state-cells = <1>;
288 };
289
290 adsp_smp2p_in: slave-kernel {
291 qcom,entry-name = "slave-kernel";
292
293 interrupt-controller;
294 #interrupt-cells = <2>;
295 };
296 };
297
298 smp2p-modem {
299 compatible = "qcom,smp2p";
300 qcom,smem = <435>, <428>;
301
302 interrupt-parent = <&intc>;
303 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
304
305 qcom,ipc = <&apcs 8 14>;
306
307 qcom,local-pid = <0>;
308 qcom,remote-pid = <1>;
309
310 modem_smp2p_out: master-kernel {
311 qcom,entry-name = "master-kernel";
312 #qcom,smem-state-cells = <1>;
313 };
314
315 modem_smp2p_in: slave-kernel {
316 qcom,entry-name = "slave-kernel";
317
318 interrupt-controller;
319 #interrupt-cells = <2>;
320 };
321 };
322
323 smp2p-wcnss {
324 compatible = "qcom,smp2p";
325 qcom,smem = <451>, <431>;
326
327 interrupt-parent = <&intc>;
328 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
329
330 qcom,ipc = <&apcs 8 18>;
331
332 qcom,local-pid = <0>;
333 qcom,remote-pid = <4>;
334
335 wcnss_smp2p_out: master-kernel {
336 qcom,entry-name = "master-kernel";
337
338 #qcom,smem-state-cells = <1>;
339 };
340
341 wcnss_smp2p_in: slave-kernel {
342 qcom,entry-name = "slave-kernel";
343
344 interrupt-controller;
345 #interrupt-cells = <2>;
346 };
347 };
348
349 smsm {
350 compatible = "qcom,smsm";
351
352 #address-cells = <1>;
353 #size-cells = <0>;
354
355 qcom,ipc-1 = <&apcs 8 13>;
356 qcom,ipc-2 = <&apcs 8 9>;
357 qcom,ipc-3 = <&apcs 8 19>;
358
359 apps_smsm: apps@0 {
360 reg = <0>;
361
362 #qcom,smem-state-cells = <1>;
363 };
364
365 modem_smsm: modem@1 {
366 reg = <1>;
367 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
368
369 interrupt-controller;
370 #interrupt-cells = <2>;
371 };
372
373 adsp_smsm: adsp@2 {
374 reg = <2>;
375 interrupts = <0 157 IRQ_TYPE_EDGE_RISING>;
376
377 interrupt-controller;
378 #interrupt-cells = <2>;
379 };
380
381 wcnss_smsm: wcnss@7 {
382 reg = <7>;
383 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
384
385 interrupt-controller;
386 #interrupt-cells = <2>;
387 };
388 };
389
390 firmware {
391 scm {
392 compatible = "qcom,scm";
393 clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
394 clock-names = "core", "bus", "iface";
395 };
396 };
397
398 soc: soc {
399 #address-cells = <1>;
400 #size-cells = <1>;
401 ranges;
402 compatible = "simple-bus";
403
404 intc: interrupt-controller@f9000000 {
405 compatible = "qcom,msm-qgic2";
406 interrupt-controller;
407 #interrupt-cells = <3>;
408 reg = <0xf9000000 0x1000>,
409 <0xf9002000 0x1000>;
410 };
411
412 apcs: syscon@f9011000 {
413 compatible = "syscon";
414 reg = <0xf9011000 0x1000>;
415 };
416
417 qfprom: qfprom@fc4bc000 {
418 #address-cells = <1>;
419 #size-cells = <1>;
420 compatible = "qcom,qfprom";
421 reg = <0xfc4bc000 0x1000>;
422 tsens_calib: calib@d0 {
423 reg = <0xd0 0x18>;
424 };
425 tsens_backup: backup@440 {
426 reg = <0x440 0x10>;
427 };
428 };
429
430 tsens: thermal-sensor@fc4a8000 {
431 compatible = "qcom,msm8974-tsens";
432 reg = <0xfc4a8000 0x2000>;
433 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
434 nvmem-cell-names = "calib", "calib_backup";
435 #thermal-sensor-cells = <1>;
436 };
437
438 timer@f9020000 {
439 #address-cells = <1>;
440 #size-cells = <1>;
441 ranges;
442 compatible = "arm,armv7-timer-mem";
443 reg = <0xf9020000 0x1000>;
444 clock-frequency = <19200000>;
445
446 frame@f9021000 {
447 frame-number = <0>;
448 interrupts = <0 8 0x4>,
449 <0 7 0x4>;
450 reg = <0xf9021000 0x1000>,
451 <0xf9022000 0x1000>;
452 };
453
454 frame@f9023000 {
455 frame-number = <1>;
456 interrupts = <0 9 0x4>;
457 reg = <0xf9023000 0x1000>;
458 status = "disabled";
459 };
460
461 frame@f9024000 {
462 frame-number = <2>;
463 interrupts = <0 10 0x4>;
464 reg = <0xf9024000 0x1000>;
465 status = "disabled";
466 };
467
468 frame@f9025000 {
469 frame-number = <3>;
470 interrupts = <0 11 0x4>;
471 reg = <0xf9025000 0x1000>;
472 status = "disabled";
473 };
474
475 frame@f9026000 {
476 frame-number = <4>;
477 interrupts = <0 12 0x4>;
478 reg = <0xf9026000 0x1000>;
479 status = "disabled";
480 };
481
482 frame@f9027000 {
483 frame-number = <5>;
484 interrupts = <0 13 0x4>;
485 reg = <0xf9027000 0x1000>;
486 status = "disabled";
487 };
488
489 frame@f9028000 {
490 frame-number = <6>;
491 interrupts = <0 14 0x4>;
492 reg = <0xf9028000 0x1000>;
493 status = "disabled";
494 };
495 };
496
497 saw0: power-controller@f9089000 {
498 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
499 reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
500 };
501
502 saw1: power-controller@f9099000 {
503 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
504 reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
505 };
506
507 saw2: power-controller@f90a9000 {
508 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
509 reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
510 };
511
512 saw3: power-controller@f90b9000 {
513 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
514 reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
515 };
516
517 saw_l2: power-controller@f9012000 {
518 compatible = "qcom,saw2";
519 reg = <0xf9012000 0x1000>;
520 regulator;
521 };
522
523 acc0: clock-controller@f9088000 {
524 compatible = "qcom,kpss-acc-v2";
525 reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>;
526 };
527
528 acc1: clock-controller@f9098000 {
529 compatible = "qcom,kpss-acc-v2";
530 reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>;
531 };
532
533 acc2: clock-controller@f90a8000 {
534 compatible = "qcom,kpss-acc-v2";
535 reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>;
536 };
537
538 acc3: clock-controller@f90b8000 {
539 compatible = "qcom,kpss-acc-v2";
540 reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
541 };
542
543 restart@fc4ab000 {
544 compatible = "qcom,pshold";
545 reg = <0xfc4ab000 0x4>;
546 };
547
548 gcc: clock-controller@fc400000 {
549 compatible = "qcom,gcc-msm8974";
550 #clock-cells = <1>;
551 #reset-cells = <1>;
552 #power-domain-cells = <1>;
553 reg = <0xfc400000 0x4000>;
554 };
555
556 tcsr: syscon@fd4a0000 {
557 compatible = "syscon";
558 reg = <0xfd4a0000 0x10000>;
559 };
560
561 tcsr_mutex_block: syscon@fd484000 {
562 compatible = "syscon";
563 reg = <0xfd484000 0x2000>;
564 };
565
566 mmcc: clock-controller@fd8c0000 {
567 compatible = "qcom,mmcc-msm8974";
568 #clock-cells = <1>;
569 #reset-cells = <1>;
570 #power-domain-cells = <1>;
571 reg = <0xfd8c0000 0x6000>;
572 };
573
574 tcsr_mutex: tcsr-mutex {
575 compatible = "qcom,tcsr-mutex";
576 syscon = <&tcsr_mutex_block 0 0x80>;
577
578 #hwlock-cells = <1>;
579 };
580
581 rpm_msg_ram: memory@fc428000 {
582 compatible = "qcom,rpm-msg-ram";
583 reg = <0xfc428000 0x4000>;
584 };
585
586 blsp1_uart1: serial@f991d000 {
587 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
588 reg = <0xf991d000 0x1000>;
589 interrupts = <0 107 0x0>;
590 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
591 clock-names = "core", "iface";
592 status = "disabled";
593 };
594
595 blsp1_uart2: serial@f991e000 {
596 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
597 reg = <0xf991e000 0x1000>;
598 interrupts = <0 108 0x0>;
599 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
600 clock-names = "core", "iface";
601 status = "disabled";
602 };
603
604 sdhci@f9824900 {
605 compatible = "qcom,sdhci-msm-v4";
606 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
607 reg-names = "hc_mem", "core_mem";
608 interrupts = <0 123 0>, <0 138 0>;
609 interrupt-names = "hc_irq", "pwr_irq";
610 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
611 <&gcc GCC_SDCC1_AHB_CLK>,
612 <&xo_board>;
613 clock-names = "core", "iface", "xo";
614 status = "disabled";
615 };
616
617 sdhci@f9864900 {
618 compatible = "qcom,sdhci-msm-v4";
619 reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
620 reg-names = "hc_mem", "core_mem";
621 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>,
622 <GIC_SPI 224 IRQ_TYPE_NONE>;
623 interrupt-names = "hc_irq", "pwr_irq";
624 clocks = <&gcc GCC_SDCC3_APPS_CLK>,
625 <&gcc GCC_SDCC3_AHB_CLK>,
626 <&xo_board>;
627 clock-names = "core", "iface", "xo";
628 status = "disabled";
629 };
630
631 sdhci@f98a4900 {
632 compatible = "qcom,sdhci-msm-v4";
633 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
634 reg-names = "hc_mem", "core_mem";
635 interrupts = <0 125 0>, <0 221 0>;
636 interrupt-names = "hc_irq", "pwr_irq";
637 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
638 <&gcc GCC_SDCC2_AHB_CLK>,
639 <&xo_board>;
640 clock-names = "core", "iface", "xo";
641 status = "disabled";
642 };
643
644 otg: usb@f9a55000 {
645 compatible = "qcom,ci-hdrc";
646 reg = <0xf9a55000 0x200>,
647 <0xf9a55200 0x200>;
648 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
649 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
650 <&gcc GCC_USB_HS_SYSTEM_CLK>;
651 clock-names = "iface", "core";
652 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
653 assigned-clock-rates = <75000000>;
654 resets = <&gcc GCC_USB_HS_BCR>;
655 reset-names = "core";
656 phy_type = "ulpi";
657 dr_mode = "otg";
658 ahb-burst-config = <0>;
659 phy-names = "usb-phy";
660 status = "disabled";
661 #reset-cells = <1>;
662
663 ulpi {
664 usb_hs1_phy: phy@a {
665 compatible = "qcom,usb-hs-phy-msm8974",
666 "qcom,usb-hs-phy";
667 #phy-cells = <0>;
668 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
669 clock-names = "ref", "sleep";
670 resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
671 reset-names = "phy", "por";
672 status = "disabled";
673 };
674
675 usb_hs2_phy: phy@b {
676 compatible = "qcom,usb-hs-phy-msm8974",
677 "qcom,usb-hs-phy";
678 #phy-cells = <0>;
679 clocks = <&xo_board>, <&gcc GCC_USB2B_PHY_SLEEP_CLK>;
680 clock-names = "ref", "sleep";
681 resets = <&gcc GCC_USB2B_PHY_BCR>, <&otg 1>;
682 reset-names = "phy", "por";
683 status = "disabled";
684 };
685 };
686 };
687
688 rng@f9bff000 {
689 compatible = "qcom,prng";
690 reg = <0xf9bff000 0x200>;
691 clocks = <&gcc GCC_PRNG_AHB_CLK>;
692 clock-names = "core";
693 };
694
695 msmgpio: pinctrl@fd510000 {
696 compatible = "qcom,msm8974-pinctrl";
697 reg = <0xfd510000 0x4000>;
698 gpio-controller;
699 #gpio-cells = <2>;
700 interrupt-controller;
701 #interrupt-cells = <2>;
702 interrupts = <0 208 0>;
703 };
704
705 i2c@f9924000 {
706 status = "disabled";
707 compatible = "qcom,i2c-qup-v2.1.1";
708 reg = <0xf9924000 0x1000>;
709 interrupts = <0 96 IRQ_TYPE_NONE>;
710 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
711 clock-names = "core", "iface";
712 #address-cells = <1>;
713 #size-cells = <0>;
714 };
715
716 blsp_i2c8: i2c@f9964000 {
717 status = "disabled";
718 compatible = "qcom,i2c-qup-v2.1.1";
719 reg = <0xf9964000 0x1000>;
720 interrupts = <0 102 IRQ_TYPE_NONE>;
721 clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
722 clock-names = "core", "iface";
723 #address-cells = <1>;
724 #size-cells = <0>;
725 };
726
727 blsp_i2c11: i2c@f9967000 {
728 status = "disabled";
729 compatible = "qcom,i2c-qup-v2.1.1";
730 reg = <0xf9967000 0x1000>;
731 interrupts = <0 105 IRQ_TYPE_NONE>;
732 clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
733 clock-names = "core", "iface";
734 #address-cells = <1>;
735 #size-cells = <0>;
736 dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
737 dma-names = "tx", "rx";
738 };
739
740 spmi_bus: spmi@fc4cf000 {
741 compatible = "qcom,spmi-pmic-arb";
742 reg-names = "core", "intr", "cnfg";
743 reg = <0xfc4cf000 0x1000>,
744 <0xfc4cb000 0x1000>,
745 <0xfc4ca000 0x1000>;
746 interrupt-names = "periph_irq";
747 interrupts = <0 190 0>;
748 qcom,ee = <0>;
749 qcom,channel = <0>;
750 #address-cells = <2>;
751 #size-cells = <0>;
752 interrupt-controller;
753 #interrupt-cells = <4>;
754 };
755
756 blsp2_dma: dma-controller@f9944000 {
757 compatible = "qcom,bam-v1.4.0";
758 reg = <0xf9944000 0x19000>;
759 interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
760 clocks = <&gcc GCC_BLSP2_AHB_CLK>;
761 clock-names = "bam_clk";
762 #dma-cells = <1>;
763 qcom,ee = <0>;
764 };
765
766 etr@fc322000 {
767 compatible = "arm,coresight-tmc", "arm,primecell";
768 reg = <0xfc322000 0x1000>;
769
770 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
771 clock-names = "apb_pclk", "atclk";
772
773 port {
774 etr_in: endpoint {
775 slave-mode;
776 remote-endpoint = <&replicator_out0>;
777 };
778 };
779 };
780
781 tpiu@fc318000 {
782 compatible = "arm,coresight-tpiu", "arm,primecell";
783 reg = <0xfc318000 0x1000>;
784
785 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
786 clock-names = "apb_pclk", "atclk";
787
788 port {
789 tpiu_in: endpoint {
790 slave-mode;
791 remote-endpoint = <&replicator_out1>;
792 };
793 };
794 };
795
796 replicator@fc31c000 {
797 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
798 reg = <0xfc31c000 0x1000>;
799
800 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
801 clock-names = "apb_pclk", "atclk";
802
803 ports {
804 #address-cells = <1>;
805 #size-cells = <0>;
806
807 port@0 {
808 reg = <0>;
809 replicator_out0: endpoint {
810 remote-endpoint = <&etr_in>;
811 };
812 };
813 port@1 {
814 reg = <1>;
815 replicator_out1: endpoint {
816 remote-endpoint = <&tpiu_in>;
817 };
818 };
819 port@2 {
820 reg = <0>;
821 replicator_in: endpoint {
822 slave-mode;
823 remote-endpoint = <&etf_out>;
824 };
825 };
826 };
827 };
828
829 etf@fc307000 {
830 compatible = "arm,coresight-tmc", "arm,primecell";
831 reg = <0xfc307000 0x1000>;
832
833 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
834 clock-names = "apb_pclk", "atclk";
835
836 ports {
837 #address-cells = <1>;
838 #size-cells = <0>;
839
840 port@0 {
841 reg = <0>;
842 etf_out: endpoint {
843 remote-endpoint = <&replicator_in>;
844 };
845 };
846 port@1 {
847 reg = <0>;
848 etf_in: endpoint {
849 slave-mode;
850 remote-endpoint = <&merger_out>;
851 };
852 };
853 };
854 };
855
856 funnel@fc31b000 {
857 compatible = "arm,coresight-funnel", "arm,primecell";
858 reg = <0xfc31b000 0x1000>;
859
860 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
861 clock-names = "apb_pclk", "atclk";
862
863 ports {
864 #address-cells = <1>;
865 #size-cells = <0>;
866
867 /*
868 * Not described input ports:
869 * 0 - connected trought funnel to Audio, Modem and
870 * Resource and Power Manager CPU's
871 * 2...7 - not-connected
872 */
873 port@1 {
874 reg = <1>;
875 merger_in1: endpoint {
876 slave-mode;
877 remote-endpoint = <&funnel1_out>;
878 };
879 };
880 port@8 {
881 reg = <0>;
882 merger_out: endpoint {
883 remote-endpoint = <&etf_in>;
884 };
885 };
886 };
887 };
888
889 funnel@fc31a000 {
890 compatible = "arm,coresight-funnel", "arm,primecell";
891 reg = <0xfc31a000 0x1000>;
892
893 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
894 clock-names = "apb_pclk", "atclk";
895
896 ports {
897 #address-cells = <1>;
898 #size-cells = <0>;
899
900 /*
901 * Not described input ports:
902 * 0 - not-connected
903 * 1 - connected trought funnel to Multimedia CPU
904 * 2 - connected to Wireless CPU
905 * 3 - not-connected
906 * 4 - not-connected
907 * 6 - not-connected
908 * 7 - connected to STM
909 */
910 port@5 {
911 reg = <5>;
912 funnel1_in5: endpoint {
913 slave-mode;
914 remote-endpoint = <&kpss_out>;
915 };
916 };
917 port@8 {
918 reg = <0>;
919 funnel1_out: endpoint {
920 remote-endpoint = <&merger_in1>;
921 };
922 };
923 };
924 };
925
926 funnel@fc345000 { /* KPSS funnel only 4 inputs are used */
927 compatible = "arm,coresight-funnel", "arm,primecell";
928 reg = <0xfc345000 0x1000>;
929
930 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
931 clock-names = "apb_pclk", "atclk";
932
933 ports {
934 #address-cells = <1>;
935 #size-cells = <0>;
936
937 port@0 {
938 reg = <0>;
939 kpss_in0: endpoint {
940 slave-mode;
941 remote-endpoint = <&etm0_out>;
942 };
943 };
944 port@1 {
945 reg = <1>;
946 kpss_in1: endpoint {
947 slave-mode;
948 remote-endpoint = <&etm1_out>;
949 };
950 };
951 port@2 {
952 reg = <2>;
953 kpss_in2: endpoint {
954 slave-mode;
955 remote-endpoint = <&etm2_out>;
956 };
957 };
958 port@3 {
959 reg = <3>;
960 kpss_in3: endpoint {
961 slave-mode;
962 remote-endpoint = <&etm3_out>;
963 };
964 };
965 port@8 {
966 reg = <0>;
967 kpss_out: endpoint {
968 remote-endpoint = <&funnel1_in5>;
969 };
970 };
971 };
972 };
973
974 etm@fc33c000 {
975 compatible = "arm,coresight-etm4x", "arm,primecell";
976 reg = <0xfc33c000 0x1000>;
977
978 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
979 clock-names = "apb_pclk", "atclk";
980
981 cpu = <&CPU0>;
982
983 port {
984 etm0_out: endpoint {
985 remote-endpoint = <&kpss_in0>;
986 };
987 };
988 };
989
990 etm@fc33d000 {
991 compatible = "arm,coresight-etm4x", "arm,primecell";
992 reg = <0xfc33d000 0x1000>;
993
994 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
995 clock-names = "apb_pclk", "atclk";
996
997 cpu = <&CPU1>;
998
999 port {
1000 etm1_out: endpoint {
1001 remote-endpoint = <&kpss_in1>;
1002 };
1003 };
1004 };
1005
1006 etm@fc33e000 {
1007 compatible = "arm,coresight-etm4x", "arm,primecell";
1008 reg = <0xfc33e000 0x1000>;
1009
1010 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1011 clock-names = "apb_pclk", "atclk";
1012
1013 cpu = <&CPU2>;
1014
1015 port {
1016 etm2_out: endpoint {
1017 remote-endpoint = <&kpss_in2>;
1018 };
1019 };
1020 };
1021
1022 etm@fc33f000 {
1023 compatible = "arm,coresight-etm4x", "arm,primecell";
1024 reg = <0xfc33f000 0x1000>;
1025
1026 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1027 clock-names = "apb_pclk", "atclk";
1028
1029 cpu = <&CPU3>;
1030
1031 port {
1032 etm3_out: endpoint {
1033 remote-endpoint = <&kpss_in3>;
1034 };
1035 };
1036 };
1037 };
1038
1039 smd {
1040 compatible = "qcom,smd";
1041
1042 adsp {
1043 interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;
1044
1045 qcom,ipc = <&apcs 8 8>;
1046 qcom,smd-edge = <1>;
1047 };
1048
1049 modem {
1050 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
1051
1052 qcom,ipc = <&apcs 8 12>;
1053 qcom,smd-edge = <0>;
1054 };
1055
1056 rpm {
1057 interrupts = <0 168 1>;
1058 qcom,ipc = <&apcs 8 0>;
1059 qcom,smd-edge = <15>;
1060
1061 rpm_requests {
1062 compatible = "qcom,rpm-msm8974";
1063 qcom,smd-channels = "rpm_requests";
1064
1065 rpmcc: clock-controller {
1066 compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
1067 #clock-cells = <1>;
1068 };
1069
1070 pm8841-regulators {
1071 compatible = "qcom,rpm-pm8841-regulators";
1072
1073 pm8841_s1: s1 {};
1074 pm8841_s2: s2 {};
1075 pm8841_s3: s3 {};
1076 pm8841_s4: s4 {};
1077 pm8841_s5: s5 {};
1078 pm8841_s6: s6 {};
1079 pm8841_s7: s7 {};
1080 pm8841_s8: s8 {};
1081 };
1082
1083 pm8941-regulators {
1084 compatible = "qcom,rpm-pm8941-regulators";
1085
1086 pm8941_s1: s1 {};
1087 pm8941_s2: s2 {};
1088 pm8941_s3: s3 {};
1089
1090 pm8941_l1: l1 {};
1091 pm8941_l2: l2 {};
1092 pm8941_l3: l3 {};
1093 pm8941_l4: l4 {};
1094 pm8941_l5: l5 {};
1095 pm8941_l6: l6 {};
1096 pm8941_l7: l7 {};
1097 pm8941_l8: l8 {};
1098 pm8941_l9: l9 {};
1099 pm8941_l10: l10 {};
1100 pm8941_l11: l11 {};
1101 pm8941_l12: l12 {};
1102 pm8941_l13: l13 {};
1103 pm8941_l14: l14 {};
1104 pm8941_l15: l15 {};
1105 pm8941_l16: l16 {};
1106 pm8941_l17: l17 {};
1107 pm8941_l18: l18 {};
1108 pm8941_l19: l19 {};
1109 pm8941_l20: l20 {};
1110 pm8941_l21: l21 {};
1111 pm8941_l22: l22 {};
1112 pm8941_l23: l23 {};
1113 pm8941_l24: l24 {};
1114
1115 pm8941_lvs1: lvs1 {};
1116 pm8941_lvs2: lvs2 {};
1117 pm8941_lvs3: lvs3 {};
1118 };
1119 };
1120 };
1121 };
1122
1123 vreg_boost: vreg-boost {
1124 compatible = "regulator-fixed";
1125
1126 regulator-name = "vreg-boost";
1127 regulator-min-microvolt = <3150000>;
1128 regulator-max-microvolt = <3150000>;
1129
1130 regulator-always-on;
1131 regulator-boot-on;
1132
1133 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
1134 enable-active-high;
1135
1136 pinctrl-names = "default";
1137 pinctrl-0 = <&boost_bypass_n_pin>;
1138 };
1139 vreg_vph_pwr: vreg-vph-pwr {
1140 compatible = "regulator-fixed";
1141 regulator-name = "vph-pwr";
1142
1143 regulator-min-microvolt = <3600000>;
1144 regulator-max-microvolt = <3600000>;
1145
1146 regulator-always-on;
1147 };
1148};
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-msm8974.h>
6#include <dt-bindings/clock/qcom,mmcc-msm8974.h>
7#include <dt-bindings/clock/qcom,rpmcc.h>
8#include <dt-bindings/reset/qcom,gcc-msm8974.h>
9#include <dt-bindings/gpio/gpio.h>
10
11/ {
12 #address-cells = <1>;
13 #size-cells = <1>;
14 model = "Qualcomm MSM8974";
15 compatible = "qcom,msm8974";
16 interrupt-parent = <&intc>;
17
18 reserved-memory {
19 #address-cells = <1>;
20 #size-cells = <1>;
21 ranges;
22
23 mpss@8000000 {
24 reg = <0x08000000 0x5100000>;
25 no-map;
26 };
27
28 mba@d100000 {
29 reg = <0x0d100000 0x100000>;
30 no-map;
31 };
32
33 reserved@d200000 {
34 reg = <0x0d200000 0xa00000>;
35 no-map;
36 };
37
38 adsp_region: adsp@dc00000 {
39 reg = <0x0dc00000 0x1900000>;
40 no-map;
41 };
42
43 venus@f500000 {
44 reg = <0x0f500000 0x500000>;
45 no-map;
46 };
47
48 smem_region: smem@fa00000 {
49 reg = <0xfa00000 0x200000>;
50 no-map;
51 };
52
53 tz@fc00000 {
54 reg = <0x0fc00000 0x160000>;
55 no-map;
56 };
57
58 rfsa@fd60000 {
59 reg = <0x0fd60000 0x20000>;
60 no-map;
61 };
62
63 rmtfs@fd80000 {
64 reg = <0x0fd80000 0x180000>;
65 no-map;
66 };
67 };
68
69 cpus {
70 #address-cells = <1>;
71 #size-cells = <0>;
72 interrupts = <GIC_PPI 9 0xf04>;
73
74 CPU0: cpu@0 {
75 compatible = "qcom,krait";
76 enable-method = "qcom,kpss-acc-v2";
77 device_type = "cpu";
78 reg = <0>;
79 next-level-cache = <&L2>;
80 qcom,acc = <&acc0>;
81 qcom,saw = <&saw0>;
82 cpu-idle-states = <&CPU_SPC>;
83 };
84
85 CPU1: cpu@1 {
86 compatible = "qcom,krait";
87 enable-method = "qcom,kpss-acc-v2";
88 device_type = "cpu";
89 reg = <1>;
90 next-level-cache = <&L2>;
91 qcom,acc = <&acc1>;
92 qcom,saw = <&saw1>;
93 cpu-idle-states = <&CPU_SPC>;
94 };
95
96 CPU2: cpu@2 {
97 compatible = "qcom,krait";
98 enable-method = "qcom,kpss-acc-v2";
99 device_type = "cpu";
100 reg = <2>;
101 next-level-cache = <&L2>;
102 qcom,acc = <&acc2>;
103 qcom,saw = <&saw2>;
104 cpu-idle-states = <&CPU_SPC>;
105 };
106
107 CPU3: cpu@3 {
108 compatible = "qcom,krait";
109 enable-method = "qcom,kpss-acc-v2";
110 device_type = "cpu";
111 reg = <3>;
112 next-level-cache = <&L2>;
113 qcom,acc = <&acc3>;
114 qcom,saw = <&saw3>;
115 cpu-idle-states = <&CPU_SPC>;
116 };
117
118 L2: l2-cache {
119 compatible = "cache";
120 cache-level = <2>;
121 qcom,saw = <&saw_l2>;
122 };
123
124 idle-states {
125 CPU_SPC: spc {
126 compatible = "qcom,idle-state-spc",
127 "arm,idle-state";
128 entry-latency-us = <150>;
129 exit-latency-us = <200>;
130 min-residency-us = <2000>;
131 };
132 };
133 };
134
135 memory {
136 device_type = "memory";
137 reg = <0x0 0x0>;
138 };
139
140 thermal-zones {
141 cpu-thermal0 {
142 polling-delay-passive = <250>;
143 polling-delay = <1000>;
144
145 thermal-sensors = <&tsens 5>;
146
147 trips {
148 cpu_alert0: trip0 {
149 temperature = <75000>;
150 hysteresis = <2000>;
151 type = "passive";
152 };
153 cpu_crit0: trip1 {
154 temperature = <110000>;
155 hysteresis = <2000>;
156 type = "critical";
157 };
158 };
159 };
160
161 cpu-thermal1 {
162 polling-delay-passive = <250>;
163 polling-delay = <1000>;
164
165 thermal-sensors = <&tsens 6>;
166
167 trips {
168 cpu_alert1: trip0 {
169 temperature = <75000>;
170 hysteresis = <2000>;
171 type = "passive";
172 };
173 cpu_crit1: trip1 {
174 temperature = <110000>;
175 hysteresis = <2000>;
176 type = "critical";
177 };
178 };
179 };
180
181 cpu-thermal2 {
182 polling-delay-passive = <250>;
183 polling-delay = <1000>;
184
185 thermal-sensors = <&tsens 7>;
186
187 trips {
188 cpu_alert2: trip0 {
189 temperature = <75000>;
190 hysteresis = <2000>;
191 type = "passive";
192 };
193 cpu_crit2: trip1 {
194 temperature = <110000>;
195 hysteresis = <2000>;
196 type = "critical";
197 };
198 };
199 };
200
201 cpu-thermal3 {
202 polling-delay-passive = <250>;
203 polling-delay = <1000>;
204
205 thermal-sensors = <&tsens 8>;
206
207 trips {
208 cpu_alert3: trip0 {
209 temperature = <75000>;
210 hysteresis = <2000>;
211 type = "passive";
212 };
213 cpu_crit3: trip1 {
214 temperature = <110000>;
215 hysteresis = <2000>;
216 type = "critical";
217 };
218 };
219 };
220 };
221
222 cpu-pmu {
223 compatible = "qcom,krait-pmu";
224 interrupts = <GIC_PPI 7 0xf04>;
225 };
226
227 clocks {
228 xo_board: xo_board {
229 compatible = "fixed-clock";
230 #clock-cells = <0>;
231 clock-frequency = <19200000>;
232 };
233
234 sleep_clk: sleep_clk {
235 compatible = "fixed-clock";
236 #clock-cells = <0>;
237 clock-frequency = <32768>;
238 };
239 };
240
241 timer {
242 compatible = "arm,armv7-timer";
243 interrupts = <GIC_PPI 2 0xf08>,
244 <GIC_PPI 3 0xf08>,
245 <GIC_PPI 4 0xf08>,
246 <GIC_PPI 1 0xf08>;
247 clock-frequency = <19200000>;
248 };
249
250 adsp-pil {
251 compatible = "qcom,msm8974-adsp-pil";
252
253 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
254 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
255 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
256 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
257 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
258 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
259
260 cx-supply = <&pm8841_s2>;
261
262 clocks = <&xo_board>;
263 clock-names = "xo";
264
265 memory-region = <&adsp_region>;
266
267 qcom,smem-states = <&adsp_smp2p_out 0>;
268 qcom,smem-state-names = "stop";
269 };
270
271 smem {
272 compatible = "qcom,smem";
273
274 memory-region = <&smem_region>;
275 qcom,rpm-msg-ram = <&rpm_msg_ram>;
276
277 hwlocks = <&tcsr_mutex 3>;
278 };
279
280 smp2p-adsp {
281 compatible = "qcom,smp2p";
282 qcom,smem = <443>, <429>;
283
284 interrupt-parent = <&intc>;
285 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
286
287 qcom,ipc = <&apcs 8 10>;
288
289 qcom,local-pid = <0>;
290 qcom,remote-pid = <2>;
291
292 adsp_smp2p_out: master-kernel {
293 qcom,entry-name = "master-kernel";
294 #qcom,smem-state-cells = <1>;
295 };
296
297 adsp_smp2p_in: slave-kernel {
298 qcom,entry-name = "slave-kernel";
299
300 interrupt-controller;
301 #interrupt-cells = <2>;
302 };
303 };
304
305 smp2p-modem {
306 compatible = "qcom,smp2p";
307 qcom,smem = <435>, <428>;
308
309 interrupt-parent = <&intc>;
310 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
311
312 qcom,ipc = <&apcs 8 14>;
313
314 qcom,local-pid = <0>;
315 qcom,remote-pid = <1>;
316
317 modem_smp2p_out: master-kernel {
318 qcom,entry-name = "master-kernel";
319 #qcom,smem-state-cells = <1>;
320 };
321
322 modem_smp2p_in: slave-kernel {
323 qcom,entry-name = "slave-kernel";
324
325 interrupt-controller;
326 #interrupt-cells = <2>;
327 };
328 };
329
330 smp2p-wcnss {
331 compatible = "qcom,smp2p";
332 qcom,smem = <451>, <431>;
333
334 interrupt-parent = <&intc>;
335 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
336
337 qcom,ipc = <&apcs 8 18>;
338
339 qcom,local-pid = <0>;
340 qcom,remote-pid = <4>;
341
342 wcnss_smp2p_out: master-kernel {
343 qcom,entry-name = "master-kernel";
344
345 #qcom,smem-state-cells = <1>;
346 };
347
348 wcnss_smp2p_in: slave-kernel {
349 qcom,entry-name = "slave-kernel";
350
351 interrupt-controller;
352 #interrupt-cells = <2>;
353 };
354 };
355
356 smsm {
357 compatible = "qcom,smsm";
358
359 #address-cells = <1>;
360 #size-cells = <0>;
361
362 qcom,ipc-1 = <&apcs 8 13>;
363 qcom,ipc-2 = <&apcs 8 9>;
364 qcom,ipc-3 = <&apcs 8 19>;
365
366 apps_smsm: apps@0 {
367 reg = <0>;
368
369 #qcom,smem-state-cells = <1>;
370 };
371
372 modem_smsm: modem@1 {
373 reg = <1>;
374 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
375
376 interrupt-controller;
377 #interrupt-cells = <2>;
378 };
379
380 adsp_smsm: adsp@2 {
381 reg = <2>;
382 interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
383
384 interrupt-controller;
385 #interrupt-cells = <2>;
386 };
387
388 wcnss_smsm: wcnss@7 {
389 reg = <7>;
390 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
391
392 interrupt-controller;
393 #interrupt-cells = <2>;
394 };
395 };
396
397 firmware {
398 scm {
399 compatible = "qcom,scm";
400 clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
401 clock-names = "core", "bus", "iface";
402 };
403 };
404
405 soc: soc {
406 #address-cells = <1>;
407 #size-cells = <1>;
408 ranges;
409 compatible = "simple-bus";
410
411 intc: interrupt-controller@f9000000 {
412 compatible = "qcom,msm-qgic2";
413 interrupt-controller;
414 #interrupt-cells = <3>;
415 reg = <0xf9000000 0x1000>,
416 <0xf9002000 0x1000>;
417 };
418
419 apcs: syscon@f9011000 {
420 compatible = "syscon";
421 reg = <0xf9011000 0x1000>;
422 };
423
424 qfprom: qfprom@fc4bc000 {
425 #address-cells = <1>;
426 #size-cells = <1>;
427 compatible = "qcom,qfprom";
428 reg = <0xfc4bc000 0x1000>;
429 tsens_calib: calib@d0 {
430 reg = <0xd0 0x18>;
431 };
432 tsens_backup: backup@440 {
433 reg = <0x440 0x10>;
434 };
435 };
436
437 tsens: thermal-sensor@fc4a9000 {
438 compatible = "qcom,msm8974-tsens";
439 reg = <0xfc4a9000 0x1000>, /* TM */
440 <0xfc4a8000 0x1000>; /* SROT */
441 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
442 nvmem-cell-names = "calib", "calib_backup";
443 #qcom,sensors = <11>;
444 #thermal-sensor-cells = <1>;
445 };
446
447 timer@f9020000 {
448 #address-cells = <1>;
449 #size-cells = <1>;
450 ranges;
451 compatible = "arm,armv7-timer-mem";
452 reg = <0xf9020000 0x1000>;
453 clock-frequency = <19200000>;
454
455 frame@f9021000 {
456 frame-number = <0>;
457 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
458 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
459 reg = <0xf9021000 0x1000>,
460 <0xf9022000 0x1000>;
461 };
462
463 frame@f9023000 {
464 frame-number = <1>;
465 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
466 reg = <0xf9023000 0x1000>;
467 status = "disabled";
468 };
469
470 frame@f9024000 {
471 frame-number = <2>;
472 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
473 reg = <0xf9024000 0x1000>;
474 status = "disabled";
475 };
476
477 frame@f9025000 {
478 frame-number = <3>;
479 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
480 reg = <0xf9025000 0x1000>;
481 status = "disabled";
482 };
483
484 frame@f9026000 {
485 frame-number = <4>;
486 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
487 reg = <0xf9026000 0x1000>;
488 status = "disabled";
489 };
490
491 frame@f9027000 {
492 frame-number = <5>;
493 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
494 reg = <0xf9027000 0x1000>;
495 status = "disabled";
496 };
497
498 frame@f9028000 {
499 frame-number = <6>;
500 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
501 reg = <0xf9028000 0x1000>;
502 status = "disabled";
503 };
504 };
505
506 saw0: power-controller@f9089000 {
507 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
508 reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
509 };
510
511 saw1: power-controller@f9099000 {
512 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
513 reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
514 };
515
516 saw2: power-controller@f90a9000 {
517 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
518 reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
519 };
520
521 saw3: power-controller@f90b9000 {
522 compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
523 reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
524 };
525
526 saw_l2: power-controller@f9012000 {
527 compatible = "qcom,saw2";
528 reg = <0xf9012000 0x1000>;
529 regulator;
530 };
531
532 acc0: clock-controller@f9088000 {
533 compatible = "qcom,kpss-acc-v2";
534 reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>;
535 };
536
537 acc1: clock-controller@f9098000 {
538 compatible = "qcom,kpss-acc-v2";
539 reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>;
540 };
541
542 acc2: clock-controller@f90a8000 {
543 compatible = "qcom,kpss-acc-v2";
544 reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>;
545 };
546
547 acc3: clock-controller@f90b8000 {
548 compatible = "qcom,kpss-acc-v2";
549 reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
550 };
551
552 restart@fc4ab000 {
553 compatible = "qcom,pshold";
554 reg = <0xfc4ab000 0x4>;
555 };
556
557 gcc: clock-controller@fc400000 {
558 compatible = "qcom,gcc-msm8974";
559 #clock-cells = <1>;
560 #reset-cells = <1>;
561 #power-domain-cells = <1>;
562 reg = <0xfc400000 0x4000>;
563 };
564
565 tcsr: syscon@fd4a0000 {
566 compatible = "syscon";
567 reg = <0xfd4a0000 0x10000>;
568 };
569
570 tcsr_mutex_block: syscon@fd484000 {
571 compatible = "syscon";
572 reg = <0xfd484000 0x2000>;
573 };
574
575 mmcc: clock-controller@fd8c0000 {
576 compatible = "qcom,mmcc-msm8974";
577 #clock-cells = <1>;
578 #reset-cells = <1>;
579 #power-domain-cells = <1>;
580 reg = <0xfd8c0000 0x6000>;
581 };
582
583 tcsr_mutex: tcsr-mutex {
584 compatible = "qcom,tcsr-mutex";
585 syscon = <&tcsr_mutex_block 0 0x80>;
586
587 #hwlock-cells = <1>;
588 };
589
590 rpm_msg_ram: memory@fc428000 {
591 compatible = "qcom,rpm-msg-ram";
592 reg = <0xfc428000 0x4000>;
593 };
594
595 blsp1_uart1: serial@f991d000 {
596 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
597 reg = <0xf991d000 0x1000>;
598 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
599 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
600 clock-names = "core", "iface";
601 status = "disabled";
602 };
603
604 blsp1_uart2: serial@f991e000 {
605 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
606 reg = <0xf991e000 0x1000>;
607 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
608 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
609 clock-names = "core", "iface";
610 status = "disabled";
611 };
612
613 sdhci@f9824900 {
614 compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
615 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
616 reg-names = "hc_mem", "core_mem";
617 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
618 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
619 interrupt-names = "hc_irq", "pwr_irq";
620 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
621 <&gcc GCC_SDCC1_AHB_CLK>,
622 <&xo_board>;
623 clock-names = "core", "iface", "xo";
624 status = "disabled";
625 };
626
627 sdhci@f9864900 {
628 compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
629 reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
630 reg-names = "hc_mem", "core_mem";
631 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
632 <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
633 interrupt-names = "hc_irq", "pwr_irq";
634 clocks = <&gcc GCC_SDCC3_APPS_CLK>,
635 <&gcc GCC_SDCC3_AHB_CLK>,
636 <&xo_board>;
637 clock-names = "core", "iface", "xo";
638 status = "disabled";
639 };
640
641 sdhci@f98a4900 {
642 compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
643 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
644 reg-names = "hc_mem", "core_mem";
645 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
646 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
647 interrupt-names = "hc_irq", "pwr_irq";
648 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
649 <&gcc GCC_SDCC2_AHB_CLK>,
650 <&xo_board>;
651 clock-names = "core", "iface", "xo";
652 status = "disabled";
653 };
654
655 otg: usb@f9a55000 {
656 compatible = "qcom,ci-hdrc";
657 reg = <0xf9a55000 0x200>,
658 <0xf9a55200 0x200>;
659 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
660 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
661 <&gcc GCC_USB_HS_SYSTEM_CLK>;
662 clock-names = "iface", "core";
663 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
664 assigned-clock-rates = <75000000>;
665 resets = <&gcc GCC_USB_HS_BCR>;
666 reset-names = "core";
667 phy_type = "ulpi";
668 dr_mode = "otg";
669 ahb-burst-config = <0>;
670 phy-names = "usb-phy";
671 status = "disabled";
672 #reset-cells = <1>;
673
674 ulpi {
675 usb_hs1_phy: phy@a {
676 compatible = "qcom,usb-hs-phy-msm8974",
677 "qcom,usb-hs-phy";
678 #phy-cells = <0>;
679 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
680 clock-names = "ref", "sleep";
681 resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
682 reset-names = "phy", "por";
683 status = "disabled";
684 };
685
686 usb_hs2_phy: phy@b {
687 compatible = "qcom,usb-hs-phy-msm8974",
688 "qcom,usb-hs-phy";
689 #phy-cells = <0>;
690 clocks = <&xo_board>, <&gcc GCC_USB2B_PHY_SLEEP_CLK>;
691 clock-names = "ref", "sleep";
692 resets = <&gcc GCC_USB2B_PHY_BCR>, <&otg 1>;
693 reset-names = "phy", "por";
694 status = "disabled";
695 };
696 };
697 };
698
699 rng@f9bff000 {
700 compatible = "qcom,prng";
701 reg = <0xf9bff000 0x200>;
702 clocks = <&gcc GCC_PRNG_AHB_CLK>;
703 clock-names = "core";
704 };
705
706 msmgpio: pinctrl@fd510000 {
707 compatible = "qcom,msm8974-pinctrl";
708 reg = <0xfd510000 0x4000>;
709 gpio-controller;
710 #gpio-cells = <2>;
711 interrupt-controller;
712 #interrupt-cells = <2>;
713 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
714 };
715
716 i2c@f9923000 {
717 status = "disabled";
718 compatible = "qcom,i2c-qup-v2.1.1";
719 reg = <0xf9923000 0x1000>;
720 interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
721 clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
722 clock-names = "core", "iface";
723 #address-cells = <1>;
724 #size-cells = <0>;
725 };
726
727 i2c@f9924000 {
728 status = "disabled";
729 compatible = "qcom,i2c-qup-v2.1.1";
730 reg = <0xf9924000 0x1000>;
731 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
732 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
733 clock-names = "core", "iface";
734 #address-cells = <1>;
735 #size-cells = <0>;
736 };
737
738 blsp_i2c3: i2c@f9925000 {
739 status = "disabled";
740 compatible = "qcom,i2c-qup-v2.1.1";
741 reg = <0xf9925000 0x1000>;
742 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
743 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
744 clock-names = "core", "iface";
745 #address-cells = <1>;
746 #size-cells = <0>;
747 };
748
749 blsp_i2c8: i2c@f9964000 {
750 status = "disabled";
751 compatible = "qcom,i2c-qup-v2.1.1";
752 reg = <0xf9964000 0x1000>;
753 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
754 clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
755 clock-names = "core", "iface";
756 #address-cells = <1>;
757 #size-cells = <0>;
758 };
759
760 blsp_i2c11: i2c@f9967000 {
761 status = "disabled";
762 compatible = "qcom,i2c-qup-v2.1.1";
763 reg = <0xf9967000 0x1000>;
764 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
765 clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
766 clock-names = "core", "iface";
767 #address-cells = <1>;
768 #size-cells = <0>;
769 dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
770 dma-names = "tx", "rx";
771 };
772
773 blsp_i2c12: i2c@f9968000 {
774 status = "disabled";
775 compatible = "qcom,i2c-qup-v2.1.1";
776 reg = <0xf9968000 0x1000>;
777 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
778 clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
779 clock-names = "core", "iface";
780 #address-cells = <1>;
781 #size-cells = <0>;
782 };
783
784 spmi_bus: spmi@fc4cf000 {
785 compatible = "qcom,spmi-pmic-arb";
786 reg-names = "core", "intr", "cnfg";
787 reg = <0xfc4cf000 0x1000>,
788 <0xfc4cb000 0x1000>,
789 <0xfc4ca000 0x1000>;
790 interrupt-names = "periph_irq";
791 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
792 qcom,ee = <0>;
793 qcom,channel = <0>;
794 #address-cells = <2>;
795 #size-cells = <0>;
796 interrupt-controller;
797 #interrupt-cells = <4>;
798 };
799
800 blsp2_dma: dma-controller@f9944000 {
801 compatible = "qcom,bam-v1.4.0";
802 reg = <0xf9944000 0x19000>;
803 interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
804 clocks = <&gcc GCC_BLSP2_AHB_CLK>;
805 clock-names = "bam_clk";
806 #dma-cells = <1>;
807 qcom,ee = <0>;
808 };
809
810 etr@fc322000 {
811 compatible = "arm,coresight-tmc", "arm,primecell";
812 reg = <0xfc322000 0x1000>;
813
814 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
815 clock-names = "apb_pclk", "atclk";
816
817 in-ports {
818 port {
819 etr_in: endpoint {
820 remote-endpoint = <&replicator_out0>;
821 };
822 };
823 };
824 };
825
826 tpiu@fc318000 {
827 compatible = "arm,coresight-tpiu", "arm,primecell";
828 reg = <0xfc318000 0x1000>;
829
830 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
831 clock-names = "apb_pclk", "atclk";
832
833 in-ports {
834 port {
835 tpiu_in: endpoint {
836 remote-endpoint = <&replicator_out1>;
837 };
838 };
839 };
840 };
841
842 replicator@fc31c000 {
843 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
844 reg = <0xfc31c000 0x1000>;
845
846 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
847 clock-names = "apb_pclk", "atclk";
848
849 out-ports {
850 #address-cells = <1>;
851 #size-cells = <0>;
852
853 port@0 {
854 reg = <0>;
855 replicator_out0: endpoint {
856 remote-endpoint = <&etr_in>;
857 };
858 };
859 port@1 {
860 reg = <1>;
861 replicator_out1: endpoint {
862 remote-endpoint = <&tpiu_in>;
863 };
864 };
865 };
866
867 in-ports {
868 port {
869 replicator_in: endpoint {
870 remote-endpoint = <&etf_out>;
871 };
872 };
873 };
874 };
875
876 etf@fc307000 {
877 compatible = "arm,coresight-tmc", "arm,primecell";
878 reg = <0xfc307000 0x1000>;
879
880 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
881 clock-names = "apb_pclk", "atclk";
882
883 out-ports {
884 port {
885 etf_out: endpoint {
886 remote-endpoint = <&replicator_in>;
887 };
888 };
889 };
890
891 in-ports {
892 port {
893 etf_in: endpoint {
894 remote-endpoint = <&merger_out>;
895 };
896 };
897 };
898 };
899
900 funnel@fc31b000 {
901 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
902 reg = <0xfc31b000 0x1000>;
903
904 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
905 clock-names = "apb_pclk", "atclk";
906
907 in-ports {
908 #address-cells = <1>;
909 #size-cells = <0>;
910
911 /*
912 * Not described input ports:
913 * 0 - connected trought funnel to Audio, Modem and
914 * Resource and Power Manager CPU's
915 * 2...7 - not-connected
916 */
917 port@1 {
918 reg = <1>;
919 merger_in1: endpoint {
920 remote-endpoint = <&funnel1_out>;
921 };
922 };
923 };
924
925 out-ports {
926 port {
927 merger_out: endpoint {
928 remote-endpoint = <&etf_in>;
929 };
930 };
931 };
932 };
933
934 funnel@fc31a000 {
935 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
936 reg = <0xfc31a000 0x1000>;
937
938 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
939 clock-names = "apb_pclk", "atclk";
940
941 in-ports {
942 #address-cells = <1>;
943 #size-cells = <0>;
944
945 /*
946 * Not described input ports:
947 * 0 - not-connected
948 * 1 - connected trought funnel to Multimedia CPU
949 * 2 - connected to Wireless CPU
950 * 3 - not-connected
951 * 4 - not-connected
952 * 6 - not-connected
953 * 7 - connected to STM
954 */
955 port@5 {
956 reg = <5>;
957 funnel1_in5: endpoint {
958 remote-endpoint = <&kpss_out>;
959 };
960 };
961 };
962
963 out-ports {
964 port {
965 funnel1_out: endpoint {
966 remote-endpoint = <&merger_in1>;
967 };
968 };
969 };
970 };
971
972 funnel@fc345000 { /* KPSS funnel only 4 inputs are used */
973 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
974 reg = <0xfc345000 0x1000>;
975
976 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
977 clock-names = "apb_pclk", "atclk";
978
979 in-ports {
980 #address-cells = <1>;
981 #size-cells = <0>;
982
983 port@0 {
984 reg = <0>;
985 kpss_in0: endpoint {
986 remote-endpoint = <&etm0_out>;
987 };
988 };
989 port@1 {
990 reg = <1>;
991 kpss_in1: endpoint {
992 remote-endpoint = <&etm1_out>;
993 };
994 };
995 port@2 {
996 reg = <2>;
997 kpss_in2: endpoint {
998 remote-endpoint = <&etm2_out>;
999 };
1000 };
1001 port@3 {
1002 reg = <3>;
1003 kpss_in3: endpoint {
1004 remote-endpoint = <&etm3_out>;
1005 };
1006 };
1007 };
1008
1009 out-ports {
1010 port {
1011 kpss_out: endpoint {
1012 remote-endpoint = <&funnel1_in5>;
1013 };
1014 };
1015 };
1016 };
1017
1018 etm@fc33c000 {
1019 compatible = "arm,coresight-etm4x", "arm,primecell";
1020 reg = <0xfc33c000 0x1000>;
1021
1022 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1023 clock-names = "apb_pclk", "atclk";
1024
1025 cpu = <&CPU0>;
1026
1027 out-ports {
1028 port {
1029 etm0_out: endpoint {
1030 remote-endpoint = <&kpss_in0>;
1031 };
1032 };
1033 };
1034 };
1035
1036 etm@fc33d000 {
1037 compatible = "arm,coresight-etm4x", "arm,primecell";
1038 reg = <0xfc33d000 0x1000>;
1039
1040 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1041 clock-names = "apb_pclk", "atclk";
1042
1043 cpu = <&CPU1>;
1044
1045 out-ports {
1046 port {
1047 etm1_out: endpoint {
1048 remote-endpoint = <&kpss_in1>;
1049 };
1050 };
1051 };
1052 };
1053
1054 etm@fc33e000 {
1055 compatible = "arm,coresight-etm4x", "arm,primecell";
1056 reg = <0xfc33e000 0x1000>;
1057
1058 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1059 clock-names = "apb_pclk", "atclk";
1060
1061 cpu = <&CPU2>;
1062
1063 out-ports {
1064 port {
1065 etm2_out: endpoint {
1066 remote-endpoint = <&kpss_in2>;
1067 };
1068 };
1069 };
1070 };
1071
1072 etm@fc33f000 {
1073 compatible = "arm,coresight-etm4x", "arm,primecell";
1074 reg = <0xfc33f000 0x1000>;
1075
1076 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1077 clock-names = "apb_pclk", "atclk";
1078
1079 cpu = <&CPU3>;
1080
1081 out-ports {
1082 port {
1083 etm3_out: endpoint {
1084 remote-endpoint = <&kpss_in3>;
1085 };
1086 };
1087 };
1088 };
1089
1090 mdss: mdss@fd900000 {
1091 status = "disabled";
1092
1093 compatible = "qcom,mdss";
1094 reg = <0xfd900000 0x100>,
1095 <0xfd924000 0x1000>;
1096 reg-names = "mdss_phys",
1097 "vbif_phys";
1098
1099 power-domains = <&mmcc MDSS_GDSC>;
1100
1101 clocks = <&mmcc MDSS_AHB_CLK>,
1102 <&mmcc MDSS_AXI_CLK>,
1103 <&mmcc MDSS_VSYNC_CLK>;
1104 clock-names = "iface",
1105 "bus",
1106 "vsync";
1107
1108 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1109
1110 interrupt-controller;
1111 #interrupt-cells = <1>;
1112
1113 #address-cells = <1>;
1114 #size-cells = <1>;
1115 ranges;
1116
1117 mdp: mdp@fd900000 {
1118 status = "disabled";
1119
1120 compatible = "qcom,mdp5";
1121 reg = <0xfd900100 0x22000>;
1122 reg-names = "mdp_phys";
1123
1124 interrupt-parent = <&mdss>;
1125 interrupts = <0 0>;
1126
1127 clocks = <&mmcc MDSS_AHB_CLK>,
1128 <&mmcc MDSS_AXI_CLK>,
1129 <&mmcc MDSS_MDP_CLK>,
1130 <&mmcc MDSS_VSYNC_CLK>;
1131 clock-names = "iface",
1132 "bus",
1133 "core",
1134 "vsync";
1135
1136 ports {
1137 #address-cells = <1>;
1138 #size-cells = <0>;
1139
1140 port@0 {
1141 reg = <0>;
1142 mdp5_intf1_out: endpoint {
1143 remote-endpoint = <&dsi0_in>;
1144 };
1145 };
1146 };
1147 };
1148
1149 dsi0: dsi@fd922800 {
1150 status = "disabled";
1151
1152 compatible = "qcom,mdss-dsi-ctrl";
1153 reg = <0xfd922800 0x1f8>;
1154 reg-names = "dsi_ctrl";
1155
1156 interrupt-parent = <&mdss>;
1157 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
1158
1159 assigned-clocks = <&mmcc BYTE0_CLK_SRC>,
1160 <&mmcc PCLK0_CLK_SRC>;
1161 assigned-clock-parents = <&dsi_phy0 0>,
1162 <&dsi_phy0 1>;
1163
1164 clocks = <&mmcc MDSS_MDP_CLK>,
1165 <&mmcc MDSS_AHB_CLK>,
1166 <&mmcc MDSS_AXI_CLK>,
1167 <&mmcc MDSS_BYTE0_CLK>,
1168 <&mmcc MDSS_PCLK0_CLK>,
1169 <&mmcc MDSS_ESC0_CLK>,
1170 <&mmcc MMSS_MISC_AHB_CLK>;
1171 clock-names = "mdp_core",
1172 "iface",
1173 "bus",
1174 "byte",
1175 "pixel",
1176 "core",
1177 "core_mmss";
1178
1179 phys = <&dsi_phy0>;
1180 phy-names = "dsi-phy";
1181
1182 ports {
1183 #address-cells = <1>;
1184 #size-cells = <0>;
1185
1186 port@0 {
1187 reg = <0>;
1188 dsi0_in: endpoint {
1189 remote-endpoint = <&mdp5_intf1_out>;
1190 };
1191 };
1192
1193 port@1 {
1194 reg = <1>;
1195 dsi0_out: endpoint {
1196 };
1197 };
1198 };
1199 };
1200
1201 dsi_phy0: dsi-phy@fd922a00 {
1202 status = "disabled";
1203
1204 compatible = "qcom,dsi-phy-28nm-hpm";
1205 reg = <0xfd922a00 0xd4>,
1206 <0xfd922b00 0x280>,
1207 <0xfd922d80 0x30>;
1208 reg-names = "dsi_pll",
1209 "dsi_phy",
1210 "dsi_phy_regulator";
1211
1212 #clock-cells = <1>;
1213 #phy-cells = <0>;
1214 qcom,dsi-phy-index = <0>;
1215
1216 clocks = <&mmcc MDSS_AHB_CLK>;
1217 clock-names = "iface";
1218 };
1219 };
1220 };
1221
1222 smd {
1223 compatible = "qcom,smd";
1224
1225 adsp {
1226 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
1227
1228 qcom,ipc = <&apcs 8 8>;
1229 qcom,smd-edge = <1>;
1230 };
1231
1232 modem {
1233 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1234
1235 qcom,ipc = <&apcs 8 12>;
1236 qcom,smd-edge = <0>;
1237 };
1238
1239 rpm {
1240 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
1241 qcom,ipc = <&apcs 8 0>;
1242 qcom,smd-edge = <15>;
1243
1244 rpm_requests {
1245 compatible = "qcom,rpm-msm8974";
1246 qcom,smd-channels = "rpm_requests";
1247
1248 rpmcc: clock-controller {
1249 compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
1250 #clock-cells = <1>;
1251 };
1252
1253 pm8841-regulators {
1254 compatible = "qcom,rpm-pm8841-regulators";
1255
1256 pm8841_s1: s1 {};
1257 pm8841_s2: s2 {};
1258 pm8841_s3: s3 {};
1259 pm8841_s4: s4 {};
1260 pm8841_s5: s5 {};
1261 pm8841_s6: s6 {};
1262 pm8841_s7: s7 {};
1263 pm8841_s8: s8 {};
1264 };
1265
1266 pm8941-regulators {
1267 compatible = "qcom,rpm-pm8941-regulators";
1268
1269 pm8941_s1: s1 {};
1270 pm8941_s2: s2 {};
1271 pm8941_s3: s3 {};
1272
1273 pm8941_l1: l1 {};
1274 pm8941_l2: l2 {};
1275 pm8941_l3: l3 {};
1276 pm8941_l4: l4 {};
1277 pm8941_l5: l5 {};
1278 pm8941_l6: l6 {};
1279 pm8941_l7: l7 {};
1280 pm8941_l8: l8 {};
1281 pm8941_l9: l9 {};
1282 pm8941_l10: l10 {};
1283 pm8941_l11: l11 {};
1284 pm8941_l12: l12 {};
1285 pm8941_l13: l13 {};
1286 pm8941_l14: l14 {};
1287 pm8941_l15: l15 {};
1288 pm8941_l16: l16 {};
1289 pm8941_l17: l17 {};
1290 pm8941_l18: l18 {};
1291 pm8941_l19: l19 {};
1292 pm8941_l20: l20 {};
1293 pm8941_l21: l21 {};
1294 pm8941_l22: l22 {};
1295 pm8941_l23: l23 {};
1296 pm8941_l24: l24 {};
1297
1298 pm8941_lvs1: lvs1 {};
1299 pm8941_lvs2: lvs2 {};
1300 pm8941_lvs3: lvs3 {};
1301 };
1302 };
1303 };
1304 };
1305
1306 vreg_boost: vreg-boost {
1307 compatible = "regulator-fixed";
1308
1309 regulator-name = "vreg-boost";
1310 regulator-min-microvolt = <3150000>;
1311 regulator-max-microvolt = <3150000>;
1312
1313 regulator-always-on;
1314 regulator-boot-on;
1315
1316 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
1317 enable-active-high;
1318
1319 pinctrl-names = "default";
1320 pinctrl-0 = <&boost_bypass_n_pin>;
1321 };
1322 vreg_vph_pwr: vreg-vph-pwr {
1323 compatible = "regulator-fixed";
1324 regulator-name = "vph-pwr";
1325
1326 regulator-min-microvolt = <3600000>;
1327 regulator-max-microvolt = <3600000>;
1328
1329 regulator-always-on;
1330 };
1331};