Merge tag 'uml-for-linus-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-rpi.git] / arch / arm64 / boot / dts / qcom / msm8939.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
4  * Copyright (c) 2020-2023, Linaro Limited
5  */
6
7 #include <dt-bindings/clock/qcom,gcc-msm8939.h>
8 #include <dt-bindings/clock/qcom,rpmcc.h>
9 #include <dt-bindings/interconnect/qcom,msm8939.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-msm8939.h>
13 #include <dt-bindings/thermal/thermal.h>
14
15 / {
16         interrupt-parent = <&intc>;
17
18         /*
19          * Stock LK wants address-cells/size-cells = 2
20          * A number of our drivers want address/size cells = 1
21          * hence the disparity between top-level and /soc below.
22          */
23         #address-cells = <2>;
24         #size-cells = <2>;
25
26         clocks {
27                 xo_board: xo-board {
28                         compatible = "fixed-clock";
29                         #clock-cells = <0>;
30                         clock-frequency = <19200000>;
31                 };
32
33                 sleep_clk: sleep-clk {
34                         compatible = "fixed-clock";
35                         #clock-cells = <0>;
36                         clock-frequency = <32768>;
37                 };
38         };
39
40         cpus {
41                 #address-cells = <1>;
42                 #size-cells = <0>;
43
44                 CPU0: cpu@100 {
45                         compatible = "arm,cortex-a53";
46                         device_type = "cpu";
47                         enable-method = "spin-table";
48                         reg = <0x100>;
49                         next-level-cache = <&L2_1>;
50                         qcom,acc = <&acc0>;
51                         qcom,saw = <&saw0>;
52                         cpu-idle-states = <&CPU_SLEEP_0>;
53                         clocks = <&apcs1_mbox>;
54                         #cooling-cells = <2>;
55                         L2_1: l2-cache {
56                                 compatible = "cache";
57                                 cache-level = <2>;
58                                 cache-unified;
59                         };
60                 };
61
62                 CPU1: cpu@101 {
63                         compatible = "arm,cortex-a53";
64                         device_type = "cpu";
65                         enable-method = "spin-table";
66                         reg = <0x101>;
67                         next-level-cache = <&L2_1>;
68                         qcom,acc = <&acc1>;
69                         qcom,saw = <&saw1>;
70                         cpu-idle-states = <&CPU_SLEEP_0>;
71                         clocks = <&apcs1_mbox>;
72                         #cooling-cells = <2>;
73                 };
74
75                 CPU2: cpu@102 {
76                         compatible = "arm,cortex-a53";
77                         device_type = "cpu";
78                         enable-method = "spin-table";
79                         reg = <0x102>;
80                         next-level-cache = <&L2_1>;
81                         qcom,acc = <&acc2>;
82                         qcom,saw = <&saw2>;
83                         cpu-idle-states = <&CPU_SLEEP_0>;
84                         clocks = <&apcs1_mbox>;
85                         #cooling-cells = <2>;
86                 };
87
88                 CPU3: cpu@103 {
89                         compatible = "arm,cortex-a53";
90                         device_type = "cpu";
91                         enable-method = "spin-table";
92                         reg = <0x103>;
93                         next-level-cache = <&L2_1>;
94                         qcom,acc = <&acc3>;
95                         qcom,saw = <&saw3>;
96                         cpu-idle-states = <&CPU_SLEEP_0>;
97                         clocks = <&apcs1_mbox>;
98                         #cooling-cells = <2>;
99                 };
100
101                 CPU4: cpu@0 {
102                         compatible = "arm,cortex-a53";
103                         device_type = "cpu";
104                         enable-method = "spin-table";
105                         reg = <0x0>;
106                         qcom,acc = <&acc4>;
107                         qcom,saw = <&saw4>;
108                         cpu-idle-states = <&CPU_SLEEP_0>;
109                         clocks = <&apcs0_mbox>;
110                         #cooling-cells = <2>;
111                         next-level-cache = <&L2_0>;
112                         L2_0: l2-cache {
113                                 compatible = "cache";
114                                 cache-level = <2>;
115                                 cache-unified;
116                         };
117                 };
118
119                 CPU5: cpu@1 {
120                         compatible = "arm,cortex-a53";
121                         device_type = "cpu";
122                         enable-method = "spin-table";
123                         reg = <0x1>;
124                         next-level-cache = <&L2_0>;
125                         qcom,acc = <&acc5>;
126                         qcom,saw = <&saw5>;
127                         cpu-idle-states = <&CPU_SLEEP_0>;
128                         clocks = <&apcs0_mbox>;
129                         #cooling-cells = <2>;
130                 };
131
132                 CPU6: cpu@2 {
133                         compatible = "arm,cortex-a53";
134                         device_type = "cpu";
135                         enable-method = "spin-table";
136                         reg = <0x2>;
137                         next-level-cache = <&L2_0>;
138                         qcom,acc = <&acc6>;
139                         qcom,saw = <&saw6>;
140                         cpu-idle-states = <&CPU_SLEEP_0>;
141                         clocks = <&apcs0_mbox>;
142                         #cooling-cells = <2>;
143                 };
144
145                 CPU7: cpu@3 {
146                         compatible = "arm,cortex-a53";
147                         device_type = "cpu";
148                         enable-method = "spin-table";
149                         reg = <0x3>;
150                         next-level-cache = <&L2_0>;
151                         qcom,acc = <&acc7>;
152                         qcom,saw = <&saw7>;
153                         cpu-idle-states = <&CPU_SLEEP_0>;
154                         clocks = <&apcs0_mbox>;
155                         #cooling-cells = <2>;
156                 };
157
158                 idle-states {
159                         CPU_SLEEP_0: cpu-sleep-0 {
160                                 compatible = "arm,idle-state";
161                                 entry-latency-us = <130>;
162                                 exit-latency-us = <150>;
163                                 min-residency-us = <2000>;
164                                 local-timer-stop;
165                         };
166                 };
167         };
168
169         /*
170          * MSM8939 has a big.LITTLE heterogeneous computing architecture,
171          * consisting of two clusters of four ARM Cortex-A53s each. The
172          * LITTLE cluster runs at 1.0-1.2GHz, and the big cluster runs
173          * at 1.5-1.7GHz.
174          *
175          * The enable method used here is spin-table which presupposes use
176          * of a 2nd stage boot shim such as lk2nd to have installed a
177          * spin-table, the downstream non-psci/non-spin-table method that
178          * default msm8916/msm8936/msm8939 will not be supported upstream.
179          */
180         cpu-map {
181                 /* LITTLE (efficiency) cluster */
182                 cluster0 {
183                         core0 {
184                                 cpu = <&CPU4>;
185                         };
186
187                         core1 {
188                                 cpu = <&CPU5>;
189                         };
190
191                         core2 {
192                                 cpu = <&CPU6>;
193                         };
194
195                         core3 {
196                                 cpu = <&CPU7>;
197                         };
198                 };
199
200                 /* big (performance) cluster */
201                 /* Boot CPU is cluster 1 core 0 */
202                 cluster1 {
203                         core0 {
204                                 cpu = <&CPU0>;
205                         };
206
207                         core1 {
208                                 cpu = <&CPU1>;
209                         };
210
211                         core2 {
212                                 cpu = <&CPU2>;
213                         };
214
215                         core3 {
216                                 cpu = <&CPU3>;
217                         };
218                 };
219         };
220
221         firmware {
222                 scm: scm {
223                         compatible = "qcom,scm-msm8916", "qcom,scm";
224                         clocks = <&gcc GCC_CRYPTO_CLK>,
225                                  <&gcc GCC_CRYPTO_AXI_CLK>,
226                                  <&gcc GCC_CRYPTO_AHB_CLK>;
227                         clock-names = "core", "bus", "iface";
228                         #reset-cells = <1>;
229
230                         qcom,dload-mode = <&tcsr 0x6100>;
231                 };
232         };
233
234         memory@80000000 {
235                 device_type = "memory";
236                 /* We expect the bootloader to fill in the reg */
237                 reg = <0x0 0x80000000 0x0 0x0>;
238         };
239
240         pmu {
241                 compatible = "arm,cortex-a53-pmu";
242                 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
243         };
244
245         rpm: remoteproc {
246                 compatible = "qcom,msm8936-rpm-proc", "qcom,rpm-proc";
247
248                 smd-edge {
249                         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
250                         qcom,ipc = <&apcs1_mbox 8 0>;
251                         qcom,smd-edge = <15>;
252
253                         rpm_requests: rpm-requests {
254                                 compatible = "qcom,rpm-msm8936";
255                                 qcom,smd-channels = "rpm_requests";
256
257                                 rpmcc: clock-controller {
258                                         compatible = "qcom,rpmcc-msm8936", "qcom,rpmcc";
259                                         #clock-cells = <1>;
260                                         clock-names = "xo";
261                                         clocks = <&xo_board>;
262                                 };
263
264                                 rpmpd: power-controller {
265                                         compatible = "qcom,msm8939-rpmpd";
266                                         #power-domain-cells = <1>;
267                                         operating-points-v2 = <&rpmpd_opp_table>;
268
269                                         rpmpd_opp_table: opp-table {
270                                                 compatible = "operating-points-v2";
271
272                                                 rpmpd_opp_ret: opp1 {
273                                                         opp-level = <1>;
274                                                 };
275
276                                                 rpmpd_opp_svs_krait: opp2 {
277                                                         opp-level = <2>;
278                                                 };
279
280                                                 rpmpd_opp_svs_soc: opp3 {
281                                                         opp-level = <3>;
282                                                 };
283
284                                                 rpmpd_opp_nom: opp4 {
285                                                         opp-level = <4>;
286                                                 };
287
288                                                 rpmpd_opp_turbo: opp5 {
289                                                         opp-level = <5>;
290                                                 };
291
292                                                 rpmpd_opp_super_turbo: opp6 {
293                                                         opp-level = <6>;
294                                                 };
295                                         };
296                                 };
297                         };
298                 };
299         };
300
301         reserved-memory {
302                 #address-cells = <2>;
303                 #size-cells = <2>;
304                 ranges;
305
306                 tz-apps@86000000 {
307                         reg = <0x0 0x86000000 0x0 0x300000>;
308                         no-map;
309                 };
310
311                 smem@86300000 {
312                         compatible = "qcom,smem";
313                         reg = <0x0 0x86300000 0x0 0x100000>;
314                         no-map;
315
316                         hwlocks = <&tcsr_mutex 3>;
317                         qcom,rpm-msg-ram = <&rpm_msg_ram>;
318                 };
319
320                 hypervisor@86400000 {
321                         reg = <0x0 0x86400000 0x0 0x100000>;
322                         no-map;
323                 };
324
325                 tz@86500000 {
326                         reg = <0x0 0x86500000 0x0 0x180000>;
327                         no-map;
328                 };
329
330                 reserved@86680000 {
331                         reg = <0x0 0x86680000 0x0 0x80000>;
332                         no-map;
333                 };
334
335                 rmtfs@86700000 {
336                         compatible = "qcom,rmtfs-mem";
337                         reg = <0x0 0x86700000 0x0 0xe0000>;
338                         no-map;
339
340                         qcom,client-id = <1>;
341                 };
342
343                 rfsa@867e0000 {
344                         reg = <0x0 0x867e0000 0x0 0x20000>;
345                         no-map;
346                 };
347
348                 mpss_mem: mpss@86800000 {
349                         reg = <0x0 0x86800000 0x0 0x5500000>;
350                         no-map;
351                 };
352
353                 wcnss_mem: wcnss@8bd00000 {
354                         reg = <0x0 0x8bd00000 0x0 0x600000>;
355                         no-map;
356                 };
357
358                 venus_mem: venus@8c300000 {
359                         reg = <0x0 0x8c300000 0x0 0x800000>;
360                         no-map;
361                 };
362
363                 mba_mem: mba@8cb00000 {
364                         reg = <0x0 0x8cb00000 0x0 0x100000>;
365                         no-map;
366                 };
367         };
368
369         smp2p-hexagon {
370                 compatible = "qcom,smp2p";
371                 qcom,smem = <435>, <428>;
372
373                 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
374
375                 mboxes = <&apcs1_mbox 14>;
376
377                 qcom,local-pid = <0>;
378                 qcom,remote-pid = <1>;
379
380                 hexagon_smp2p_out: master-kernel {
381                         qcom,entry-name = "master-kernel";
382
383                         #qcom,smem-state-cells = <1>;
384                 };
385
386                 hexagon_smp2p_in: slave-kernel {
387                         qcom,entry-name = "slave-kernel";
388
389                         interrupt-controller;
390                         #interrupt-cells = <2>;
391                 };
392         };
393
394         smp2p-wcnss {
395                 compatible = "qcom,smp2p";
396                 qcom,smem = <451>, <431>;
397
398                 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
399
400                 mboxes = <&apcs1_mbox 18>;
401
402                 qcom,local-pid = <0>;
403                 qcom,remote-pid = <4>;
404
405                 wcnss_smp2p_in: slave-kernel {
406                         qcom,entry-name = "slave-kernel";
407
408                         interrupt-controller;
409                         #interrupt-cells = <2>;
410                 };
411
412                 wcnss_smp2p_out: master-kernel {
413                         qcom,entry-name = "master-kernel";
414
415                         #qcom,smem-state-cells = <1>;
416                 };
417         };
418
419         smsm {
420                 compatible = "qcom,smsm";
421
422                 #address-cells = <1>;
423                 #size-cells = <0>;
424
425                 qcom,ipc-1 = <&apcs1_mbox 8 13>;
426                 qcom,ipc-3 = <&apcs1_mbox 8 19>;
427
428                 apps_smsm: apps@0 {
429                         reg = <0>;
430
431                         #qcom,smem-state-cells = <1>;
432                 };
433
434                 hexagon_smsm: hexagon@1 {
435                         reg = <1>;
436                         interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
437
438                         interrupt-controller;
439                         #interrupt-cells = <2>;
440                 };
441
442                 wcnss_smsm: wcnss@6 {
443                         reg = <6>;
444                         interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
445
446                         interrupt-controller;
447                         #interrupt-cells = <2>;
448                 };
449         };
450
451         soc: soc@0 {
452                 compatible = "simple-bus";
453                 #address-cells = <1>;
454                 #size-cells = <1>;
455                 ranges = <0 0 0 0xffffffff>;
456
457                 rng@22000 {
458                         compatible = "qcom,prng";
459                         reg = <0x00022000 0x200>;
460                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
461                         clock-names = "core";
462                 };
463
464                 qfprom: qfprom@5c000 {
465                         compatible = "qcom,msm8916-qfprom", "qcom,qfprom";
466                         reg = <0x0005c000 0x1000>;
467                         #address-cells = <1>;
468                         #size-cells = <1>;
469
470                         tsens_base1: base1@a0 {
471                                 reg = <0xa0 0x1>;
472                                 bits = <0 8>;
473                         };
474
475                         tsens_s6_p1: s6-p1@a1 {
476                                 reg = <0xa1 0x1>;
477                                 bits = <0 6>;
478                         };
479
480                         tsens_s6_p2: s6-p2@a1 {
481                                 reg = <0xa1 0x2>;
482                                 bits = <6 6>;
483                         };
484
485                         tsens_s7_p1: s7-p1@a2 {
486                                 reg = <0xa2 0x2>;
487                                 bits = <4 6>;
488                         };
489
490                         tsens_s7_p2: s7-p2@a3 {
491                                 reg = <0xa3 0x1>;
492                                 bits = <2 6>;
493                         };
494
495                         tsens_s8_p1: s8-p1@a4 {
496                                 reg = <0xa4 0x1>;
497                                 bits = <0 6>;
498                         };
499
500                         tsens_s8_p2: s8-p2@a4 {
501                                 reg = <0xa4 0x2>;
502                                 bits = <6 6>;
503                         };
504
505                         tsens_s9_p1: s9-p1@a5 {
506                                 reg = <0xa5 0x2>;
507                                 bits = <4 6>;
508                         };
509
510                         tsens_s9_p2: s9-p2@a6 {
511                                 reg = <0xa6 0x1>;
512                                 bits = <2 6>;
513                         };
514
515                         tsens_base2: base2@a7 {
516                                 reg = <0xa7 0x1>;
517                                 bits = <0 8>;
518                         };
519
520                         tsens_mode: mode@d0 {
521                                 reg = <0xd0 0x1>;
522                                 bits = <0 3>;
523                         };
524
525                         tsens_s0_p1: s0-p1@d0 {
526                                 reg = <0xd0 0x2>;
527                                 bits = <3 6>;
528                         };
529
530                         tsens_s0_p2: s0-p1@d1 {
531                                 reg = <0xd1 0x1>;
532                                 bits = <1 6>;
533                         };
534
535                         tsens_s1_p1: s1-p1@d1 {
536                                 reg = <0xd1 0x2>;
537                                 bits = <7 6>;
538                         };
539
540                         tsens_s1_p2: s1-p2@d2 {
541                                 reg = <0xd2 0x2>;
542                                 bits = <5 6>;
543                         };
544
545                         tsens_s2_p1: s2-p1@d3 {
546                                 reg = <0xd3 0x2>;
547                                 bits = <3 6>;
548                         };
549
550                         tsens_s2_p2: s2-p2@d4 {
551                                 reg = <0xd4 0x1>;
552                                 bits = <1 6>;
553                         };
554
555                         tsens_s3_p1: s3-p1@d4 {
556                                 reg = <0xd4 0x2>;
557                                 bits = <7 6>;
558                         };
559
560                         tsens_s3_p2: s3-p2@d5 {
561                                 reg = <0xd5 0x2>;
562                                 bits = <5 6>;
563                         };
564
565                         tsens_s5_p1: s5-p1@d6 {
566                                 reg = <0xd6 0x2>;
567                                 bits = <3 6>;
568                         };
569
570                         tsens_s5_p2: s5-p2@d7 {
571                                 reg = <0xd7 0x1>;
572                                 bits = <1 6>;
573                         };
574                 };
575
576                 rpm_msg_ram: sram@60000 {
577                         compatible = "qcom,rpm-msg-ram";
578                         reg = <0x00060000 0x8000>;
579                 };
580
581                 bimc: interconnect@400000 {
582                         compatible = "qcom,msm8939-bimc";
583                         reg = <0x00400000 0x62000>;
584                         clock-names = "bus", "bus_a";
585                         clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
586                                  <&rpmcc RPM_SMD_BIMC_A_CLK>;
587                         #interconnect-cells = <1>;
588                 };
589
590                 tsens: thermal-sensor@4a9000 {
591                         compatible = "qcom,msm8939-tsens", "qcom,tsens-v0_1";
592                         reg = <0x004a9000 0x1000>, /* TM */
593                               <0x004a8000 0x1000>; /* SROT */
594                         nvmem-cells = <&tsens_mode>,
595                                       <&tsens_base1>, <&tsens_base2>,
596                                       <&tsens_s0_p1>, <&tsens_s0_p2>,
597                                       <&tsens_s1_p1>, <&tsens_s1_p2>,
598                                       <&tsens_s2_p1>, <&tsens_s2_p2>,
599                                       <&tsens_s3_p1>, <&tsens_s3_p2>,
600                                       <&tsens_s5_p1>, <&tsens_s5_p2>,
601                                       <&tsens_s6_p1>, <&tsens_s6_p2>,
602                                       <&tsens_s7_p1>, <&tsens_s7_p2>,
603                                       <&tsens_s8_p1>, <&tsens_s8_p2>,
604                                       <&tsens_s9_p1>, <&tsens_s9_p2>;
605                         nvmem-cell-names = "mode",
606                                            "base1", "base2",
607                                            "s0_p1", "s0_p2",
608                                            "s1_p1", "s1_p2",
609                                            "s2_p1", "s2_p2",
610                                            "s3_p1", "s3_p2",
611                                            "s5_p1", "s5_p2",
612                                            "s6_p1", "s6_p2",
613                                            "s7_p1", "s7_p2",
614                                            "s8_p1", "s8_p2",
615                                            "s9_p1", "s9_p2";
616                         #qcom,sensors = <9>;
617                         interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
618                         interrupt-names = "uplow";
619                         #thermal-sensor-cells = <1>;
620                 };
621
622                 restart@4ab000 {
623                         compatible = "qcom,pshold";
624                         reg = <0x004ab000 0x4>;
625                 };
626
627                 pcnoc: interconnect@500000 {
628                         compatible = "qcom,msm8939-pcnoc";
629                         reg = <0x00500000 0x11000>;
630                         clock-names = "bus", "bus_a";
631                         clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
632                                  <&rpmcc RPM_SMD_PCNOC_A_CLK>;
633                         #interconnect-cells = <1>;
634                 };
635
636                 snoc: interconnect@580000 {
637                         compatible = "qcom,msm8939-snoc";
638                         reg = <0x00580000 0x14080>;
639                         clock-names = "bus", "bus_a";
640                         clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
641                                  <&rpmcc RPM_SMD_SNOC_A_CLK>;
642                         #interconnect-cells = <1>;
643
644                         snoc_mm: interconnect-snoc {
645                                 compatible = "qcom,msm8939-snoc-mm";
646                                 clock-names = "bus", "bus_a";
647                                 clocks = <&rpmcc RPM_SMD_SYSMMNOC_CLK>,
648                                          <&rpmcc RPM_SMD_SYSMMNOC_A_CLK>;
649                                 #interconnect-cells = <1>;
650                         };
651                 };
652
653                 tlmm: pinctrl@1000000 {
654                         compatible = "qcom,msm8916-pinctrl";
655                         reg = <0x01000000 0x300000>;
656                         interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
657                         gpio-controller;
658                         gpio-ranges = <&tlmm 0 0 122>;
659                         #gpio-cells = <2>;
660                         interrupt-controller;
661                         #interrupt-cells = <2>;
662
663                         blsp_i2c1_default: blsp-i2c1-default-state {
664                                 pins = "gpio2", "gpio3";
665                                 function = "blsp_i2c1";
666                                 drive-strength = <2>;
667                                 bias-disable;
668                         };
669
670                         blsp_i2c1_sleep: blsp-i2c1-sleep-state {
671                                 pins = "gpio2", "gpio3";
672                                 function = "gpio";
673                                 drive-strength = <2>;
674                                 bias-disable;
675                         };
676
677                         blsp_i2c2_default: blsp-i2c2-default-state {
678                                 pins = "gpio6", "gpio7";
679                                 function = "blsp_i2c2";
680                                 drive-strength = <2>;
681                                 bias-disable;
682                         };
683
684                         blsp_i2c2_sleep: blsp-i2c2-sleep-state {
685                                 pins = "gpio6", "gpio7";
686                                 function = "gpio";
687                                 drive-strength = <2>;
688                                 bias-disable;
689                         };
690
691                         blsp_i2c3_default: blsp-i2c3-default-state {
692                                 pins = "gpio10", "gpio11";
693                                 function = "blsp_i2c3";
694                                 drive-strength = <2>;
695                                 bias-disable;
696                         };
697
698                         blsp_i2c3_sleep: blsp-i2c3-sleep-state {
699                                 pins = "gpio10", "gpio11";
700                                 function = "gpio";
701                                 drive-strength = <2>;
702                                 bias-disable;
703                         };
704
705                         blsp_i2c4_default: blsp-i2c4-default-state {
706                                 pins = "gpio14", "gpio15";
707                                 function = "blsp_i2c4";
708                                 drive-strength = <2>;
709                                 bias-disable;
710                         };
711
712                         blsp_i2c4_sleep: blsp-i2c4-sleep-state {
713                                 pins = "gpio14", "gpio15";
714                                 function = "gpio";
715                                 drive-strength = <2>;
716                                 bias-disable;
717                         };
718
719                         blsp_i2c5_default: blsp-i2c5-default-state {
720                                 pins = "gpio18", "gpio19";
721                                 function = "blsp_i2c5";
722                                 drive-strength = <2>;
723                                 bias-disable;
724                         };
725
726                         blsp_i2c5_sleep: blsp-i2c5-sleep-state {
727                                 pins = "gpio18", "gpio19";
728                                 function = "gpio";
729                                 drive-strength = <2>;
730                                 bias-disable;
731                         };
732
733                         blsp_i2c6_default: blsp-i2c6-default-state {
734                                 pins = "gpio22", "gpio23";
735                                 function = "blsp_i2c6";
736                                 drive-strength = <2>;
737                                 bias-disable;
738                         };
739
740                         blsp_i2c6_sleep: blsp-i2c6-sleep-state {
741                                 pins = "gpio22", "gpio23";
742                                 function = "gpio";
743                                 drive-strength = <2>;
744                                 bias-disable;
745                         };
746
747                         blsp_spi1_default: blsp-spi1-default-state {
748                                 spi-pins {
749                                         pins = "gpio0", "gpio1", "gpio3";
750                                         function = "blsp_spi1";
751                                         drive-strength = <12>;
752                                         bias-disable;
753                                 };
754
755                                 cs-pins {
756                                         pins = "gpio2";
757                                         function = "gpio";
758                                         drive-strength = <16>;
759                                         bias-disable;
760                                         output-high;
761                                 };
762                         };
763
764                         blsp_spi1_sleep: blsp-spi1-sleep-state {
765                                 pins = "gpio0", "gpio1", "gpio2", "gpio3";
766                                 function = "gpio";
767                                 drive-strength = <2>;
768                                 bias-pull-down;
769                         };
770
771                         blsp_spi2_default: blsp-spi2-default-state {
772                                 spi-pins {
773                                         pins = "gpio4", "gpio5", "gpio7";
774                                         function = "blsp_spi2";
775                                         drive-strength = <12>;
776                                         bias-disable;
777                                 };
778
779                                 cs-pins {
780                                         pins = "gpio6";
781                                         function = "gpio";
782                                         drive-strength = <16>;
783                                         bias-disable;
784                                         output-high;
785                                 };
786                         };
787
788                         blsp_spi2_sleep: blsp-spi2-sleep-state {
789                                 pins = "gpio4", "gpio5", "gpio6", "gpio7";
790                                 function = "gpio";
791                                 drive-strength = <2>;
792                                 bias-pull-down;
793                         };
794
795                         blsp_spi3_default: blsp-spi3-default-state {
796                                 spi-pins {
797                                         pins = "gpio8", "gpio9", "gpio11";
798                                         function = "blsp_spi3";
799                                         drive-strength = <12>;
800                                         bias-disable;
801                                 };
802
803                                 cs-pins {
804                                         pins = "gpio10";
805                                         function = "gpio";
806                                         drive-strength = <16>;
807                                         bias-disable;
808                                         output-high;
809                                 };
810                         };
811
812                         blsp_spi3_sleep: blsp-spi3-sleep-state {
813                                 pins = "gpio8", "gpio9", "gpio10", "gpio11";
814                                 function = "gpio";
815                                 drive-strength = <2>;
816                                 bias-pull-down;
817                         };
818
819                         blsp_spi4_default: blsp-spi4-default-state {
820                                 spi-pins {
821                                         pins = "gpio12", "gpio13", "gpio15";
822                                         function = "blsp_spi4";
823                                         drive-strength = <12>;
824                                         bias-disable;
825                                 };
826
827                                 cs-pins {
828                                         pins = "gpio14";
829                                         function = "gpio";
830                                         drive-strength = <16>;
831                                         bias-disable;
832                                         output-high;
833                                 };
834                         };
835
836                         blsp_spi4_sleep: blsp-spi4-sleep-state {
837                                 pins = "gpio12", "gpio13", "gpio14", "gpio15";
838                                 function = "gpio";
839                                 drive-strength = <2>;
840                                 bias-pull-down;
841                         };
842
843                         blsp_spi5_default: blsp-spi5-default-state {
844                                 spi-pins {
845                                         pins = "gpio16", "gpio17", "gpio19";
846                                         function = "blsp_spi5";
847                                         drive-strength = <12>;
848                                         bias-disable;
849                                 };
850
851                                 cs-pins {
852                                         pins = "gpio18";
853                                         function = "gpio";
854                                         drive-strength = <16>;
855                                         bias-disable;
856                                         output-high;
857                                 };
858                         };
859
860                         blsp_spi5_sleep: blsp-spi5-sleep-state {
861                                 pins = "gpio16", "gpio17", "gpio18", "gpio19";
862                                 function = "gpio";
863                                 drive-strength = <2>;
864                                 bias-pull-down;
865                         };
866
867                         blsp_spi6_default: blsp-spi6-default-state {
868                                 spi-pins {
869                                         pins = "gpio20", "gpio21", "gpio23";
870                                         function = "blsp_spi6";
871                                         drive-strength = <12>;
872                                         bias-disable;
873                                 };
874
875                                 cs-pins {
876                                         pins = "gpio22";
877                                         function = "gpio";
878                                         drive-strength = <16>;
879                                         bias-disable;
880                                         output-high;
881                                 };
882                         };
883
884                         blsp_spi6_sleep: blsp-spi6-sleep-state {
885                                 pins = "gpio20", "gpio21", "gpio22", "gpio23";
886                                 function = "gpio";
887                                 drive-strength = <2>;
888                                 bias-pull-down;
889                         };
890
891                         blsp_uart1_default: blsp-uart1-default-state {
892                                 pins = "gpio0", "gpio1", "gpio2", "gpio3";
893                                 function = "blsp_uart1";
894                                 drive-strength = <16>;
895                                 bias-disable;
896                         };
897
898                         blsp_uart1_sleep: blsp-uart1-sleep-state {
899                                 pins = "gpio0", "gpio1", "gpio2", "gpio3";
900                                 function = "gpio";
901                                 drive-strength = <2>;
902                                 bias-pull-down;
903                         };
904
905                         blsp_uart2_default: blsp-uart2-default-state {
906                                 pins = "gpio4", "gpio5";
907                                 function = "blsp_uart2";
908                                 drive-strength = <16>;
909                                 bias-disable;
910                         };
911
912                         blsp_uart2_sleep: blsp-uart2-sleep-state {
913                                 pins = "gpio4", "gpio5";
914                                 function = "gpio";
915                                 drive-strength = <2>;
916                                 bias-pull-down;
917                         };
918
919                         camera_front_default: camera-front-default-state {
920                                 pwdn-pins {
921                                         pins = "gpio33";
922                                         function = "gpio";
923                                         drive-strength = <16>;
924                                         bias-disable;
925                                 };
926
927                                 rst-pins {
928                                         pins = "gpio28";
929                                         function = "gpio";
930                                         drive-strength = <16>;
931                                         bias-disable;
932                                 };
933
934                                 mclk1-pins {
935                                         pins = "gpio27";
936                                         function = "cam_mclk1";
937                                         drive-strength = <16>;
938                                         bias-disable;
939                                 };
940                         };
941
942                         camera_rear_default: camera-rear-default-state {
943                                 pwdn-pins {
944                                         pins = "gpio34";
945                                         function = "gpio";
946                                         drive-strength = <16>;
947                                         bias-disable;
948                                 };
949
950                                 rst-pins {
951                                         pins = "gpio35";
952                                         function = "gpio";
953                                         drive-strength = <16>;
954                                         bias-disable;
955                                 };
956
957                                 mclk0-pins {
958                                         pins = "gpio26";
959                                         function = "cam_mclk0";
960                                         drive-strength = <16>;
961                                         bias-disable;
962                                 };
963                         };
964
965                         cci0_default: cci0-default-state {
966                                 pins = "gpio29", "gpio30";
967                                 function = "cci_i2c";
968                                 drive-strength = <16>;
969                                 bias-disable;
970                         };
971
972                         cdc_dmic_default: cdc-dmic-default-state {
973                                 clk-pins {
974                                         pins = "gpio0";
975                                         function = "dmic0_clk";
976                                         drive-strength = <8>;
977                                 };
978
979                                 data-pins {
980                                         pins = "gpio1";
981                                         function = "dmic0_data";
982                                         drive-strength = <8>;
983                                 };
984                         };
985
986                         cdc_dmic_sleep: cdc-dmic-sleep-state {
987                                 clk-pins {
988                                         pins = "gpio0";
989                                         function = "dmic0_clk";
990                                         drive-strength = <2>;
991                                         bias-disable;
992                                 };
993
994                                 data-pins {
995                                         pins = "gpio1";
996                                         function = "dmic0_data";
997                                         drive-strength = <2>;
998                                         bias-disable;
999                                 };
1000                         };
1001
1002                         cdc_pdm_default: cdc-pdm-default-state {
1003                                 pins = "gpio63", "gpio64", "gpio65", "gpio66",
1004                                        "gpio67", "gpio68";
1005                                 function = "cdc_pdm0";
1006                                 drive-strength = <8>;
1007                                 bias-disable;
1008                         };
1009
1010                         cdc_pdm_sleep: cdc-pdm-sleep-state {
1011                                 pins = "gpio63", "gpio64", "gpio65", "gpio66",
1012                                        "gpio67", "gpio68";
1013                                 function = "cdc_pdm0";
1014                                 drive-strength = <2>;
1015                                 bias-pull-down;
1016                         };
1017
1018                         pri_mi2s_default: mi2s-pri-default-state {
1019                                 pins = "gpio113", "gpio114", "gpio115", "gpio116";
1020                                 function = "pri_mi2s";
1021                                 drive-strength = <8>;
1022                                 bias-disable;
1023                         };
1024
1025                         pri_mi2s_sleep: mi2s-pri-sleep-state {
1026                                 pins = "gpio113", "gpio114", "gpio115", "gpio116";
1027                                 function = "pri_mi2s";
1028                                 drive-strength = <2>;
1029                                 bias-disable;
1030                         };
1031
1032                         pri_mi2s_mclk_default: mi2s-pri-mclk-default-state {
1033                                 pins = "gpio116";
1034                                 function = "pri_mi2s";
1035                                 drive-strength = <8>;
1036                                 bias-disable;
1037                         };
1038
1039                         pri_mi2s_mclk_sleep: mi2s-pri-mclk-sleep-state {
1040                                 pins = "gpio116";
1041                                 function = "pri_mi2s";
1042                                 drive-strength = <2>;
1043                                 bias-disable;
1044                         };
1045
1046                         pri_mi2s_ws_default: mi2s-pri-ws-default-state {
1047                                 pins = "gpio110";
1048                                 function = "pri_mi2s_ws";
1049                                 drive-strength = <8>;
1050                                 bias-disable;
1051                         };
1052
1053                         pri_mi2s_ws_sleep: mi2s-pri-ws-sleep-state {
1054                                 pins = "gpio110";
1055                                 function = "pri_mi2s_ws";
1056                                 drive-strength = <2>;
1057                                 bias-disable;
1058                         };
1059
1060                         sec_mi2s_default: mi2s-sec-default-state {
1061                                 pins = "gpio112", "gpio117", "gpio118", "gpio119";
1062                                 function = "sec_mi2s";
1063                                 drive-strength = <8>;
1064                                 bias-disable;
1065                         };
1066
1067                         sec_mi2s_sleep: mi2s-sec-sleep-state {
1068                                 pins = "gpio112", "gpio117", "gpio118", "gpio119";
1069                                 function = "sec_mi2s";
1070                                 drive-strength = <2>;
1071                                 bias-disable;
1072                         };
1073
1074                         sdc1_default: sdc1-default-state {
1075                                 clk-pins {
1076                                         pins = "sdc1_clk";
1077                                         bias-disable;
1078                                         drive-strength = <16>;
1079                                 };
1080
1081                                 cmd-pins {
1082                                         pins = "sdc1_cmd";
1083                                         bias-pull-up;
1084                                         drive-strength = <10>;
1085                                 };
1086
1087                                 data-pins {
1088                                         pins = "sdc1_data";
1089                                         bias-pull-up;
1090                                         drive-strength = <10>;
1091                                 };
1092                         };
1093
1094                         sdc1_sleep: sdc1-sleep-state {
1095                                 clk-pins {
1096                                         pins = "sdc1_clk";
1097                                         bias-disable;
1098                                         drive-strength = <2>;
1099                                 };
1100
1101                                 cmd-pins {
1102                                         pins = "sdc1_cmd";
1103                                         bias-pull-up;
1104                                         drive-strength = <2>;
1105                                 };
1106
1107                                 data-pins {
1108                                         pins = "sdc1_data";
1109                                         bias-pull-up;
1110                                         drive-strength = <2>;
1111                                 };
1112                         };
1113
1114                         sdc2_default: sdc2-default-state {
1115                                 clk-pins {
1116                                         pins = "sdc2_clk";
1117                                         bias-disable;
1118                                         drive-strength = <16>;
1119                                 };
1120
1121                                 cmd-pins {
1122                                         pins = "sdc2_cmd";
1123                                         bias-pull-up;
1124                                         drive-strength = <10>;
1125                                 };
1126
1127                                 data-pins {
1128                                         pins = "sdc2_data";
1129                                         bias-pull-up;
1130                                         drive-strength = <10>;
1131                                 };
1132                         };
1133
1134                         sdc2_sleep: sdc2-sleep-state {
1135                                 clk-pins {
1136                                         pins = "sdc2_clk";
1137                                         bias-disable;
1138                                         drive-strength = <2>;
1139                                 };
1140
1141                                 cmd-pins {
1142                                         pins = "sdc2_cmd";
1143                                         bias-pull-up;
1144                                         drive-strength = <2>;
1145                                 };
1146
1147                                 data-pins {
1148                                         pins = "sdc2_data";
1149                                         bias-pull-up;
1150                                         drive-strength = <2>;
1151                                 };
1152                         };
1153
1154                         wcss_wlan_default: wcss-wlan-default-state {
1155                                 pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
1156                                 function = "wcss_wlan";
1157                                 drive-strength = <6>;
1158                                 bias-pull-up;
1159                         };
1160                 };
1161
1162                 gcc: clock-controller@1800000 {
1163                         compatible = "qcom,gcc-msm8939";
1164                         reg = <0x01800000 0x80000>;
1165                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1166                                  <&sleep_clk>,
1167                                  <&mdss_dsi0_phy 1>,
1168                                  <&mdss_dsi0_phy 0>,
1169                                  <0>,
1170                                  <0>,
1171                                  <0>;
1172                         clock-names = "xo",
1173                                       "sleep_clk",
1174                                       "dsi0pll",
1175                                       "dsi0pllbyte",
1176                                       "ext_mclk",
1177                                       "ext_pri_i2s",
1178                                       "ext_sec_i2s";
1179                         #clock-cells = <1>;
1180                         #reset-cells = <1>;
1181                         #power-domain-cells = <1>;
1182                 };
1183
1184                 tcsr_mutex: hwlock@1905000 {
1185                         compatible = "qcom,tcsr-mutex";
1186                         reg = <0x01905000 0x20000>;
1187                         #hwlock-cells = <1>;
1188                 };
1189
1190                 tcsr: syscon@1937000 {
1191                         compatible = "qcom,tcsr-msm8916", "syscon";
1192                         reg = <0x01937000 0x30000>;
1193                 };
1194
1195                 mdss: display-subsystem@1a00000 {
1196                         compatible = "qcom,mdss";
1197                         reg = <0x01a00000 0x1000>,
1198                               <0x01ac8000 0x3000>;
1199                         reg-names = "mdss_phys", "vbif_phys";
1200
1201                         interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1202                         interrupt-controller;
1203
1204                         clocks = <&gcc GCC_MDSS_AHB_CLK>,
1205                                  <&gcc GCC_MDSS_AXI_CLK>,
1206                                  <&gcc GCC_MDSS_VSYNC_CLK>;
1207                         clock-names = "iface",
1208                                       "bus",
1209                                       "vsync";
1210
1211                         power-domains = <&gcc MDSS_GDSC>;
1212
1213                         #address-cells = <1>;
1214                         #size-cells = <1>;
1215                         #interrupt-cells = <1>;
1216                         ranges;
1217
1218                         status = "disabled";
1219
1220                         mdss_mdp: display-controller@1a01000 {
1221                                 compatible = "qcom,mdp5";
1222                                 reg = <0x01a01000 0x89000>;
1223                                 reg-names = "mdp_phys";
1224
1225                                 interrupt-parent = <&mdss>;
1226                                 interrupts = <0>;
1227
1228                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1229                                          <&gcc GCC_MDSS_AXI_CLK>,
1230                                          <&gcc GCC_MDSS_MDP_CLK>,
1231                                          <&gcc GCC_MDSS_VSYNC_CLK>;
1232                                 clock-names = "iface",
1233                                               "bus",
1234                                               "core",
1235                                               "vsync";
1236
1237                                 iommus = <&apps_iommu 4>;
1238
1239                                 interconnects = <&snoc_mm MASTER_MDP_PORT0 &bimc SLAVE_EBI_CH0>,
1240                                                 <&snoc_mm MASTER_MDP_PORT1 &bimc SLAVE_EBI_CH0>;
1241                                 interconnect-names = "mdp0-mem", "mdp1-mem";
1242
1243                                 ports {
1244                                         #address-cells = <1>;
1245                                         #size-cells = <0>;
1246
1247                                         port@0 {
1248                                                 reg = <0>;
1249                                                 mdss_mdp_intf1_out: endpoint {
1250                                                         remote-endpoint = <&mdss_dsi0_in>;
1251                                                 };
1252                                         };
1253
1254                                         port@1 {
1255                                                 reg = <1>;
1256                                                 mdss_mdp_intf2_out: endpoint {
1257                                                         remote-endpoint = <&mdss_dsi1_in>;
1258                                                 };
1259                                         };
1260                                 };
1261                         };
1262
1263                         mdss_dsi0: dsi@1a98000 {
1264                                 compatible = "qcom,msm8916-dsi-ctrl",
1265                                              "qcom,mdss-dsi-ctrl";
1266                                 reg = <0x01a98000 0x25c>;
1267                                 reg-names = "dsi_ctrl";
1268
1269                                 interrupt-parent = <&mdss>;
1270                                 interrupts = <4>;
1271
1272                                 clocks = <&gcc GCC_MDSS_MDP_CLK>,
1273                                          <&gcc GCC_MDSS_AHB_CLK>,
1274                                          <&gcc GCC_MDSS_AXI_CLK>,
1275                                          <&gcc GCC_MDSS_BYTE0_CLK>,
1276                                          <&gcc GCC_MDSS_PCLK0_CLK>,
1277                                          <&gcc GCC_MDSS_ESC0_CLK>;
1278                                 clock-names = "mdp_core",
1279                                               "iface",
1280                                               "bus",
1281                                               "byte",
1282                                               "pixel",
1283                                               "core";
1284                                 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
1285                                                   <&gcc PCLK0_CLK_SRC>;
1286                                 assigned-clock-parents = <&mdss_dsi0_phy 0>,
1287                                                          <&mdss_dsi0_phy 1>;
1288
1289                                 phys = <&mdss_dsi0_phy>;
1290                                 status = "disabled";
1291
1292                                 #address-cells = <1>;
1293                                 #size-cells = <0>;
1294
1295                                 ports {
1296                                         #address-cells = <1>;
1297                                         #size-cells = <0>;
1298
1299                                         port@0 {
1300                                                 reg = <0>;
1301                                                 mdss_dsi0_in: endpoint {
1302                                                         remote-endpoint = <&mdss_mdp_intf1_out>;
1303                                                 };
1304                                         };
1305
1306                                         port@1 {
1307                                                 reg = <1>;
1308                                                 mdss_dsi0_out: endpoint {
1309                                                 };
1310                                         };
1311                                 };
1312                         };
1313
1314                         mdss_dsi0_phy: phy@1a98300 {
1315                                 compatible = "qcom,dsi-phy-28nm-lp";
1316                                 reg = <0x01a98300 0xd4>,
1317                                       <0x01a98500 0x280>,
1318                                       <0x01a98780 0x30>;
1319                                 reg-names = "dsi_pll",
1320                                             "dsi_phy",
1321                                             "dsi_phy_regulator";
1322
1323                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1324                                          <&rpmcc RPM_SMD_XO_CLK_SRC>;
1325                                 clock-names = "iface", "ref";
1326
1327                                 #clock-cells = <1>;
1328                                 #phy-cells = <0>;
1329                                 status = "disabled";
1330                         };
1331
1332                         mdss_dsi1: dsi@1aa0000 {
1333                                 compatible = "qcom,msm8916-dsi-ctrl",
1334                                              "qcom,mdss-dsi-ctrl";
1335                                 reg = <0x01aa0000 0x25c>;
1336                                 reg-names = "dsi_ctrl";
1337
1338                                 interrupt-parent = <&mdss>;
1339                                 interrupts = <5>;
1340
1341                                 clocks = <&gcc GCC_MDSS_MDP_CLK>,
1342                                          <&gcc GCC_MDSS_AHB_CLK>,
1343                                          <&gcc GCC_MDSS_AXI_CLK>,
1344                                          <&gcc GCC_MDSS_BYTE1_CLK>,
1345                                          <&gcc GCC_MDSS_PCLK1_CLK>,
1346                                          <&gcc GCC_MDSS_ESC1_CLK>;
1347                                 clock-names = "mdp_core",
1348                                               "iface",
1349                                               "bus",
1350                                               "byte",
1351                                               "pixel",
1352                                               "core";
1353                                 assigned-clocks = <&gcc BYTE1_CLK_SRC>,
1354                                                   <&gcc PCLK1_CLK_SRC>;
1355                                 assigned-clock-parents = <&mdss_dsi0_phy 0>,
1356                                                          <&mdss_dsi0_phy 1>;
1357                                 phys = <&mdss_dsi1_phy>;
1358                                 status = "disabled";
1359
1360                                 ports {
1361                                         #address-cells = <1>;
1362                                         #size-cells = <0>;
1363
1364                                         port@0 {
1365                                                 reg = <0>;
1366                                                 mdss_dsi1_in: endpoint {
1367                                                         remote-endpoint = <&mdss_mdp_intf2_out>;
1368                                                 };
1369                                         };
1370
1371                                         port@1 {
1372                                                 reg = <1>;
1373                                                 mdss_dsi1_out: endpoint {
1374                                                 };
1375                                         };
1376                                 };
1377                         };
1378
1379                         mdss_dsi1_phy: phy@1aa0300 {
1380                                 compatible = "qcom,dsi-phy-28nm-lp";
1381                                 reg = <0x01aa0300 0xd4>,
1382                                       <0x01aa0500 0x280>,
1383                                       <0x01aa0780 0x30>;
1384                                 reg-names = "dsi_pll",
1385                                             "dsi_phy",
1386                                             "dsi_phy_regulator";
1387
1388                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1389                                          <&rpmcc RPM_SMD_XO_CLK_SRC>;
1390                                 clock-names = "iface", "ref";
1391
1392                                 #clock-cells = <1>;
1393                                 #phy-cells = <0>;
1394                                 status = "disabled";
1395                         };
1396                 };
1397
1398                 gpu@1c00000 {
1399                         compatible = "qcom,adreno-405.0", "qcom,adreno";
1400                         reg = <0x01c00000 0x10000>;
1401                         reg-names = "kgsl_3d0_reg_memory";
1402                         interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1403                         interrupt-names = "kgsl_3d0_irq";
1404                         clock-names = "core",
1405                                       "iface",
1406                                       "mem",
1407                                       "mem_iface",
1408                                       "alt_mem_iface",
1409                                       "gfx3d",
1410                                       "rbbmtimer";
1411                         clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
1412                                  <&gcc GCC_OXILI_AHB_CLK>,
1413                                  <&gcc GCC_OXILI_GMEM_CLK>,
1414                                  <&gcc GCC_BIMC_GFX_CLK>,
1415                                  <&gcc GCC_BIMC_GPU_CLK>,
1416                                  <&gcc GFX3D_CLK_SRC>,
1417                                  <&gcc GCC_OXILI_TIMER_CLK>;
1418                         power-domains = <&gcc OXILI_GDSC>;
1419                         operating-points-v2 = <&opp_table>;
1420                         iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
1421
1422                         opp_table: opp-table {
1423                                 compatible = "operating-points-v2";
1424
1425                                 opp-550000000 {
1426                                         opp-hz = /bits/ 64 <550000000>;
1427                                 };
1428
1429                                 opp-465000000 {
1430                                         opp-hz = /bits/ 64 <465000000>;
1431                                 };
1432
1433                                 opp-400000000 {
1434                                         opp-hz = /bits/ 64 <400000000>;
1435                                 };
1436
1437                                 opp-220000000 {
1438                                         opp-hz = /bits/ 64 <220000000>;
1439                                 };
1440
1441                                 opp-19200000 {
1442                                         opp-hz = /bits/ 64 <19200000>;
1443                                 };
1444                         };
1445                 };
1446
1447                 apps_iommu: iommu@1ef0000 {
1448                         compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1449                         reg = <0x01ef0000 0x3000>;
1450                         ranges = <0 0x01e20000 0x40000>;
1451                         clocks = <&gcc GCC_SMMU_CFG_CLK>,
1452                                  <&gcc GCC_APSS_TCU_CLK>;
1453                         clock-names = "iface", "bus";
1454                         #address-cells = <1>;
1455                         #size-cells = <1>;
1456                         #iommu-cells = <1>;
1457                         qcom,iommu-secure-id = <17>;
1458
1459                         /* mdp_0: */
1460                         iommu-ctx@4000 {
1461                                 compatible = "qcom,msm-iommu-v1-ns";
1462                                 reg = <0x4000 0x1000>;
1463                                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
1464                         };
1465
1466                         /* venus_ns: */
1467                         iommu-ctx@5000 {
1468                                 compatible = "qcom,msm-iommu-v1-sec";
1469                                 reg = <0x5000 0x1000>;
1470                                 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
1471                         };
1472                 };
1473
1474                 gpu_iommu: iommu@1f08000 {
1475                         compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1476                         ranges = <0 0x1f08000 0x10000>;
1477                         clocks = <&gcc GCC_SMMU_CFG_CLK>,
1478                                  <&gcc GCC_GFX_TCU_CLK>,
1479                                  <&gcc GCC_GFX_TBU_CLK>;
1480                         clock-names = "iface", "bus", "tbu";
1481                         #address-cells = <1>;
1482                         #size-cells = <1>;
1483                         #iommu-cells = <1>;
1484                         qcom,iommu-secure-id = <18>;
1485
1486                         /* gfx3d_user: */
1487                         iommu-ctx@1000 {
1488                                 compatible = "qcom,msm-iommu-v1-ns";
1489                                 reg = <0x1000 0x1000>;
1490                                 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
1491                         };
1492
1493                         /* gfx3d_priv: */
1494                         iommu-ctx@2000 {
1495                                 compatible = "qcom,msm-iommu-v1-ns";
1496                                 reg = <0x2000 0x1000>;
1497                                 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
1498                         };
1499                 };
1500
1501                 spmi_bus: spmi@200f000 {
1502                         compatible = "qcom,spmi-pmic-arb";
1503                         reg = <0x0200f000 0x001000>,
1504                               <0x02400000 0x400000>,
1505                               <0x02c00000 0x400000>,
1506                               <0x03800000 0x200000>,
1507                               <0x0200a000 0x002100>;
1508                         reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1509                         interrupt-names = "periph_irq";
1510                         interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1511                         qcom,ee = <0>;
1512                         qcom,channel = <0>;
1513                         #address-cells = <2>;
1514                         #size-cells = <0>;
1515                         interrupt-controller;
1516                         #interrupt-cells = <4>;
1517                 };
1518
1519                 mpss: remoteproc@4080000 {
1520                         compatible = "qcom,msm8916-mss-pil";
1521                         reg = <0x04080000 0x100>, <0x04020000 0x040>;
1522                         reg-names = "qdsp6", "rmb";
1523                         interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
1524                                               <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1525                                               <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1526                                               <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1527                                               <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1528                         interrupt-names = "wdog",
1529                                           "fatal",
1530                                           "ready",
1531                                           "handover",
1532                                           "stop-ack";
1533                         clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1534                                  <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
1535                                  <&gcc GCC_BOOT_ROM_AHB_CLK>,
1536                                  <&rpmcc RPM_SMD_XO_CLK_SRC>;
1537                         clock-names = "iface",
1538                                       "bus",
1539                                       "mem",
1540                                       "xo";
1541                         power-domains = <&rpmpd MSM8939_VDDMDCX>,
1542                                         <&rpmpd MSM8939_VDDMX>;
1543                         power-domain-names = "cx", "mx";
1544                         qcom,smem-states = <&hexagon_smp2p_out 0>;
1545                         qcom,smem-state-names = "stop";
1546                         resets = <&scm 0>;
1547                         reset-names = "mss_restart";
1548                         qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
1549                         status = "disabled";
1550
1551                         mba {
1552                                 memory-region = <&mba_mem>;
1553                         };
1554
1555                         mpss {
1556                                 memory-region = <&mpss_mem>;
1557                         };
1558
1559                         smd-edge {
1560                                 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1561
1562                                 qcom,smd-edge = <0>;
1563                                 mboxes = <&apcs1_mbox 12>;
1564                                 qcom,remote-pid = <1>;
1565
1566                                 label = "hexagon";
1567                         };
1568                 };
1569
1570                 sound: sound@7702000 {
1571                         compatible = "qcom,apq8016-sbc-sndcard";
1572                         reg = <0x07702000 0x4>,
1573                               <0x07702004 0x4>;
1574                         reg-names = "mic-iomux", "spkr-iomux";
1575                         status = "disabled";
1576                 };
1577
1578                 lpass: audio-controller@7708000 {
1579                         compatible = "qcom,apq8016-lpass-cpu";
1580                         reg = <0x07708000 0x10000>;
1581                         reg-names = "lpass-lpaif";
1582                         interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
1583                         interrupt-names = "lpass-irq-lpaif";
1584                         clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
1585                                  <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
1586                                  <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
1587                                  <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
1588                                  <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>,
1589                                  <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
1590                                  <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>;
1591                         clock-names = "ahbix-clk",
1592                                       "mi2s-bit-clk0",
1593                                       "mi2s-bit-clk1",
1594                                       "mi2s-bit-clk2",
1595                                       "mi2s-bit-clk3",
1596                                       "pcnoc-mport-clk",
1597                                       "pcnoc-sway-clk";
1598                         #sound-dai-cells = <1>;
1599                         #address-cells = <1>;
1600                         #size-cells = <0>;
1601                         status = "disabled";
1602                 };
1603
1604                 lpass_codec: audio-codec@771c000 {
1605                         compatible = "qcom,msm8916-wcd-digital-codec";
1606                         reg = <0x0771c000 0x400>;
1607                         clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
1608                                  <&gcc GCC_CODEC_DIGCODEC_CLK>;
1609                         clock-names = "ahbix-clk", "mclk";
1610                         #sound-dai-cells = <1>;
1611                         status = "disabled";
1612                 };
1613
1614                 sdhc_1: mmc@7824900 {
1615                         compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
1616                         reg = <0x07824900 0x11c>, <0x07824000 0x800>;
1617                         reg-names = "hc", "core";
1618
1619                         interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1620                                      <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1621                         interrupt-names = "hc_irq", "pwr_irq";
1622                         clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1623                                  <&gcc GCC_SDCC1_APPS_CLK>,
1624                                  <&rpmcc RPM_SMD_XO_CLK_SRC>;
1625                         clock-names = "iface", "core", "xo";
1626                         resets = <&gcc GCC_SDCC1_BCR>;
1627                         pinctrl-0 = <&sdc1_default>;
1628                         pinctrl-1 = <&sdc1_sleep>;
1629                         pinctrl-names = "default", "sleep";
1630                         mmc-ddr-1_8v;
1631                         bus-width = <8>;
1632                         non-removable;
1633                         status = "disabled";
1634                 };
1635
1636                 sdhc_2: mmc@7864900 {
1637                         compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
1638                         reg = <0x07864900 0x11c>, <0x07864000 0x800>;
1639                         reg-names = "hc", "core";
1640
1641                         interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1642                                      <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1643                         interrupt-names = "hc_irq", "pwr_irq";
1644                         clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1645                                  <&gcc GCC_SDCC2_APPS_CLK>,
1646                                  <&rpmcc RPM_SMD_XO_CLK_SRC>;
1647                         clock-names = "iface", "core", "xo";
1648                         resets = <&gcc GCC_SDCC2_BCR>;
1649                         pinctrl-0 = <&sdc2_default>;
1650                         pinctrl-1 = <&sdc2_sleep>;
1651                         pinctrl-names = "default", "sleep";
1652                         bus-width = <4>;
1653                         status = "disabled";
1654                 };
1655
1656                 blsp_dma: dma-controller@7884000 {
1657                         compatible = "qcom,bam-v1.7.0";
1658                         reg = <0x07884000 0x23000>;
1659                         interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1660                         clocks = <&gcc GCC_BLSP1_AHB_CLK>;
1661                         clock-names = "bam_clk";
1662                         #dma-cells = <1>;
1663                         qcom,ee = <0>;
1664                 };
1665
1666                 blsp_uart1: serial@78af000 {
1667                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1668                         reg = <0x078af000 0x200>;
1669                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1670                         clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1671                         clock-names = "core", "iface";
1672                         dmas = <&blsp_dma 0>, <&blsp_dma 1>;
1673                         dma-names = "tx", "rx";
1674                         pinctrl-0 = <&blsp_uart1_default>;
1675                         pinctrl-1 = <&blsp_uart1_sleep>;
1676                         pinctrl-names = "default", "sleep";
1677                         status = "disabled";
1678                 };
1679
1680                 blsp_uart2: serial@78b0000 {
1681                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1682                         reg = <0x078b0000 0x200>;
1683                         interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1684                         clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1685                         clock-names = "core", "iface";
1686                         dmas = <&blsp_dma 2>, <&blsp_dma 3>;
1687                         dma-names = "tx", "rx";
1688                         pinctrl-0 = <&blsp_uart2_default>;
1689                         pinctrl-1 = <&blsp_uart2_sleep>;
1690                         pinctrl-names = "default", "sleep";
1691                         status = "disabled";
1692                 };
1693
1694                 blsp_i2c1: i2c@78b5000 {
1695                         compatible = "qcom,i2c-qup-v2.2.1";
1696                         reg = <0x078b5000 0x500>;
1697                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1698                         clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
1699                                  <&gcc GCC_BLSP1_AHB_CLK>;
1700                         clock-names = "core", "iface";
1701                         dmas = <&blsp_dma 4>, <&blsp_dma 5>;
1702                         dma-names = "tx", "rx";
1703                         pinctrl-0 = <&blsp_i2c1_default>;
1704                         pinctrl-1 = <&blsp_i2c1_sleep>;
1705                         pinctrl-names = "default", "sleep";
1706                         #address-cells = <1>;
1707                         #size-cells = <0>;
1708                         status = "disabled";
1709                 };
1710
1711                 blsp_spi1: spi@78b5000 {
1712                         compatible = "qcom,spi-qup-v2.2.1";
1713                         reg = <0x078b5000 0x500>;
1714                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1715                         clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
1716                                  <&gcc GCC_BLSP1_AHB_CLK>;
1717                         clock-names = "core", "iface";
1718                         dmas = <&blsp_dma 4>, <&blsp_dma 5>;
1719                         dma-names = "tx", "rx";
1720                         pinctrl-0 = <&blsp_spi1_default>;
1721                         pinctrl-1 = <&blsp_spi1_sleep>;
1722                         pinctrl-names = "default", "sleep";
1723                         #address-cells = <1>;
1724                         #size-cells = <0>;
1725                         status = "disabled";
1726                 };
1727
1728                 blsp_i2c2: i2c@78b6000 {
1729                         compatible = "qcom,i2c-qup-v2.2.1";
1730                         reg = <0x078b6000 0x500>;
1731                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1732                         clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1733                                  <&gcc GCC_BLSP1_AHB_CLK>;
1734                         clock-names = "core", "iface";
1735                         dmas = <&blsp_dma 6>, <&blsp_dma 7>;
1736                         dma-names = "tx", "rx";
1737                         pinctrl-0 = <&blsp_i2c2_default>;
1738                         pinctrl-1 = <&blsp_i2c2_sleep>;
1739                         pinctrl-names = "default", "sleep";
1740                         #address-cells = <1>;
1741                         #size-cells = <0>;
1742                         status = "disabled";
1743                 };
1744
1745                 blsp_spi2: spi@78b6000 {
1746                         compatible = "qcom,spi-qup-v2.2.1";
1747                         reg = <0x078b6000 0x500>;
1748                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1749                         clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
1750                                  <&gcc GCC_BLSP1_AHB_CLK>;
1751                         clock-names = "core", "iface";
1752                         dmas = <&blsp_dma 6>, <&blsp_dma 7>;
1753                         dma-names = "tx", "rx";
1754                         pinctrl-0 = <&blsp_spi2_default>;
1755                         pinctrl-1 = <&blsp_spi2_sleep>;
1756                         pinctrl-names = "default", "sleep";
1757                         #address-cells = <1>;
1758                         #size-cells = <0>;
1759                         status = "disabled";
1760                 };
1761
1762                 blsp_i2c3: i2c@78b7000 {
1763                         compatible = "qcom,i2c-qup-v2.2.1";
1764                         reg = <0x078b7000 0x500>;
1765                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1766                         clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1767                                  <&gcc GCC_BLSP1_AHB_CLK>;
1768                         clock-names = "core", "iface";
1769                         dmas = <&blsp_dma 8>, <&blsp_dma 9>;
1770                         dma-names = "tx", "rx";
1771                         pinctrl-0 = <&blsp_i2c3_default>;
1772                         pinctrl-1 = <&blsp_i2c3_sleep>;
1773                         pinctrl-names = "default", "sleep";
1774                         #address-cells = <1>;
1775                         #size-cells = <0>;
1776                         status = "disabled";
1777                 };
1778
1779                 blsp_spi3: spi@78b7000 {
1780                         compatible = "qcom,spi-qup-v2.2.1";
1781                         reg = <0x078b7000 0x500>;
1782                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1783                         clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1784                                  <&gcc GCC_BLSP1_AHB_CLK>;
1785                         clock-names = "core", "iface";
1786                         dmas = <&blsp_dma 8>, <&blsp_dma 9>;
1787                         dma-names = "tx", "rx";
1788                         pinctrl-0 = <&blsp_spi3_default>;
1789                         pinctrl-1 = <&blsp_spi3_sleep>;
1790                         pinctrl-names = "default", "sleep";
1791                         #address-cells = <1>;
1792                         #size-cells = <0>;
1793                         status = "disabled";
1794                 };
1795
1796                 blsp_i2c4: i2c@78b8000 {
1797                         compatible = "qcom,i2c-qup-v2.2.1";
1798                         reg = <0x078b8000 0x500>;
1799                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1800                         clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1801                                  <&gcc GCC_BLSP1_AHB_CLK>;
1802                         clock-names = "core", "iface";
1803                         dmas = <&blsp_dma 10>, <&blsp_dma 11>;
1804                         dma-names = "tx", "rx";
1805                         pinctrl-0 = <&blsp_i2c4_default>;
1806                         pinctrl-1 = <&blsp_i2c4_sleep>;
1807                         pinctrl-names = "default", "sleep";
1808                         #address-cells = <1>;
1809                         #size-cells = <0>;
1810                         status = "disabled";
1811                 };
1812
1813                 blsp_spi4: spi@78b8000 {
1814                         compatible = "qcom,spi-qup-v2.2.1";
1815                         reg = <0x078b8000 0x500>;
1816                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1817                         clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
1818                                  <&gcc GCC_BLSP1_AHB_CLK>;
1819                         clock-names = "core", "iface";
1820                         dmas = <&blsp_dma 10>, <&blsp_dma 11>;
1821                         dma-names = "tx", "rx";
1822                         pinctrl-0 = <&blsp_spi4_default>;
1823                         pinctrl-1 = <&blsp_spi4_sleep>;
1824                         pinctrl-names = "default", "sleep";
1825                         #address-cells = <1>;
1826                         #size-cells = <0>;
1827                         status = "disabled";
1828                 };
1829
1830                 blsp_i2c5: i2c@78b9000 {
1831                         compatible = "qcom,i2c-qup-v2.2.1";
1832                         reg = <0x078b9000 0x500>;
1833                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1834                         clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
1835                                  <&gcc GCC_BLSP1_AHB_CLK>;
1836                         clock-names = "core", "iface";
1837                         dmas = <&blsp_dma 12>, <&blsp_dma 13>;
1838                         dma-names = "tx", "rx";
1839                         pinctrl-0 = <&blsp_i2c5_default>;
1840                         pinctrl-1 = <&blsp_i2c5_sleep>;
1841                         pinctrl-names = "default", "sleep";
1842                         #address-cells = <1>;
1843                         #size-cells = <0>;
1844                         status = "disabled";
1845                 };
1846
1847                 blsp_spi5: spi@78b9000 {
1848                         compatible = "qcom,spi-qup-v2.2.1";
1849                         reg = <0x078b9000 0x500>;
1850                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1851                         clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
1852                                  <&gcc GCC_BLSP1_AHB_CLK>;
1853                         clock-names = "core", "iface";
1854                         dmas = <&blsp_dma 12>, <&blsp_dma 13>;
1855                         dma-names = "tx", "rx";
1856                         pinctrl-0 = <&blsp_spi5_default>;
1857                         pinctrl-1 = <&blsp_spi5_sleep>;
1858                         pinctrl-names = "default", "sleep";
1859                         #address-cells = <1>;
1860                         #size-cells = <0>;
1861                         status = "disabled";
1862                 };
1863
1864                 blsp_i2c6: i2c@78ba000 {
1865                         compatible = "qcom,i2c-qup-v2.2.1";
1866                         reg = <0x078ba000 0x500>;
1867                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1868                         clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
1869                                  <&gcc GCC_BLSP1_AHB_CLK>;
1870                         clock-names = "core", "iface";
1871                         dmas = <&blsp_dma 14>, <&blsp_dma 15>;
1872                         dma-names = "tx", "rx";
1873                         pinctrl-0 = <&blsp_i2c6_default>;
1874                         pinctrl-1 = <&blsp_i2c6_sleep>;
1875                         pinctrl-names = "default", "sleep";
1876                         #address-cells = <1>;
1877                         #size-cells = <0>;
1878                         status = "disabled";
1879                 };
1880
1881                 blsp_spi6: spi@78ba000 {
1882                         compatible = "qcom,spi-qup-v2.2.1";
1883                         reg = <0x078ba000 0x500>;
1884                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1885                         clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
1886                                  <&gcc GCC_BLSP1_AHB_CLK>;
1887                         clock-names = "core", "iface";
1888                         dmas = <&blsp_dma 14>, <&blsp_dma 15>;
1889                         dma-names = "tx", "rx";
1890                         pinctrl-0 = <&blsp_spi6_default>;
1891                         pinctrl-1 = <&blsp_spi6_sleep>;
1892                         pinctrl-names = "default", "sleep";
1893                         #address-cells = <1>;
1894                         #size-cells = <0>;
1895                         status = "disabled";
1896                 };
1897
1898                 usb: usb@78d9000 {
1899                         compatible = "qcom,ci-hdrc";
1900                         reg = <0x078d9000 0x200>,
1901                               <0x078d9200 0x200>;
1902                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1903                                      <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1904                         clocks = <&gcc GCC_USB_HS_AHB_CLK>,
1905                                  <&gcc GCC_USB_HS_SYSTEM_CLK>;
1906                         clock-names = "iface", "core";
1907                         assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
1908                         assigned-clock-rates = <80000000>;
1909                         resets = <&gcc GCC_USB_HS_BCR>;
1910                         reset-names = "core";
1911                         #reset-cells = <1>;
1912                         phy_type = "ulpi";
1913                         dr_mode = "otg";
1914                         adp-disable;
1915                         hnp-disable;
1916                         srp-disable;
1917                         ahb-burst-config = <0>;
1918                         phy-names = "usb-phy";
1919                         phys = <&usb_hs_phy>;
1920                         status = "disabled";
1921
1922                         ulpi {
1923                                 usb_hs_phy: phy {
1924                                         compatible = "qcom,usb-hs-phy-msm8916",
1925                                                      "qcom,usb-hs-phy";
1926                                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1927                                                  <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
1928                                         clock-names = "ref", "sleep";
1929                                         resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
1930                                         reset-names = "phy", "por";
1931                                         #phy-cells = <0>;
1932                                         qcom,init-seq = /bits/ 8 <0x0 0x44>,
1933                                                                  <0x1 0x6b>,
1934                                                                  <0x2 0x24>,
1935                                                                  <0x3 0x13>;
1936                                 };
1937                         };
1938                 };
1939
1940                 wcnss: remoteproc@a204000 {
1941                         compatible = "qcom,pronto-v2-pil", "qcom,pronto";
1942                         interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1943                                               <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1944                                               <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1945                                               <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1946                                               <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1947                         interrupt-names = "wdog",
1948                                           "fatal",
1949                                           "ready",
1950                                           "handover",
1951                                           "stop-ack";
1952                         reg = <0x0a204000 0x2000>,
1953                               <0x0a202000 0x1000>,
1954                               <0x0a21b000 0x3000>;
1955                         reg-names = "ccu", "dxe", "pmu";
1956
1957                         memory-region = <&wcnss_mem>;
1958
1959                         power-domains = <&rpmpd MSM8939_VDDCX>,
1960                                         <&rpmpd MSM8939_VDDMX>;
1961                         power-domain-names = "cx", "mx";
1962
1963                         qcom,smem-states = <&wcnss_smp2p_out 0>;
1964                         qcom,smem-state-names = "stop";
1965
1966                         pinctrl-names = "default";
1967                         pinctrl-0 = <&wcss_wlan_default>;
1968
1969                         status = "disabled";
1970
1971                         wcnss_iris: iris {
1972                                 /* Separate chip, compatible is board-specific */
1973                                 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1974                                 clock-names = "xo";
1975                         };
1976
1977                         smd-edge {
1978                                 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1979                                 qcom,ipc = <&apcs1_mbox 8 17>;
1980                                 qcom,smd-edge = <6>;
1981                                 qcom,remote-pid = <4>;
1982
1983                                 label = "pronto";
1984
1985                                 wcnss {
1986                                         compatible = "qcom,wcnss";
1987                                         qcom,smd-channels = "WCNSS_CTRL";
1988
1989                                         qcom,mmio = <&wcnss>;
1990
1991                                         wcnss_bt: bluetooth {
1992                                                 compatible = "qcom,wcnss-bt";
1993                                         };
1994
1995                                         wcnss_wifi: wifi {
1996                                                 compatible = "qcom,wcnss-wlan";
1997
1998                                                 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1999                                                              <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
2000                                                 interrupt-names = "tx", "rx";
2001
2002                                                 qcom,smem-states = <&apps_smsm 10>,
2003                                                                    <&apps_smsm 9>;
2004                                                 qcom,smem-state-names = "tx-enable",
2005                                                                         "tx-rings-empty";
2006                                         };
2007                                 };
2008                         };
2009                 };
2010
2011                 intc: interrupt-controller@b000000 {
2012                         compatible = "qcom,msm-qgic2";
2013                         reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
2014                               <0x0b001000 0x1000>, <0x0b004000 0x2000>;
2015                         interrupt-controller;
2016                         #interrupt-cells = <3>;
2017                         interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
2018                 };
2019
2020                 apcs1_mbox: mailbox@b011000 {
2021                         compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
2022                         reg = <0x0b011000 0x1000>;
2023                         clocks = <&a53pll_c1>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2024                         clock-names = "pll", "aux", "ref";
2025                         #clock-cells = <0>;
2026                         assigned-clocks = <&apcs2>;
2027                         assigned-clock-rates = <297600000>;
2028                         #mbox-cells = <1>;
2029                 };
2030
2031                 a53pll_c1: clock@b016000 {
2032                         compatible = "qcom,msm8939-a53pll";
2033                         reg = <0x0b016000 0x40>;
2034                         #clock-cells = <0>;
2035                 };
2036
2037                 acc0: clock-controller@b088000 {
2038                         compatible = "qcom,kpss-acc-v2";
2039                         reg = <0x0b088000 0x1000>;
2040                 };
2041
2042                 saw0: power-manager@b089000 {
2043                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2044                         reg = <0x0b089000 0x1000>;
2045                 };
2046
2047                 acc1: clock-controller@b098000 {
2048                         compatible = "qcom,kpss-acc-v2";
2049                         reg = <0x0b098000 0x1000>;
2050                 };
2051
2052                 saw1: power-manager@b099000 {
2053                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2054                         reg = <0x0b099000 0x1000>;
2055                 };
2056
2057                 acc2: clock-controller@b0a8000 {
2058                         compatible = "qcom,kpss-acc-v2";
2059                         reg = <0x0b0a8000 0x1000>;
2060                 };
2061
2062                 saw2: power-manager@b0a9000 {
2063                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2064                         reg = <0x0b0a9000 0x1000>;
2065                 };
2066
2067                 acc3: clock-controller@b0b8000 {
2068                         compatible = "qcom,kpss-acc-v2";
2069                         reg = <0x0b0b8000 0x1000>;
2070                 };
2071
2072                 saw3: power-manager@b0b9000 {
2073                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2074                         reg = <0x0b0b9000 0x1000>;
2075                 };
2076
2077                 apcs0_mbox: mailbox@b111000 {
2078                         compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
2079                         reg = <0x0b111000 0x1000>;
2080                         clocks = <&a53pll_c0>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2081                         clock-names = "pll", "aux", "ref";
2082                         #clock-cells = <0>;
2083                         #mbox-cells = <1>;
2084                 };
2085
2086                 a53pll_c0: clock@b116000 {
2087                         compatible = "qcom,msm8939-a53pll";
2088                         reg = <0x0b116000 0x40>;
2089                         #clock-cells = <0>;
2090                 };
2091
2092                 timer@b120000 {
2093                         compatible = "arm,armv7-timer-mem";
2094                         reg = <0x0b120000 0x1000>;
2095                         #address-cells = <1>;
2096                         #size-cells = <1>;
2097                         ranges;
2098
2099                         frame@b121000 {
2100                                 reg = <0x0b121000 0x1000>,
2101                                       <0x0b122000 0x1000>;
2102                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
2103                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
2104                                 frame-number = <0>;
2105                         };
2106
2107                         frame@b123000 {
2108                                 reg = <0x0b123000 0x1000>;
2109                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
2110                                 frame-number = <1>;
2111                                 status = "disabled";
2112                         };
2113
2114                         frame@b124000 {
2115                                 reg = <0x0b124000 0x1000>;
2116                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2117                                 frame-number = <2>;
2118                                 status = "disabled";
2119                         };
2120
2121                         frame@b125000 {
2122                                 reg = <0x0b125000 0x1000>;
2123                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
2124                                 frame-number = <3>;
2125                                 status = "disabled";
2126                         };
2127
2128                         frame@b126000 {
2129                                 reg = <0x0b126000 0x1000>;
2130                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
2131                                 frame-number = <4>;
2132                                 status = "disabled";
2133                         };
2134
2135                         frame@b127000 {
2136                                 reg = <0x0b127000 0x1000>;
2137                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
2138                                 frame-number = <5>;
2139                                 status = "disabled";
2140                         };
2141
2142                         frame@b128000 {
2143                                 reg = <0x0b128000 0x1000>;
2144                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
2145                                 frame-number = <6>;
2146                                 status = "disabled";
2147                         };
2148                 };
2149
2150                 acc4: clock-controller@b188000 {
2151                         compatible = "qcom,kpss-acc-v2";
2152                         reg = <0x0b188000 0x1000>;
2153                 };
2154
2155                 saw4: power-manager@b189000 {
2156                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2157                         reg = <0x0b189000 0x1000>;
2158                 };
2159
2160                 acc5: clock-controller@b198000 {
2161                         compatible = "qcom,kpss-acc-v2";
2162                         reg = <0x0b198000 0x1000>;
2163                 };
2164
2165                 saw5: power-manager@b199000 {
2166                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2167                         reg = <0x0b199000 0x1000>;
2168                 };
2169
2170                 acc6: clock-controller@b1a8000 {
2171                         compatible = "qcom,kpss-acc-v2";
2172                         reg = <0x0b1a8000 0x1000>;
2173                 };
2174
2175                 saw6: power-manager@b1a9000 {
2176                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2177                         reg = <0x0b1a9000 0x1000>;
2178                 };
2179
2180                 acc7: clock-controller@b1b8000 {
2181                         compatible = "qcom,kpss-acc-v2";
2182                         reg = <0x0b1b8000 0x1000>;
2183                 };
2184
2185                 saw7: power-manager@b1b9000 {
2186                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2187                         reg = <0x0b1b9000 0x1000>;
2188                 };
2189
2190                 a53pll_cci: clock@b1d0000 {
2191                         compatible = "qcom,msm8939-a53pll";
2192                         reg = <0x0b1d0000 0x40>;
2193                         #clock-cells = <0>;
2194                 };
2195
2196                 apcs2: mailbox@b1d1000 {
2197                         compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
2198                         reg = <0x0b1d1000 0x1000>;
2199                         clocks = <&a53pll_cci>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2200                         clock-names = "pll", "aux", "ref";
2201                         #clock-cells = <0>;
2202                         #mbox-cells = <1>;
2203                 };
2204         };
2205
2206         thermal_zones: thermal-zones {
2207                 cpu0-thermal {
2208                         polling-delay-passive = <250>;
2209                         polling-delay = <1000>;
2210
2211                         thermal-sensors = <&tsens 5>;
2212
2213                         trips {
2214                                 cpu0_alert: trip0 {
2215                                         temperature = <75000>;
2216                                         hysteresis = <2000>;
2217                                         type = "passive";
2218                                 };
2219
2220                                 cpu0_crit: trip1 {
2221                                         temperature = <115000>;
2222                                         hysteresis = <0>;
2223                                         type = "critical";
2224                                 };
2225                         };
2226
2227                         cooling-maps {
2228                                 map0 {
2229                                         trip = <&cpu0_alert>;
2230                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2231                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2232                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2233                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2234                                 };
2235                         };
2236                 };
2237
2238                 cpu1-thermal {
2239                         polling-delay-passive = <250>;
2240                         polling-delay = <1000>;
2241
2242                         thermal-sensors = <&tsens 6>;
2243
2244                         trips {
2245                                 cpu1_alert: trip0 {
2246                                         temperature = <75000>;
2247                                         hysteresis = <2000>;
2248                                         type = "passive";
2249                                 };
2250
2251                                 cpu1_crit: trip1 {
2252                                         temperature = <110000>;
2253                                         hysteresis = <2000>;
2254                                         type = "critical";
2255                                 };
2256                         };
2257
2258                         cooling-maps {
2259                                 map0 {
2260                                         trip = <&cpu1_alert>;
2261                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2262                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2263                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2264                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2265                                 };
2266                         };
2267                 };
2268
2269                 cpu2-thermal {
2270                         polling-delay-passive = <250>;
2271                         polling-delay = <1000>;
2272
2273                         thermal-sensors = <&tsens 7>;
2274
2275                         trips {
2276                                 cpu2_alert: trip0 {
2277                                         temperature = <75000>;
2278                                         hysteresis = <2000>;
2279                                         type = "passive";
2280                                 };
2281
2282                                 cpu2_crit: trip1 {
2283                                         temperature = <110000>;
2284                                         hysteresis = <2000>;
2285                                         type = "critical";
2286                                 };
2287                         };
2288
2289                         cooling-maps {
2290                                 map0 {
2291                                         trip = <&cpu2_alert>;
2292                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2293                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2294                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2295                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2296                                 };
2297                         };
2298                 };
2299
2300                 cpu3-thermal {
2301                         polling-delay-passive = <250>;
2302                         polling-delay = <1000>;
2303
2304                         thermal-sensors = <&tsens 8>;
2305
2306                         trips {
2307                                 cpu3_alert: trip0 {
2308                                         temperature = <75000>;
2309                                         hysteresis = <2000>;
2310                                         type = "passive";
2311                                 };
2312
2313                                 cpu3_crit: trip1 {
2314                                         temperature = <110000>;
2315                                         hysteresis = <2000>;
2316                                         type = "critical";
2317                                 };
2318                         };
2319
2320                         cooling-maps {
2321                                 map0 {
2322                                         trip = <&cpu3_alert>;
2323                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2324                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2325                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2326                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2327                                 };
2328                         };
2329                 };
2330
2331                 cpu4567-thermal {
2332                         polling-delay-passive = <250>;
2333                         polling-delay = <1000>;
2334
2335                         thermal-sensors = <&tsens 9>;
2336
2337                         trips {
2338                                 cpu4567_alert: trip0 {
2339                                         temperature = <75000>;
2340                                         hysteresis = <2000>;
2341                                         type = "passive";
2342                                 };
2343
2344                                 cpu4567_crit: trip1 {
2345                                         temperature = <110000>;
2346                                         hysteresis = <2000>;
2347                                         type = "critical";
2348                                 };
2349                         };
2350
2351                         cooling-maps {
2352                                 map0 {
2353                                         trip = <&cpu4567_alert>;
2354                                         cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2355                                                          <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2356                                                          <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2357                                                          <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2358                                 };
2359                         };
2360                 };
2361
2362                 gpu-thermal {
2363                         polling-delay-passive = <250>;
2364                         polling-delay = <1000>;
2365
2366                         thermal-sensors = <&tsens 3>;
2367
2368                         trips {
2369                                 gpu_alert0: trip-point0 {
2370                                         temperature = <75000>;
2371                                         hysteresis = <2000>;
2372                                         type = "passive";
2373                                 };
2374
2375                                 gpu_crit: gpu_crit {
2376                                         temperature = <95000>;
2377                                         hysteresis = <2000>;
2378                                         type = "critical";
2379                                 };
2380                         };
2381                 };
2382
2383                 modem1-thermal {
2384                         polling-delay-passive = <250>;
2385                         polling-delay = <1000>;
2386
2387                         thermal-sensors = <&tsens 0>;
2388
2389                         trips {
2390                                 modem1_alert0: trip-point0 {
2391                                         temperature = <85000>;
2392                                         hysteresis = <2000>;
2393                                         type = "hot";
2394                                 };
2395                         };
2396                 };
2397
2398                 modem2-thermal {
2399                         polling-delay-passive = <250>;
2400                         polling-delay = <1000>;
2401
2402                         thermal-sensors = <&tsens 2>;
2403
2404                         trips {
2405                                 modem2_alert0: trip-point0 {
2406                                         temperature = <85000>;
2407                                         hysteresis = <2000>;
2408                                         type = "hot";
2409                                 };
2410                         };
2411                 };
2412
2413                 camera-thermal {
2414                         polling-delay-passive = <250>;
2415                         polling-delay = <1000>;
2416
2417                         thermal-sensors = <&tsens 1>;
2418
2419                         trips {
2420                                 cam_alert0: trip-point0 {
2421                                         temperature = <75000>;
2422                                         hysteresis = <2000>;
2423                                         type = "hot";
2424                                 };
2425                         };
2426                 };
2427         };
2428
2429         timer {
2430                 compatible = "arm,armv8-timer";
2431                 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2432                              <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2433                              <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2434                              <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
2435         };
2436 };