Merge tag 'docs-5.15' of git://git.lwn.net/linux
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / msm8916.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
4  */
5
6 #include <dt-bindings/arm/coresight-cti-dt.h>
7 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
8 #include <dt-bindings/clock/qcom,rpmcc.h>
9 #include <dt-bindings/interconnect/qcom,msm8916.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 #include <dt-bindings/power/qcom-rpmpd.h>
12 #include <dt-bindings/reset/qcom,gcc-msm8916.h>
13 #include <dt-bindings/thermal/thermal.h>
14
15 / {
16         interrupt-parent = <&intc>;
17
18         #address-cells = <2>;
19         #size-cells = <2>;
20
21         aliases {
22                 sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
23                 sdhc2 = &sdhc_2; /* SDC2 SD card slot */
24         };
25
26         chosen { };
27
28         memory@80000000 {
29                 device_type = "memory";
30                 /* We expect the bootloader to fill in the reg */
31                 reg = <0 0x80000000 0 0>;
32         };
33
34         reserved-memory {
35                 #address-cells = <2>;
36                 #size-cells = <2>;
37                 ranges;
38
39                 tz-apps@86000000 {
40                         reg = <0x0 0x86000000 0x0 0x300000>;
41                         no-map;
42                 };
43
44                 smem_mem: smem_region@86300000 {
45                         reg = <0x0 0x86300000 0x0 0x100000>;
46                         no-map;
47                 };
48
49                 hypervisor@86400000 {
50                         reg = <0x0 0x86400000 0x0 0x100000>;
51                         no-map;
52                 };
53
54                 tz@86500000 {
55                         reg = <0x0 0x86500000 0x0 0x180000>;
56                         no-map;
57                 };
58
59                 reserved@86680000 {
60                         reg = <0x0 0x86680000 0x0 0x80000>;
61                         no-map;
62                 };
63
64                 rmtfs@86700000 {
65                         compatible = "qcom,rmtfs-mem";
66                         reg = <0x0 0x86700000 0x0 0xe0000>;
67                         no-map;
68
69                         qcom,client-id = <1>;
70                 };
71
72                 rfsa@867e0000 {
73                         reg = <0x0 0x867e0000 0x0 0x20000>;
74                         no-map;
75                 };
76
77                 mpss_mem: mpss@86800000 {
78                         reg = <0x0 0x86800000 0x0 0x2b00000>;
79                         no-map;
80                 };
81
82                 wcnss_mem: wcnss@89300000 {
83                         reg = <0x0 0x89300000 0x0 0x600000>;
84                         no-map;
85                 };
86
87                 venus_mem: venus@89900000 {
88                         reg = <0x0 0x89900000 0x0 0x600000>;
89                         no-map;
90                 };
91
92                 mba_mem: mba@8ea00000 {
93                         no-map;
94                         reg = <0 0x8ea00000 0 0x100000>;
95                 };
96         };
97
98         clocks {
99                 xo_board: xo-board {
100                         compatible = "fixed-clock";
101                         #clock-cells = <0>;
102                         clock-frequency = <19200000>;
103                 };
104
105                 sleep_clk: sleep-clk {
106                         compatible = "fixed-clock";
107                         #clock-cells = <0>;
108                         clock-frequency = <32768>;
109                 };
110         };
111
112         cpus {
113                 #address-cells = <1>;
114                 #size-cells = <0>;
115
116                 CPU0: cpu@0 {
117                         device_type = "cpu";
118                         compatible = "arm,cortex-a53";
119                         reg = <0x0>;
120                         next-level-cache = <&L2_0>;
121                         enable-method = "psci";
122                         clocks = <&apcs>;
123                         operating-points-v2 = <&cpu_opp_table>;
124                         #cooling-cells = <2>;
125                         power-domains = <&CPU_PD0>;
126                         power-domain-names = "psci";
127                 };
128
129                 CPU1: cpu@1 {
130                         device_type = "cpu";
131                         compatible = "arm,cortex-a53";
132                         reg = <0x1>;
133                         next-level-cache = <&L2_0>;
134                         enable-method = "psci";
135                         clocks = <&apcs>;
136                         operating-points-v2 = <&cpu_opp_table>;
137                         #cooling-cells = <2>;
138                         power-domains = <&CPU_PD1>;
139                         power-domain-names = "psci";
140                 };
141
142                 CPU2: cpu@2 {
143                         device_type = "cpu";
144                         compatible = "arm,cortex-a53";
145                         reg = <0x2>;
146                         next-level-cache = <&L2_0>;
147                         enable-method = "psci";
148                         clocks = <&apcs>;
149                         operating-points-v2 = <&cpu_opp_table>;
150                         #cooling-cells = <2>;
151                         power-domains = <&CPU_PD2>;
152                         power-domain-names = "psci";
153                 };
154
155                 CPU3: cpu@3 {
156                         device_type = "cpu";
157                         compatible = "arm,cortex-a53";
158                         reg = <0x3>;
159                         next-level-cache = <&L2_0>;
160                         enable-method = "psci";
161                         clocks = <&apcs>;
162                         operating-points-v2 = <&cpu_opp_table>;
163                         #cooling-cells = <2>;
164                         power-domains = <&CPU_PD3>;
165                         power-domain-names = "psci";
166                 };
167
168                 L2_0: l2-cache {
169                         compatible = "cache";
170                         cache-level = <2>;
171                 };
172
173                 idle-states {
174                         entry-method = "psci";
175
176                         CPU_SLEEP_0: cpu-sleep-0 {
177                                 compatible = "arm,idle-state";
178                                 idle-state-name = "standalone-power-collapse";
179                                 arm,psci-suspend-param = <0x40000002>;
180                                 entry-latency-us = <130>;
181                                 exit-latency-us = <150>;
182                                 min-residency-us = <2000>;
183                                 local-timer-stop;
184                         };
185                 };
186
187                 domain-idle-states {
188
189                         CLUSTER_RET: cluster-retention {
190                                 compatible = "domain-idle-state";
191                                 arm,psci-suspend-param = <0x41000012>;
192                                 entry-latency-us = <500>;
193                                 exit-latency-us = <500>;
194                                 min-residency-us = <2000>;
195                         };
196
197                         CLUSTER_PWRDN: cluster-gdhs {
198                                 compatible = "domain-idle-state";
199                                 arm,psci-suspend-param = <0x41000032>;
200                                 entry-latency-us = <2000>;
201                                 exit-latency-us = <2000>;
202                                 min-residency-us = <6000>;
203                         };
204                 };
205         };
206
207         cpu_opp_table: cpu-opp-table {
208                 compatible = "operating-points-v2";
209                 opp-shared;
210
211                 opp-200000000 {
212                         opp-hz = /bits/ 64 <200000000>;
213                 };
214                 opp-400000000 {
215                         opp-hz = /bits/ 64 <400000000>;
216                 };
217                 opp-800000000 {
218                         opp-hz = /bits/ 64 <800000000>;
219                 };
220                 opp-998400000 {
221                         opp-hz = /bits/ 64 <998400000>;
222                 };
223         };
224
225         firmware {
226                 scm: scm {
227                         compatible = "qcom,scm-msm8916", "qcom,scm";
228                         clocks = <&gcc GCC_CRYPTO_CLK>,
229                                  <&gcc GCC_CRYPTO_AXI_CLK>,
230                                  <&gcc GCC_CRYPTO_AHB_CLK>;
231                         clock-names = "core", "bus", "iface";
232                         #reset-cells = <1>;
233
234                         qcom,dload-mode = <&tcsr 0x6100>;
235                 };
236         };
237
238         pmu {
239                 compatible = "arm,cortex-a53-pmu";
240                 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
241         };
242
243         psci {
244                 compatible = "arm,psci-1.0";
245                 method = "smc";
246
247                 CPU_PD0: power-domain-cpu0 {
248                         #power-domain-cells = <0>;
249                         power-domains = <&CLUSTER_PD>;
250                         domain-idle-states = <&CPU_SLEEP_0>;
251                 };
252
253                 CPU_PD1: power-domain-cpu1 {
254                         #power-domain-cells = <0>;
255                         power-domains = <&CLUSTER_PD>;
256                         domain-idle-states = <&CPU_SLEEP_0>;
257                 };
258
259                 CPU_PD2: power-domain-cpu2 {
260                         #power-domain-cells = <0>;
261                         power-domains = <&CLUSTER_PD>;
262                         domain-idle-states = <&CPU_SLEEP_0>;
263                 };
264
265                 CPU_PD3: power-domain-cpu3 {
266                         #power-domain-cells = <0>;
267                         power-domains = <&CLUSTER_PD>;
268                         domain-idle-states = <&CPU_SLEEP_0>;
269                 };
270
271                 CLUSTER_PD: power-domain-cluster {
272                         #power-domain-cells = <0>;
273                         domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
274                 };
275         };
276
277         smd {
278                 compatible = "qcom,smd";
279
280                 rpm {
281                         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
282                         qcom,ipc = <&apcs 8 0>;
283                         qcom,smd-edge = <15>;
284
285                         rpm_requests: rpm-requests {
286                                 compatible = "qcom,rpm-msm8916";
287                                 qcom,smd-channels = "rpm_requests";
288
289                                 rpmcc: clock-controller {
290                                         compatible = "qcom,rpmcc-msm8916";
291                                         #clock-cells = <1>;
292                                 };
293
294                                 rpmpd: power-controller {
295                                         compatible = "qcom,msm8916-rpmpd";
296                                         #power-domain-cells = <1>;
297                                         operating-points-v2 = <&rpmpd_opp_table>;
298
299                                         rpmpd_opp_table: opp-table {
300                                                 compatible = "operating-points-v2";
301
302                                                 rpmpd_opp_ret: opp1 {
303                                                         opp-level = <1>;
304                                                 };
305                                                 rpmpd_opp_svs_krait: opp2 {
306                                                         opp-level = <2>;
307                                                 };
308                                                 rpmpd_opp_svs_soc: opp3 {
309                                                         opp-level = <3>;
310                                                 };
311                                                 rpmpd_opp_nom: opp4 {
312                                                         opp-level = <4>;
313                                                 };
314                                                 rpmpd_opp_turbo: opp5 {
315                                                         opp-level = <5>;
316                                                 };
317                                                 rpmpd_opp_super_turbo: opp6 {
318                                                         opp-level = <6>;
319                                                 };
320                                         };
321                                 };
322                         };
323                 };
324         };
325
326         smem {
327                 compatible = "qcom,smem";
328
329                 memory-region = <&smem_mem>;
330                 qcom,rpm-msg-ram = <&rpm_msg_ram>;
331
332                 hwlocks = <&tcsr_mutex 3>;
333         };
334
335         smp2p-hexagon {
336                 compatible = "qcom,smp2p";
337                 qcom,smem = <435>, <428>;
338
339                 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
340
341                 qcom,ipc = <&apcs 8 14>;
342
343                 qcom,local-pid = <0>;
344                 qcom,remote-pid = <1>;
345
346                 hexagon_smp2p_out: master-kernel {
347                         qcom,entry-name = "master-kernel";
348
349                         #qcom,smem-state-cells = <1>;
350                 };
351
352                 hexagon_smp2p_in: slave-kernel {
353                         qcom,entry-name = "slave-kernel";
354
355                         interrupt-controller;
356                         #interrupt-cells = <2>;
357                 };
358         };
359
360         smp2p-wcnss {
361                 compatible = "qcom,smp2p";
362                 qcom,smem = <451>, <431>;
363
364                 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
365
366                 qcom,ipc = <&apcs 8 18>;
367
368                 qcom,local-pid = <0>;
369                 qcom,remote-pid = <4>;
370
371                 wcnss_smp2p_out: master-kernel {
372                         qcom,entry-name = "master-kernel";
373
374                         #qcom,smem-state-cells = <1>;
375                 };
376
377                 wcnss_smp2p_in: slave-kernel {
378                         qcom,entry-name = "slave-kernel";
379
380                         interrupt-controller;
381                         #interrupt-cells = <2>;
382                 };
383         };
384
385         smsm {
386                 compatible = "qcom,smsm";
387
388                 #address-cells = <1>;
389                 #size-cells = <0>;
390
391                 qcom,ipc-1 = <&apcs 8 13>;
392                 qcom,ipc-3 = <&apcs 8 19>;
393
394                 apps_smsm: apps@0 {
395                         reg = <0>;
396
397                         #qcom,smem-state-cells = <1>;
398                 };
399
400                 hexagon_smsm: hexagon@1 {
401                         reg = <1>;
402                         interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
403
404                         interrupt-controller;
405                         #interrupt-cells = <2>;
406                 };
407
408                 wcnss_smsm: wcnss@6 {
409                         reg = <6>;
410                         interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
411
412                         interrupt-controller;
413                         #interrupt-cells = <2>;
414                 };
415         };
416
417         soc: soc {
418                 #address-cells = <1>;
419                 #size-cells = <1>;
420                 ranges = <0 0 0 0xffffffff>;
421                 compatible = "simple-bus";
422
423                 rng@22000 {
424                         compatible = "qcom,prng";
425                         reg = <0x00022000 0x200>;
426                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
427                         clock-names = "core";
428                 };
429
430                 restart@4ab000 {
431                         compatible = "qcom,pshold";
432                         reg = <0x004ab000 0x4>;
433                 };
434
435                 qfprom: qfprom@5c000 {
436                         compatible = "qcom,qfprom";
437                         reg = <0x0005c000 0x1000>;
438                         #address-cells = <1>;
439                         #size-cells = <1>;
440                         tsens_caldata: caldata@d0 {
441                                 reg = <0xd0 0x8>;
442                         };
443                         tsens_calsel: calsel@ec {
444                                 reg = <0xec 0x4>;
445                         };
446                 };
447
448                 rpm_msg_ram: memory@60000 {
449                         compatible = "qcom,rpm-msg-ram";
450                         reg = <0x00060000 0x8000>;
451                 };
452
453                 bimc: interconnect@400000 {
454                         compatible = "qcom,msm8916-bimc";
455                         reg = <0x00400000 0x62000>;
456                         #interconnect-cells = <1>;
457                         clock-names = "bus", "bus_a";
458                         clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
459                                  <&rpmcc RPM_SMD_BIMC_A_CLK>;
460                 };
461
462                 tsens: thermal-sensor@4a9000 {
463                         compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
464                         reg = <0x004a9000 0x1000>, /* TM */
465                               <0x004a8000 0x1000>; /* SROT */
466                         nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
467                         nvmem-cell-names = "calib", "calib_sel";
468                         #qcom,sensors = <5>;
469                         interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
470                         interrupt-names = "uplow";
471                         #thermal-sensor-cells = <1>;
472                 };
473
474                 pcnoc: interconnect@500000 {
475                         compatible = "qcom,msm8916-pcnoc";
476                         reg = <0x00500000 0x11000>;
477                         #interconnect-cells = <1>;
478                         clock-names = "bus", "bus_a";
479                         clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
480                                  <&rpmcc RPM_SMD_PCNOC_A_CLK>;
481                 };
482
483                 snoc: interconnect@580000 {
484                         compatible = "qcom,msm8916-snoc";
485                         reg = <0x00580000 0x14000>;
486                         #interconnect-cells = <1>;
487                         clock-names = "bus", "bus_a";
488                         clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
489                                  <&rpmcc RPM_SMD_SNOC_A_CLK>;
490                 };
491
492                 stm: stm@802000 {
493                         compatible = "arm,coresight-stm", "arm,primecell";
494                         reg = <0x00802000 0x1000>,
495                               <0x09280000 0x180000>;
496                         reg-names = "stm-base", "stm-stimulus-base";
497
498                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
499                         clock-names = "apb_pclk", "atclk";
500
501                         status = "disabled";
502
503                         out-ports {
504                                 port {
505                                         stm_out: endpoint {
506                                                 remote-endpoint = <&funnel0_in7>;
507                                         };
508                                 };
509                         };
510                 };
511
512                 /* System CTIs */
513                 /* CTI 0 - TMC connections */
514                 cti0: cti@810000 {
515                         compatible = "arm,coresight-cti", "arm,primecell";
516                         reg = <0x00810000 0x1000>;
517
518                         clocks = <&rpmcc RPM_QDSS_CLK>;
519                         clock-names = "apb_pclk";
520
521                         status = "disabled";
522                 };
523
524                 /* CTI 1 - TPIU connections */
525                 cti1: cti@811000 {
526                         compatible = "arm,coresight-cti", "arm,primecell";
527                         reg = <0x00811000 0x1000>;
528
529                         clocks = <&rpmcc RPM_QDSS_CLK>;
530                         clock-names = "apb_pclk";
531
532                         status = "disabled";
533                 };
534
535                 /* CTIs 2-11 - no information - not instantiated */
536
537                 tpiu: tpiu@820000 {
538                         compatible = "arm,coresight-tpiu", "arm,primecell";
539                         reg = <0x00820000 0x1000>;
540
541                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
542                         clock-names = "apb_pclk", "atclk";
543
544                         status = "disabled";
545
546                         in-ports {
547                                 port {
548                                         tpiu_in: endpoint {
549                                                 remote-endpoint = <&replicator_out1>;
550                                         };
551                                 };
552                         };
553                 };
554
555                 funnel0: funnel@821000 {
556                         compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
557                         reg = <0x00821000 0x1000>;
558
559                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
560                         clock-names = "apb_pclk", "atclk";
561
562                         status = "disabled";
563
564                         in-ports {
565                                 #address-cells = <1>;
566                                 #size-cells = <0>;
567
568                                 /*
569                                  * Not described input ports:
570                                  * 0 - connected to Resource and Power Manger CPU ETM
571                                  * 1 - not-connected
572                                  * 2 - connected to Modem CPU ETM
573                                  * 3 - not-connected
574                                  * 5 - not-connected
575                                  * 6 - connected trought funnel to Wireless CPU ETM
576                                  * 7 - connected to STM component
577                                  */
578
579                                 port@4 {
580                                         reg = <4>;
581                                         funnel0_in4: endpoint {
582                                                 remote-endpoint = <&funnel1_out>;
583                                         };
584                                 };
585
586                                 port@7 {
587                                         reg = <7>;
588                                         funnel0_in7: endpoint {
589                                                 remote-endpoint = <&stm_out>;
590                                         };
591                                 };
592                         };
593
594                         out-ports {
595                                 port {
596                                         funnel0_out: endpoint {
597                                                 remote-endpoint = <&etf_in>;
598                                         };
599                                 };
600                         };
601                 };
602
603                 replicator: replicator@824000 {
604                         compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
605                         reg = <0x00824000 0x1000>;
606
607                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
608                         clock-names = "apb_pclk", "atclk";
609
610                         status = "disabled";
611
612                         out-ports {
613                                 #address-cells = <1>;
614                                 #size-cells = <0>;
615
616                                 port@0 {
617                                         reg = <0>;
618                                         replicator_out0: endpoint {
619                                                 remote-endpoint = <&etr_in>;
620                                         };
621                                 };
622                                 port@1 {
623                                         reg = <1>;
624                                         replicator_out1: endpoint {
625                                                 remote-endpoint = <&tpiu_in>;
626                                         };
627                                 };
628                         };
629
630                         in-ports {
631                                 port {
632                                         replicator_in: endpoint {
633                                                 remote-endpoint = <&etf_out>;
634                                         };
635                                 };
636                         };
637                 };
638
639                 etf: etf@825000 {
640                         compatible = "arm,coresight-tmc", "arm,primecell";
641                         reg = <0x00825000 0x1000>;
642
643                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
644                         clock-names = "apb_pclk", "atclk";
645
646                         status = "disabled";
647
648                         in-ports {
649                                 port {
650                                         etf_in: endpoint {
651                                                 remote-endpoint = <&funnel0_out>;
652                                         };
653                                 };
654                         };
655
656                         out-ports {
657                                 port {
658                                         etf_out: endpoint {
659                                                 remote-endpoint = <&replicator_in>;
660                                         };
661                                 };
662                         };
663                 };
664
665                 etr: etr@826000 {
666                         compatible = "arm,coresight-tmc", "arm,primecell";
667                         reg = <0x00826000 0x1000>;
668
669                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
670                         clock-names = "apb_pclk", "atclk";
671
672                         status = "disabled";
673
674                         in-ports {
675                                 port {
676                                         etr_in: endpoint {
677                                                 remote-endpoint = <&replicator_out0>;
678                                         };
679                                 };
680                         };
681                 };
682
683                 funnel1: funnel@841000 {        /* APSS funnel only 4 inputs are used */
684                         compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
685                         reg = <0x00841000 0x1000>;
686
687                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
688                         clock-names = "apb_pclk", "atclk";
689
690                         status = "disabled";
691
692                         in-ports {
693                                 #address-cells = <1>;
694                                 #size-cells = <0>;
695
696                                 port@0 {
697                                         reg = <0>;
698                                         funnel1_in0: endpoint {
699                                                 remote-endpoint = <&etm0_out>;
700                                         };
701                                 };
702                                 port@1 {
703                                         reg = <1>;
704                                         funnel1_in1: endpoint {
705                                                 remote-endpoint = <&etm1_out>;
706                                         };
707                                 };
708                                 port@2 {
709                                         reg = <2>;
710                                         funnel1_in2: endpoint {
711                                                 remote-endpoint = <&etm2_out>;
712                                         };
713                                 };
714                                 port@3 {
715                                         reg = <3>;
716                                         funnel1_in3: endpoint {
717                                                 remote-endpoint = <&etm3_out>;
718                                         };
719                                 };
720                         };
721
722                         out-ports {
723                                 port {
724                                         funnel1_out: endpoint {
725                                                 remote-endpoint = <&funnel0_in4>;
726                                         };
727                                 };
728                         };
729                 };
730
731                 debug0: debug@850000 {
732                         compatible = "arm,coresight-cpu-debug", "arm,primecell";
733                         reg = <0x00850000 0x1000>;
734                         clocks = <&rpmcc RPM_QDSS_CLK>;
735                         clock-names = "apb_pclk";
736                         cpu = <&CPU0>;
737                         status = "disabled";
738                 };
739
740                 debug1: debug@852000 {
741                         compatible = "arm,coresight-cpu-debug", "arm,primecell";
742                         reg = <0x00852000 0x1000>;
743                         clocks = <&rpmcc RPM_QDSS_CLK>;
744                         clock-names = "apb_pclk";
745                         cpu = <&CPU1>;
746                         status = "disabled";
747                 };
748
749                 debug2: debug@854000 {
750                         compatible = "arm,coresight-cpu-debug", "arm,primecell";
751                         reg = <0x00854000 0x1000>;
752                         clocks = <&rpmcc RPM_QDSS_CLK>;
753                         clock-names = "apb_pclk";
754                         cpu = <&CPU2>;
755                         status = "disabled";
756                 };
757
758                 debug3: debug@856000 {
759                         compatible = "arm,coresight-cpu-debug", "arm,primecell";
760                         reg = <0x00856000 0x1000>;
761                         clocks = <&rpmcc RPM_QDSS_CLK>;
762                         clock-names = "apb_pclk";
763                         cpu = <&CPU3>;
764                         status = "disabled";
765                 };
766
767                 /* Core CTIs; CTIs 12-15 */
768                 /* CTI - CPU-0 */
769                 cti12: cti@858000 {
770                         compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
771                                      "arm,primecell";
772                         reg = <0x00858000 0x1000>;
773
774                         clocks = <&rpmcc RPM_QDSS_CLK>;
775                         clock-names = "apb_pclk";
776
777                         cpu = <&CPU0>;
778                         arm,cs-dev-assoc = <&etm0>;
779
780                         status = "disabled";
781                 };
782
783                 /* CTI - CPU-1 */
784                 cti13: cti@859000 {
785                         compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
786                                      "arm,primecell";
787                         reg = <0x00859000 0x1000>;
788
789                         clocks = <&rpmcc RPM_QDSS_CLK>;
790                         clock-names = "apb_pclk";
791
792                         cpu = <&CPU1>;
793                         arm,cs-dev-assoc = <&etm1>;
794
795                         status = "disabled";
796                 };
797
798                 /* CTI - CPU-2 */
799                 cti14: cti@85a000 {
800                         compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
801                                      "arm,primecell";
802                         reg = <0x0085a000 0x1000>;
803
804                         clocks = <&rpmcc RPM_QDSS_CLK>;
805                         clock-names = "apb_pclk";
806
807                         cpu = <&CPU2>;
808                         arm,cs-dev-assoc = <&etm2>;
809
810                         status = "disabled";
811                 };
812
813                 /* CTI - CPU-3 */
814                 cti15: cti@85b000 {
815                         compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
816                                      "arm,primecell";
817                         reg = <0x0085b000 0x1000>;
818
819                         clocks = <&rpmcc RPM_QDSS_CLK>;
820                         clock-names = "apb_pclk";
821
822                         cpu = <&CPU3>;
823                         arm,cs-dev-assoc = <&etm3>;
824
825                         status = "disabled";
826                 };
827
828                 etm0: etm@85c000 {
829                         compatible = "arm,coresight-etm4x", "arm,primecell";
830                         reg = <0x0085c000 0x1000>;
831
832                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
833                         clock-names = "apb_pclk", "atclk";
834                         arm,coresight-loses-context-with-cpu;
835
836                         cpu = <&CPU0>;
837
838                         status = "disabled";
839
840                         out-ports {
841                                 port {
842                                         etm0_out: endpoint {
843                                                 remote-endpoint = <&funnel1_in0>;
844                                         };
845                                 };
846                         };
847                 };
848
849                 etm1: etm@85d000 {
850                         compatible = "arm,coresight-etm4x", "arm,primecell";
851                         reg = <0x0085d000 0x1000>;
852
853                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
854                         clock-names = "apb_pclk", "atclk";
855                         arm,coresight-loses-context-with-cpu;
856
857                         cpu = <&CPU1>;
858
859                         status = "disabled";
860
861                         out-ports {
862                                 port {
863                                         etm1_out: endpoint {
864                                                 remote-endpoint = <&funnel1_in1>;
865                                         };
866                                 };
867                         };
868                 };
869
870                 etm2: etm@85e000 {
871                         compatible = "arm,coresight-etm4x", "arm,primecell";
872                         reg = <0x0085e000 0x1000>;
873
874                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
875                         clock-names = "apb_pclk", "atclk";
876                         arm,coresight-loses-context-with-cpu;
877
878                         cpu = <&CPU2>;
879
880                         status = "disabled";
881
882                         out-ports {
883                                 port {
884                                         etm2_out: endpoint {
885                                                 remote-endpoint = <&funnel1_in2>;
886                                         };
887                                 };
888                         };
889                 };
890
891                 etm3: etm@85f000 {
892                         compatible = "arm,coresight-etm4x", "arm,primecell";
893                         reg = <0x0085f000 0x1000>;
894
895                         clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
896                         clock-names = "apb_pclk", "atclk";
897                         arm,coresight-loses-context-with-cpu;
898
899                         cpu = <&CPU3>;
900
901                         status = "disabled";
902
903                         out-ports {
904                                 port {
905                                         etm3_out: endpoint {
906                                                 remote-endpoint = <&funnel1_in3>;
907                                         };
908                                 };
909                         };
910                 };
911
912                 msmgpio: pinctrl@1000000 {
913                         compatible = "qcom,msm8916-pinctrl";
914                         reg = <0x01000000 0x300000>;
915                         interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
916                         gpio-controller;
917                         gpio-ranges = <&msmgpio 0 0 122>;
918                         #gpio-cells = <2>;
919                         interrupt-controller;
920                         #interrupt-cells = <2>;
921                 };
922
923                 gcc: clock-controller@1800000 {
924                         compatible = "qcom,gcc-msm8916";
925                         #clock-cells = <1>;
926                         #reset-cells = <1>;
927                         #power-domain-cells = <1>;
928                         reg = <0x01800000 0x80000>;
929                 };
930
931                 tcsr_mutex: hwlock@1905000 {
932                         compatible = "qcom,tcsr-mutex";
933                         reg = <0x01905000 0x20000>;
934                         #hwlock-cells = <1>;
935                 };
936
937                 tcsr: syscon@1937000 {
938                         compatible = "qcom,tcsr-msm8916", "syscon";
939                         reg = <0x01937000 0x30000>;
940                 };
941
942                 mdss: mdss@1a00000 {
943                         status = "disabled";
944                         compatible = "qcom,mdss";
945                         reg = <0x01a00000 0x1000>,
946                               <0x01ac8000 0x3000>;
947                         reg-names = "mdss_phys", "vbif_phys";
948
949                         power-domains = <&gcc MDSS_GDSC>;
950
951                         clocks = <&gcc GCC_MDSS_AHB_CLK>,
952                                  <&gcc GCC_MDSS_AXI_CLK>,
953                                  <&gcc GCC_MDSS_VSYNC_CLK>;
954                         clock-names = "iface",
955                                       "bus",
956                                       "vsync";
957
958                         interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
959
960                         interrupt-controller;
961                         #interrupt-cells = <1>;
962
963                         #address-cells = <1>;
964                         #size-cells = <1>;
965                         ranges;
966
967                         mdp: mdp@1a01000 {
968                                 compatible = "qcom,mdp5";
969                                 reg = <0x01a01000 0x89000>;
970                                 reg-names = "mdp_phys";
971
972                                 interrupt-parent = <&mdss>;
973                                 interrupts = <0>;
974
975                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
976                                          <&gcc GCC_MDSS_AXI_CLK>,
977                                          <&gcc GCC_MDSS_MDP_CLK>,
978                                          <&gcc GCC_MDSS_VSYNC_CLK>;
979                                 clock-names = "iface",
980                                               "bus",
981                                               "core",
982                                               "vsync";
983
984                                 iommus = <&apps_iommu 4>;
985
986                                 ports {
987                                         #address-cells = <1>;
988                                         #size-cells = <0>;
989
990                                         port@0 {
991                                                 reg = <0>;
992                                                 mdp5_intf1_out: endpoint {
993                                                         remote-endpoint = <&dsi0_in>;
994                                                 };
995                                         };
996                                 };
997                         };
998
999                         dsi0: dsi@1a98000 {
1000                                 compatible = "qcom,mdss-dsi-ctrl";
1001                                 reg = <0x01a98000 0x25c>;
1002                                 reg-names = "dsi_ctrl";
1003
1004                                 interrupt-parent = <&mdss>;
1005                                 interrupts = <4>;
1006
1007                                 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
1008                                                   <&gcc PCLK0_CLK_SRC>;
1009                                 assigned-clock-parents = <&dsi_phy0 0>,
1010                                                          <&dsi_phy0 1>;
1011
1012                                 clocks = <&gcc GCC_MDSS_MDP_CLK>,
1013                                          <&gcc GCC_MDSS_AHB_CLK>,
1014                                          <&gcc GCC_MDSS_AXI_CLK>,
1015                                          <&gcc GCC_MDSS_BYTE0_CLK>,
1016                                          <&gcc GCC_MDSS_PCLK0_CLK>,
1017                                          <&gcc GCC_MDSS_ESC0_CLK>;
1018                                 clock-names = "mdp_core",
1019                                               "iface",
1020                                               "bus",
1021                                               "byte",
1022                                               "pixel",
1023                                               "core";
1024                                 phys = <&dsi_phy0>;
1025                                 phy-names = "dsi-phy";
1026
1027                                 #address-cells = <1>;
1028                                 #size-cells = <0>;
1029
1030                                 ports {
1031                                         #address-cells = <1>;
1032                                         #size-cells = <0>;
1033
1034                                         port@0 {
1035                                                 reg = <0>;
1036                                                 dsi0_in: endpoint {
1037                                                         remote-endpoint = <&mdp5_intf1_out>;
1038                                                 };
1039                                         };
1040
1041                                         port@1 {
1042                                                 reg = <1>;
1043                                                 dsi0_out: endpoint {
1044                                                 };
1045                                         };
1046                                 };
1047                         };
1048
1049                         dsi_phy0: dsi-phy@1a98300 {
1050                                 compatible = "qcom,dsi-phy-28nm-lp";
1051                                 reg = <0x01a98300 0xd4>,
1052                                       <0x01a98500 0x280>,
1053                                       <0x01a98780 0x30>;
1054                                 reg-names = "dsi_pll",
1055                                             "dsi_phy",
1056                                             "dsi_phy_regulator";
1057
1058                                 #clock-cells = <1>;
1059                                 #phy-cells = <0>;
1060
1061                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1062                                          <&xo_board>;
1063                                 clock-names = "iface", "ref";
1064                         };
1065                 };
1066
1067                 camss: camss@1b00000 {
1068                         compatible = "qcom,msm8916-camss";
1069                         reg = <0x01b0ac00 0x200>,
1070                                 <0x01b00030 0x4>,
1071                                 <0x01b0b000 0x200>,
1072                                 <0x01b00038 0x4>,
1073                                 <0x01b08000 0x100>,
1074                                 <0x01b08400 0x100>,
1075                                 <0x01b0a000 0x500>,
1076                                 <0x01b00020 0x10>,
1077                                 <0x01b10000 0x1000>;
1078                         reg-names = "csiphy0",
1079                                 "csiphy0_clk_mux",
1080                                 "csiphy1",
1081                                 "csiphy1_clk_mux",
1082                                 "csid0",
1083                                 "csid1",
1084                                 "ispif",
1085                                 "csi_clk_mux",
1086                                 "vfe0";
1087                         interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
1088                                 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
1089                                 <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
1090                                 <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
1091                                 <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
1092                                 <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
1093                         interrupt-names = "csiphy0",
1094                                 "csiphy1",
1095                                 "csid0",
1096                                 "csid1",
1097                                 "ispif",
1098                                 "vfe0";
1099                         power-domains = <&gcc VFE_GDSC>;
1100                         clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1101                                 <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
1102                                 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
1103                                 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
1104                                 <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
1105                                 <&gcc GCC_CAMSS_CSI0_CLK>,
1106                                 <&gcc GCC_CAMSS_CSI0PHY_CLK>,
1107                                 <&gcc GCC_CAMSS_CSI0PIX_CLK>,
1108                                 <&gcc GCC_CAMSS_CSI0RDI_CLK>,
1109                                 <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
1110                                 <&gcc GCC_CAMSS_CSI1_CLK>,
1111                                 <&gcc GCC_CAMSS_CSI1PHY_CLK>,
1112                                 <&gcc GCC_CAMSS_CSI1PIX_CLK>,
1113                                 <&gcc GCC_CAMSS_CSI1RDI_CLK>,
1114                                 <&gcc GCC_CAMSS_AHB_CLK>,
1115                                 <&gcc GCC_CAMSS_VFE0_CLK>,
1116                                 <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
1117                                 <&gcc GCC_CAMSS_VFE_AHB_CLK>,
1118                                 <&gcc GCC_CAMSS_VFE_AXI_CLK>;
1119                         clock-names = "top_ahb",
1120                                 "ispif_ahb",
1121                                 "csiphy0_timer",
1122                                 "csiphy1_timer",
1123                                 "csi0_ahb",
1124                                 "csi0",
1125                                 "csi0_phy",
1126                                 "csi0_pix",
1127                                 "csi0_rdi",
1128                                 "csi1_ahb",
1129                                 "csi1",
1130                                 "csi1_phy",
1131                                 "csi1_pix",
1132                                 "csi1_rdi",
1133                                 "ahb",
1134                                 "vfe0",
1135                                 "csi_vfe0",
1136                                 "vfe_ahb",
1137                                 "vfe_axi";
1138                         iommus = <&apps_iommu 3>;
1139                         status = "disabled";
1140                         ports {
1141                                 #address-cells = <1>;
1142                                 #size-cells = <0>;
1143                         };
1144                 };
1145
1146                 cci: cci@1b0c000 {
1147                         compatible = "qcom,msm8916-cci";
1148                         #address-cells = <1>;
1149                         #size-cells = <0>;
1150                         reg = <0x01b0c000 0x1000>;
1151                         interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
1152                         clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1153                                 <&gcc GCC_CAMSS_CCI_AHB_CLK>,
1154                                 <&gcc GCC_CAMSS_CCI_CLK>,
1155                                 <&gcc GCC_CAMSS_AHB_CLK>;
1156                         clock-names = "camss_top_ahb", "cci_ahb",
1157                                           "cci", "camss_ahb";
1158                         assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
1159                                           <&gcc GCC_CAMSS_CCI_CLK>;
1160                         assigned-clock-rates = <80000000>, <19200000>;
1161                         pinctrl-names = "default";
1162                         pinctrl-0 = <&cci0_default>;
1163                         status = "disabled";
1164
1165                         cci_i2c0: i2c-bus@0 {
1166                                 reg = <0>;
1167                                 clock-frequency = <400000>;
1168                                 #address-cells = <1>;
1169                                 #size-cells = <0>;
1170                         };
1171                 };
1172
1173                 gpu@1c00000 {
1174                         compatible = "qcom,adreno-306.0", "qcom,adreno";
1175                         reg = <0x01c00000 0x20000>;
1176                         reg-names = "kgsl_3d0_reg_memory";
1177                         interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1178                         interrupt-names = "kgsl_3d0_irq";
1179                         clock-names =
1180                             "core",
1181                             "iface",
1182                             "mem",
1183                             "mem_iface",
1184                             "alt_mem_iface",
1185                             "gfx3d";
1186                         clocks =
1187                             <&gcc GCC_OXILI_GFX3D_CLK>,
1188                             <&gcc GCC_OXILI_AHB_CLK>,
1189                             <&gcc GCC_OXILI_GMEM_CLK>,
1190                             <&gcc GCC_BIMC_GFX_CLK>,
1191                             <&gcc GCC_BIMC_GPU_CLK>,
1192                             <&gcc GFX3D_CLK_SRC>;
1193                         power-domains = <&gcc OXILI_GDSC>;
1194                         operating-points-v2 = <&gpu_opp_table>;
1195                         iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
1196
1197                         gpu_opp_table: opp-table {
1198                                 compatible = "operating-points-v2";
1199
1200                                 opp-400000000 {
1201                                         opp-hz = /bits/ 64 <400000000>;
1202                                 };
1203                                 opp-19200000 {
1204                                         opp-hz = /bits/ 64 <19200000>;
1205                                 };
1206                         };
1207                 };
1208
1209                 venus: video-codec@1d00000 {
1210                         compatible = "qcom,msm8916-venus";
1211                         reg = <0x01d00000 0xff000>;
1212                         interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1213                         power-domains = <&gcc VENUS_GDSC>;
1214                         clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
1215                                  <&gcc GCC_VENUS0_AHB_CLK>,
1216                                  <&gcc GCC_VENUS0_AXI_CLK>;
1217                         clock-names = "core", "iface", "bus";
1218                         iommus = <&apps_iommu 5>;
1219                         memory-region = <&venus_mem>;
1220                         status = "okay";
1221
1222                         video-decoder {
1223                                 compatible = "venus-decoder";
1224                         };
1225
1226                         video-encoder {
1227                                 compatible = "venus-encoder";
1228                         };
1229                 };
1230
1231                 apps_iommu: iommu@1ef0000 {
1232                         #address-cells = <1>;
1233                         #size-cells = <1>;
1234                         #iommu-cells = <1>;
1235                         compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1236                         ranges = <0 0x01e20000 0x40000>;
1237                         reg = <0x01ef0000 0x3000>;
1238                         clocks = <&gcc GCC_SMMU_CFG_CLK>,
1239                                  <&gcc GCC_APSS_TCU_CLK>;
1240                         clock-names = "iface", "bus";
1241                         qcom,iommu-secure-id = <17>;
1242
1243                         // vfe:
1244                         iommu-ctx@3000 {
1245                                 compatible = "qcom,msm-iommu-v1-sec";
1246                                 reg = <0x3000 0x1000>;
1247                                 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1248                         };
1249
1250                         // mdp_0:
1251                         iommu-ctx@4000 {
1252                                 compatible = "qcom,msm-iommu-v1-ns";
1253                                 reg = <0x4000 0x1000>;
1254                                 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1255                         };
1256
1257                         // venus_ns:
1258                         iommu-ctx@5000 {
1259                                 compatible = "qcom,msm-iommu-v1-sec";
1260                                 reg = <0x5000 0x1000>;
1261                                 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1262                         };
1263                 };
1264
1265                 gpu_iommu: iommu@1f08000 {
1266                         #address-cells = <1>;
1267                         #size-cells = <1>;
1268                         #iommu-cells = <1>;
1269                         compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1270                         ranges = <0 0x01f08000 0x10000>;
1271                         clocks = <&gcc GCC_SMMU_CFG_CLK>,
1272                                  <&gcc GCC_GFX_TCU_CLK>;
1273                         clock-names = "iface", "bus";
1274                         qcom,iommu-secure-id = <18>;
1275
1276                         // gfx3d_user:
1277                         iommu-ctx@1000 {
1278                                 compatible = "qcom,msm-iommu-v1-ns";
1279                                 reg = <0x1000 0x1000>;
1280                                 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
1281                         };
1282
1283                         // gfx3d_priv:
1284                         iommu-ctx@2000 {
1285                                 compatible = "qcom,msm-iommu-v1-ns";
1286                                 reg = <0x2000 0x1000>;
1287                                 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
1288                         };
1289                 };
1290
1291                 spmi_bus: spmi@200f000 {
1292                         compatible = "qcom,spmi-pmic-arb";
1293                         reg = <0x0200f000 0x001000>,
1294                               <0x02400000 0x400000>,
1295                               <0x02c00000 0x400000>,
1296                               <0x03800000 0x200000>,
1297                               <0x0200a000 0x002100>;
1298                         reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1299                         interrupt-names = "periph_irq";
1300                         interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1301                         qcom,ee = <0>;
1302                         qcom,channel = <0>;
1303                         #address-cells = <2>;
1304                         #size-cells = <0>;
1305                         interrupt-controller;
1306                         #interrupt-cells = <4>;
1307                 };
1308
1309                 mpss: remoteproc@4080000 {
1310                         compatible = "qcom,msm8916-mss-pil", "qcom,q6v5-pil";
1311                         reg = <0x04080000 0x100>,
1312                               <0x04020000 0x040>;
1313
1314                         reg-names = "qdsp6", "rmb";
1315
1316                         interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
1317                                               <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1318                                               <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1319                                               <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1320                                               <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1321                         interrupt-names = "wdog", "fatal", "ready",
1322                                           "handover", "stop-ack";
1323
1324                         power-domains = <&rpmpd MSM8916_VDDCX>,
1325                                         <&rpmpd MSM8916_VDDMX>;
1326                         power-domain-names = "cx", "mx";
1327
1328                         clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1329                                  <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
1330                                  <&gcc GCC_BOOT_ROM_AHB_CLK>,
1331                                  <&xo_board>;
1332                         clock-names = "iface", "bus", "mem", "xo";
1333
1334                         qcom,smem-states = <&hexagon_smp2p_out 0>;
1335                         qcom,smem-state-names = "stop";
1336
1337                         resets = <&scm 0>;
1338                         reset-names = "mss_restart";
1339
1340                         qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
1341
1342                         status = "disabled";
1343
1344                         mba {
1345                                 memory-region = <&mba_mem>;
1346                         };
1347
1348                         mpss {
1349                                 memory-region = <&mpss_mem>;
1350                         };
1351
1352                         smd-edge {
1353                                 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1354
1355                                 qcom,smd-edge = <0>;
1356                                 qcom,ipc = <&apcs 8 12>;
1357                                 qcom,remote-pid = <1>;
1358
1359                                 label = "hexagon";
1360
1361                                 fastrpc {
1362                                         compatible = "qcom,fastrpc";
1363                                         qcom,smd-channels = "fastrpcsmd-apps-dsp";
1364                                         label = "adsp";
1365
1366                                         #address-cells = <1>;
1367                                         #size-cells = <0>;
1368
1369                                         cb@1 {
1370                                                 compatible = "qcom,fastrpc-compute-cb";
1371                                                 reg = <1>;
1372                                         };
1373                                 };
1374                         };
1375                 };
1376
1377                 sound: sound@7702000 {
1378                         status = "disabled";
1379                         compatible = "qcom,apq8016-sbc-sndcard";
1380                         reg = <0x07702000 0x4>, <0x07702004 0x4>;
1381                         reg-names = "mic-iomux", "spkr-iomux";
1382                 };
1383
1384                 lpass: audio-controller@7708000 {
1385                         status = "disabled";
1386                         compatible = "qcom,lpass-cpu-apq8016";
1387                         clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
1388                                  <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
1389                                  <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
1390                                  <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
1391                                  <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
1392                                  <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
1393                                  <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
1394
1395                         clock-names = "ahbix-clk",
1396                                         "pcnoc-mport-clk",
1397                                         "pcnoc-sway-clk",
1398                                         "mi2s-bit-clk0",
1399                                         "mi2s-bit-clk1",
1400                                         "mi2s-bit-clk2",
1401                                         "mi2s-bit-clk3";
1402                         #sound-dai-cells = <1>;
1403
1404                         interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
1405                         interrupt-names = "lpass-irq-lpaif";
1406                         reg = <0x07708000 0x10000>;
1407                         reg-names = "lpass-lpaif";
1408
1409                         #address-cells = <1>;
1410                         #size-cells = <0>;
1411                 };
1412
1413                 lpass_codec: audio-codec@771c000 {
1414                         compatible = "qcom,msm8916-wcd-digital-codec";
1415                         reg = <0x0771c000 0x400>;
1416                         clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
1417                                  <&gcc GCC_CODEC_DIGCODEC_CLK>;
1418                         clock-names = "ahbix-clk", "mclk";
1419                         #sound-dai-cells = <1>;
1420                 };
1421
1422                 sdhc_1: sdhci@7824000 {
1423                         compatible = "qcom,sdhci-msm-v4";
1424                         reg = <0x07824900 0x11c>, <0x07824000 0x800>;
1425                         reg-names = "hc_mem", "core_mem";
1426
1427                         interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1428                                      <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1429                         interrupt-names = "hc_irq", "pwr_irq";
1430                         clocks = <&gcc GCC_SDCC1_APPS_CLK>,
1431                                  <&gcc GCC_SDCC1_AHB_CLK>,
1432                                  <&xo_board>;
1433                         clock-names = "core", "iface", "xo";
1434                         mmc-ddr-1_8v;
1435                         bus-width = <8>;
1436                         non-removable;
1437                         status = "disabled";
1438                 };
1439
1440                 sdhc_2: sdhci@7864000 {
1441                         compatible = "qcom,sdhci-msm-v4";
1442                         reg = <0x07864900 0x11c>, <0x07864000 0x800>;
1443                         reg-names = "hc_mem", "core_mem";
1444
1445                         interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1446                                      <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1447                         interrupt-names = "hc_irq", "pwr_irq";
1448                         clocks = <&gcc GCC_SDCC2_APPS_CLK>,
1449                                  <&gcc GCC_SDCC2_AHB_CLK>,
1450                                  <&xo_board>;
1451                         clock-names = "core", "iface", "xo";
1452                         bus-width = <4>;
1453                         status = "disabled";
1454                 };
1455
1456                 blsp_dma: dma-controller@7884000 {
1457                         compatible = "qcom,bam-v1.7.0";
1458                         reg = <0x07884000 0x23000>;
1459                         interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1460                         clocks = <&gcc GCC_BLSP1_AHB_CLK>;
1461                         clock-names = "bam_clk";
1462                         #dma-cells = <1>;
1463                         qcom,ee = <0>;
1464                         status = "disabled";
1465                 };
1466
1467                 blsp1_uart1: serial@78af000 {
1468                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1469                         reg = <0x078af000 0x200>;
1470                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1471                         clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1472                         clock-names = "core", "iface";
1473                         dmas = <&blsp_dma 1>, <&blsp_dma 0>;
1474                         dma-names = "rx", "tx";
1475                         pinctrl-names = "default", "sleep";
1476                         pinctrl-0 = <&blsp1_uart1_default>;
1477                         pinctrl-1 = <&blsp1_uart1_sleep>;
1478                         status = "disabled";
1479                 };
1480
1481                 blsp1_uart2: serial@78b0000 {
1482                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1483                         reg = <0x078b0000 0x200>;
1484                         interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1485                         clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1486                         clock-names = "core", "iface";
1487                         dmas = <&blsp_dma 3>, <&blsp_dma 2>;
1488                         dma-names = "rx", "tx";
1489                         pinctrl-names = "default", "sleep";
1490                         pinctrl-0 = <&blsp1_uart2_default>;
1491                         pinctrl-1 = <&blsp1_uart2_sleep>;
1492                         status = "disabled";
1493                 };
1494
1495                 blsp_i2c1: i2c@78b5000 {
1496                         compatible = "qcom,i2c-qup-v2.2.1";
1497                         reg = <0x078b5000 0x500>;
1498                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1499                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
1500                                  <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
1501                         clock-names = "iface", "core";
1502                         pinctrl-names = "default", "sleep";
1503                         pinctrl-0 = <&i2c1_default>;
1504                         pinctrl-1 = <&i2c1_sleep>;
1505                         #address-cells = <1>;
1506                         #size-cells = <0>;
1507                         status = "disabled";
1508                 };
1509
1510                 blsp_spi1: spi@78b5000 {
1511                         compatible = "qcom,spi-qup-v2.2.1";
1512                         reg = <0x078b5000 0x500>;
1513                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1514                         clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
1515                                  <&gcc GCC_BLSP1_AHB_CLK>;
1516                         clock-names = "core", "iface";
1517                         dmas = <&blsp_dma 5>, <&blsp_dma 4>;
1518                         dma-names = "rx", "tx";
1519                         pinctrl-names = "default", "sleep";
1520                         pinctrl-0 = <&spi1_default>;
1521                         pinctrl-1 = <&spi1_sleep>;
1522                         #address-cells = <1>;
1523                         #size-cells = <0>;
1524                         status = "disabled";
1525                 };
1526
1527                 blsp_i2c2: i2c@78b6000 {
1528                         compatible = "qcom,i2c-qup-v2.2.1";
1529                         reg = <0x078b6000 0x500>;
1530                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1531                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
1532                                  <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
1533                         clock-names = "iface", "core";
1534                         pinctrl-names = "default", "sleep";
1535                         pinctrl-0 = <&i2c2_default>;
1536                         pinctrl-1 = <&i2c2_sleep>;
1537                         #address-cells = <1>;
1538                         #size-cells = <0>;
1539                         status = "disabled";
1540                 };
1541
1542                 blsp_spi2: spi@78b6000 {
1543                         compatible = "qcom,spi-qup-v2.2.1";
1544                         reg = <0x078b6000 0x500>;
1545                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1546                         clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
1547                                  <&gcc GCC_BLSP1_AHB_CLK>;
1548                         clock-names = "core", "iface";
1549                         dmas = <&blsp_dma 7>, <&blsp_dma 6>;
1550                         dma-names = "rx", "tx";
1551                         pinctrl-names = "default", "sleep";
1552                         pinctrl-0 = <&spi2_default>;
1553                         pinctrl-1 = <&spi2_sleep>;
1554                         #address-cells = <1>;
1555                         #size-cells = <0>;
1556                         status = "disabled";
1557                 };
1558
1559                 blsp_i2c3: i2c@78b7000 {
1560                         compatible = "qcom,i2c-qup-v2.2.1";
1561                         reg = <0x078b7000 0x500>;
1562                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1563                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
1564                                  <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
1565                         clock-names = "iface", "core";
1566                         pinctrl-names = "default", "sleep";
1567                         pinctrl-0 = <&i2c3_default>;
1568                         pinctrl-1 = <&i2c3_sleep>;
1569                         #address-cells = <1>;
1570                         #size-cells = <0>;
1571                         status = "disabled";
1572                 };
1573
1574                 blsp_spi3: spi@78b7000 {
1575                         compatible = "qcom,spi-qup-v2.2.1";
1576                         reg = <0x078b7000 0x500>;
1577                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1578                         clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1579                                  <&gcc GCC_BLSP1_AHB_CLK>;
1580                         clock-names = "core", "iface";
1581                         dmas = <&blsp_dma 9>, <&blsp_dma 8>;
1582                         dma-names = "rx", "tx";
1583                         pinctrl-names = "default", "sleep";
1584                         pinctrl-0 = <&spi3_default>;
1585                         pinctrl-1 = <&spi3_sleep>;
1586                         #address-cells = <1>;
1587                         #size-cells = <0>;
1588                         status = "disabled";
1589                 };
1590
1591                 blsp_i2c4: i2c@78b8000 {
1592                         compatible = "qcom,i2c-qup-v2.2.1";
1593                         reg = <0x078b8000 0x500>;
1594                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1595                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
1596                                  <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
1597                         clock-names = "iface", "core";
1598                         pinctrl-names = "default", "sleep";
1599                         pinctrl-0 = <&i2c4_default>;
1600                         pinctrl-1 = <&i2c4_sleep>;
1601                         #address-cells = <1>;
1602                         #size-cells = <0>;
1603                         status = "disabled";
1604                 };
1605
1606                 blsp_spi4: spi@78b8000 {
1607                         compatible = "qcom,spi-qup-v2.2.1";
1608                         reg = <0x078b8000 0x500>;
1609                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1610                         clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
1611                                  <&gcc GCC_BLSP1_AHB_CLK>;
1612                         clock-names = "core", "iface";
1613                         dmas = <&blsp_dma 11>, <&blsp_dma 10>;
1614                         dma-names = "rx", "tx";
1615                         pinctrl-names = "default", "sleep";
1616                         pinctrl-0 = <&spi4_default>;
1617                         pinctrl-1 = <&spi4_sleep>;
1618                         #address-cells = <1>;
1619                         #size-cells = <0>;
1620                         status = "disabled";
1621                 };
1622
1623                 blsp_i2c5: i2c@78b9000 {
1624                         compatible = "qcom,i2c-qup-v2.2.1";
1625                         reg = <0x078b9000 0x500>;
1626                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1627                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
1628                                  <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>;
1629                         clock-names = "iface", "core";
1630                         pinctrl-names = "default", "sleep";
1631                         pinctrl-0 = <&i2c5_default>;
1632                         pinctrl-1 = <&i2c5_sleep>;
1633                         #address-cells = <1>;
1634                         #size-cells = <0>;
1635                         status = "disabled";
1636                 };
1637
1638                 blsp_spi5: spi@78b9000 {
1639                         compatible = "qcom,spi-qup-v2.2.1";
1640                         reg = <0x078b9000 0x500>;
1641                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1642                         clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
1643                                  <&gcc GCC_BLSP1_AHB_CLK>;
1644                         clock-names = "core", "iface";
1645                         dmas = <&blsp_dma 13>, <&blsp_dma 12>;
1646                         dma-names = "rx", "tx";
1647                         pinctrl-names = "default", "sleep";
1648                         pinctrl-0 = <&spi5_default>;
1649                         pinctrl-1 = <&spi5_sleep>;
1650                         #address-cells = <1>;
1651                         #size-cells = <0>;
1652                         status = "disabled";
1653                 };
1654
1655                 blsp_i2c6: i2c@78ba000 {
1656                         compatible = "qcom,i2c-qup-v2.2.1";
1657                         reg = <0x078ba000 0x500>;
1658                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1659                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
1660                                  <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
1661                         clock-names = "iface", "core";
1662                         pinctrl-names = "default", "sleep";
1663                         pinctrl-0 = <&i2c6_default>;
1664                         pinctrl-1 = <&i2c6_sleep>;
1665                         #address-cells = <1>;
1666                         #size-cells = <0>;
1667                         status = "disabled";
1668                 };
1669
1670                 blsp_spi6: spi@78ba000 {
1671                         compatible = "qcom,spi-qup-v2.2.1";
1672                         reg = <0x078ba000 0x500>;
1673                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1674                         clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
1675                                  <&gcc GCC_BLSP1_AHB_CLK>;
1676                         clock-names = "core", "iface";
1677                         dmas = <&blsp_dma 15>, <&blsp_dma 14>;
1678                         dma-names = "rx", "tx";
1679                         pinctrl-names = "default", "sleep";
1680                         pinctrl-0 = <&spi6_default>;
1681                         pinctrl-1 = <&spi6_sleep>;
1682                         #address-cells = <1>;
1683                         #size-cells = <0>;
1684                         status = "disabled";
1685                 };
1686
1687                 usb: usb@78d9000 {
1688                         compatible = "qcom,ci-hdrc";
1689                         reg = <0x078d9000 0x200>,
1690                               <0x078d9200 0x200>;
1691                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1692                                      <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1693                         clocks = <&gcc GCC_USB_HS_AHB_CLK>,
1694                                  <&gcc GCC_USB_HS_SYSTEM_CLK>;
1695                         clock-names = "iface", "core";
1696                         assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
1697                         assigned-clock-rates = <80000000>;
1698                         resets = <&gcc GCC_USB_HS_BCR>;
1699                         reset-names = "core";
1700                         phy_type = "ulpi";
1701                         dr_mode = "otg";
1702                         hnp-disable;
1703                         srp-disable;
1704                         adp-disable;
1705                         ahb-burst-config = <0>;
1706                         phy-names = "usb-phy";
1707                         phys = <&usb_hs_phy>;
1708                         status = "disabled";
1709                         #reset-cells = <1>;
1710
1711                         ulpi {
1712                                 usb_hs_phy: phy {
1713                                         compatible = "qcom,usb-hs-phy-msm8916",
1714                                                      "qcom,usb-hs-phy";
1715                                         #phy-cells = <0>;
1716                                         clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
1717                                         clock-names = "ref", "sleep";
1718                                         resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
1719                                         reset-names = "phy", "por";
1720                                         qcom,init-seq = /bits/ 8 <0x0 0x44
1721                                                 0x1 0x6b 0x2 0x24 0x3 0x13>;
1722                                 };
1723                         };
1724                 };
1725
1726                 pronto: remoteproc@a21b000 {
1727                         compatible = "qcom,pronto-v2-pil", "qcom,pronto";
1728                         reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
1729                         reg-names = "ccu", "dxe", "pmu";
1730
1731                         memory-region = <&wcnss_mem>;
1732
1733                         interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1734                                               <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1735                                               <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1736                                               <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1737                                               <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1738                         interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
1739
1740                         power-domains = <&rpmpd MSM8916_VDDCX>,
1741                                         <&rpmpd MSM8916_VDDMX>;
1742                         power-domain-names = "cx", "mx";
1743
1744                         qcom,state = <&wcnss_smp2p_out 0>;
1745                         qcom,state-names = "stop";
1746
1747                         pinctrl-names = "default";
1748                         pinctrl-0 = <&wcnss_pin_a>;
1749
1750                         status = "disabled";
1751
1752                         iris {
1753                                 compatible = "qcom,wcn3620";
1754
1755                                 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1756                                 clock-names = "xo";
1757                         };
1758
1759                         smd-edge {
1760                                 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1761
1762                                 qcom,ipc = <&apcs 8 17>;
1763                                 qcom,smd-edge = <6>;
1764                                 qcom,remote-pid = <4>;
1765
1766                                 label = "pronto";
1767
1768                                 wcnss {
1769                                         compatible = "qcom,wcnss";
1770                                         qcom,smd-channels = "WCNSS_CTRL";
1771
1772                                         qcom,mmio = <&pronto>;
1773
1774                                         bt {
1775                                                 compatible = "qcom,wcnss-bt";
1776                                         };
1777
1778                                         wifi {
1779                                                 compatible = "qcom,wcnss-wlan";
1780
1781                                                 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1782                                                              <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1783                                                 interrupt-names = "tx", "rx";
1784
1785                                                 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1786                                                 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1787                                         };
1788                                 };
1789                         };
1790                 };
1791
1792                 intc: interrupt-controller@b000000 {
1793                         compatible = "qcom,msm-qgic2";
1794                         interrupt-controller;
1795                         #interrupt-cells = <3>;
1796                         reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
1797                               <0x0b001000 0x1000>, <0x0b004000 0x2000>;
1798                         interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1799                 };
1800
1801                 apcs: mailbox@b011000 {
1802                         compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
1803                         reg = <0x0b011000 0x1000>;
1804                         #mbox-cells = <1>;
1805                         clocks = <&a53pll>, <&gcc GPLL0_VOTE>;
1806                         clock-names = "pll", "aux";
1807                         #clock-cells = <0>;
1808                 };
1809
1810                 a53pll: clock@b016000 {
1811                         compatible = "qcom,msm8916-a53pll";
1812                         reg = <0x0b016000 0x40>;
1813                         #clock-cells = <0>;
1814                 };
1815
1816                 timer@b020000 {
1817                         #address-cells = <1>;
1818                         #size-cells = <1>;
1819                         ranges;
1820                         compatible = "arm,armv7-timer-mem";
1821                         reg = <0x0b020000 0x1000>;
1822                         clock-frequency = <19200000>;
1823
1824                         frame@b021000 {
1825                                 frame-number = <0>;
1826                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1827                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1828                                 reg = <0x0b021000 0x1000>,
1829                                       <0x0b022000 0x1000>;
1830                         };
1831
1832                         frame@b023000 {
1833                                 frame-number = <1>;
1834                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1835                                 reg = <0x0b023000 0x1000>;
1836                                 status = "disabled";
1837                         };
1838
1839                         frame@b024000 {
1840                                 frame-number = <2>;
1841                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1842                                 reg = <0x0b024000 0x1000>;
1843                                 status = "disabled";
1844                         };
1845
1846                         frame@b025000 {
1847                                 frame-number = <3>;
1848                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1849                                 reg = <0x0b025000 0x1000>;
1850                                 status = "disabled";
1851                         };
1852
1853                         frame@b026000 {
1854                                 frame-number = <4>;
1855                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1856                                 reg = <0x0b026000 0x1000>;
1857                                 status = "disabled";
1858                         };
1859
1860                         frame@b027000 {
1861                                 frame-number = <5>;
1862                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1863                                 reg = <0x0b027000 0x1000>;
1864                                 status = "disabled";
1865                         };
1866
1867                         frame@b028000 {
1868                                 frame-number = <6>;
1869                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1870                                 reg = <0x0b028000 0x1000>;
1871                                 status = "disabled";
1872                         };
1873                 };
1874         };
1875
1876         thermal-zones {
1877                 cpu0-1-thermal {
1878                         polling-delay-passive = <250>;
1879                         polling-delay = <1000>;
1880
1881                         thermal-sensors = <&tsens 5>;
1882
1883                         trips {
1884                                 cpu0_1_alert0: trip-point0 {
1885                                         temperature = <75000>;
1886                                         hysteresis = <2000>;
1887                                         type = "passive";
1888                                 };
1889                                 cpu0_1_crit: cpu_crit {
1890                                         temperature = <110000>;
1891                                         hysteresis = <2000>;
1892                                         type = "critical";
1893                                 };
1894                         };
1895
1896                         cooling-maps {
1897                                 map0 {
1898                                         trip = <&cpu0_1_alert0>;
1899                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1900                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1901                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1902                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1903                                 };
1904                         };
1905                 };
1906
1907                 cpu2-3-thermal {
1908                         polling-delay-passive = <250>;
1909                         polling-delay = <1000>;
1910
1911                         thermal-sensors = <&tsens 4>;
1912
1913                         trips {
1914                                 cpu2_3_alert0: trip-point0 {
1915                                         temperature = <75000>;
1916                                         hysteresis = <2000>;
1917                                         type = "passive";
1918                                 };
1919                                 cpu2_3_crit: cpu_crit {
1920                                         temperature = <110000>;
1921                                         hysteresis = <2000>;
1922                                         type = "critical";
1923                                 };
1924                         };
1925
1926                         cooling-maps {
1927                                 map0 {
1928                                         trip = <&cpu2_3_alert0>;
1929                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1930                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1931                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1932                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1933                                 };
1934                         };
1935                 };
1936
1937                 gpu-thermal {
1938                         polling-delay-passive = <250>;
1939                         polling-delay = <1000>;
1940
1941                         thermal-sensors = <&tsens 2>;
1942
1943                         trips {
1944                                 gpu_alert0: trip-point0 {
1945                                         temperature = <75000>;
1946                                         hysteresis = <2000>;
1947                                         type = "passive";
1948                                 };
1949                                 gpu_crit: gpu_crit {
1950                                         temperature = <95000>;
1951                                         hysteresis = <2000>;
1952                                         type = "critical";
1953                                 };
1954                         };
1955                 };
1956
1957                 camera-thermal {
1958                         polling-delay-passive = <250>;
1959                         polling-delay = <1000>;
1960
1961                         thermal-sensors = <&tsens 1>;
1962
1963                         trips {
1964                                 cam_alert0: trip-point0 {
1965                                         temperature = <75000>;
1966                                         hysteresis = <2000>;
1967                                         type = "hot";
1968                                 };
1969                         };
1970                 };
1971
1972                 modem-thermal {
1973                         polling-delay-passive = <250>;
1974                         polling-delay = <1000>;
1975
1976                         thermal-sensors = <&tsens 0>;
1977
1978                         trips {
1979                                 modem_alert0: trip-point0 {
1980                                         temperature = <85000>;
1981                                         hysteresis = <2000>;
1982                                         type = "hot";
1983                                 };
1984                         };
1985                 };
1986
1987         };
1988
1989         timer {
1990                 compatible = "arm,armv8-timer";
1991                 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1992                              <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1993                              <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1994                              <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1995         };
1996 };
1997
1998 #include "msm8916-pins.dtsi"