arm64: dts: qcom: msm8939: Make blsp_dma controlled-remotely
[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 0x20000>;
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                         qcom,controlled-remotely;
1665                 };
1666
1667                 blsp_uart1: serial@78af000 {
1668                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1669                         reg = <0x078af000 0x200>;
1670                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1671                         clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1672                         clock-names = "core", "iface";
1673                         dmas = <&blsp_dma 0>, <&blsp_dma 1>;
1674                         dma-names = "tx", "rx";
1675                         pinctrl-0 = <&blsp_uart1_default>;
1676                         pinctrl-1 = <&blsp_uart1_sleep>;
1677                         pinctrl-names = "default", "sleep";
1678                         status = "disabled";
1679                 };
1680
1681                 blsp_uart2: serial@78b0000 {
1682                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1683                         reg = <0x078b0000 0x200>;
1684                         interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1685                         clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1686                         clock-names = "core", "iface";
1687                         dmas = <&blsp_dma 2>, <&blsp_dma 3>;
1688                         dma-names = "tx", "rx";
1689                         pinctrl-0 = <&blsp_uart2_default>;
1690                         pinctrl-1 = <&blsp_uart2_sleep>;
1691                         pinctrl-names = "default", "sleep";
1692                         status = "disabled";
1693                 };
1694
1695                 blsp_i2c1: i2c@78b5000 {
1696                         compatible = "qcom,i2c-qup-v2.2.1";
1697                         reg = <0x078b5000 0x500>;
1698                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1699                         clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
1700                                  <&gcc GCC_BLSP1_AHB_CLK>;
1701                         clock-names = "core", "iface";
1702                         dmas = <&blsp_dma 4>, <&blsp_dma 5>;
1703                         dma-names = "tx", "rx";
1704                         pinctrl-0 = <&blsp_i2c1_default>;
1705                         pinctrl-1 = <&blsp_i2c1_sleep>;
1706                         pinctrl-names = "default", "sleep";
1707                         #address-cells = <1>;
1708                         #size-cells = <0>;
1709                         status = "disabled";
1710                 };
1711
1712                 blsp_spi1: spi@78b5000 {
1713                         compatible = "qcom,spi-qup-v2.2.1";
1714                         reg = <0x078b5000 0x500>;
1715                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1716                         clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
1717                                  <&gcc GCC_BLSP1_AHB_CLK>;
1718                         clock-names = "core", "iface";
1719                         dmas = <&blsp_dma 4>, <&blsp_dma 5>;
1720                         dma-names = "tx", "rx";
1721                         pinctrl-0 = <&blsp_spi1_default>;
1722                         pinctrl-1 = <&blsp_spi1_sleep>;
1723                         pinctrl-names = "default", "sleep";
1724                         #address-cells = <1>;
1725                         #size-cells = <0>;
1726                         status = "disabled";
1727                 };
1728
1729                 blsp_i2c2: i2c@78b6000 {
1730                         compatible = "qcom,i2c-qup-v2.2.1";
1731                         reg = <0x078b6000 0x500>;
1732                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1733                         clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1734                                  <&gcc GCC_BLSP1_AHB_CLK>;
1735                         clock-names = "core", "iface";
1736                         dmas = <&blsp_dma 6>, <&blsp_dma 7>;
1737                         dma-names = "tx", "rx";
1738                         pinctrl-0 = <&blsp_i2c2_default>;
1739                         pinctrl-1 = <&blsp_i2c2_sleep>;
1740                         pinctrl-names = "default", "sleep";
1741                         #address-cells = <1>;
1742                         #size-cells = <0>;
1743                         status = "disabled";
1744                 };
1745
1746                 blsp_spi2: spi@78b6000 {
1747                         compatible = "qcom,spi-qup-v2.2.1";
1748                         reg = <0x078b6000 0x500>;
1749                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1750                         clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
1751                                  <&gcc GCC_BLSP1_AHB_CLK>;
1752                         clock-names = "core", "iface";
1753                         dmas = <&blsp_dma 6>, <&blsp_dma 7>;
1754                         dma-names = "tx", "rx";
1755                         pinctrl-0 = <&blsp_spi2_default>;
1756                         pinctrl-1 = <&blsp_spi2_sleep>;
1757                         pinctrl-names = "default", "sleep";
1758                         #address-cells = <1>;
1759                         #size-cells = <0>;
1760                         status = "disabled";
1761                 };
1762
1763                 blsp_i2c3: i2c@78b7000 {
1764                         compatible = "qcom,i2c-qup-v2.2.1";
1765                         reg = <0x078b7000 0x500>;
1766                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1767                         clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1768                                  <&gcc GCC_BLSP1_AHB_CLK>;
1769                         clock-names = "core", "iface";
1770                         dmas = <&blsp_dma 8>, <&blsp_dma 9>;
1771                         dma-names = "tx", "rx";
1772                         pinctrl-0 = <&blsp_i2c3_default>;
1773                         pinctrl-1 = <&blsp_i2c3_sleep>;
1774                         pinctrl-names = "default", "sleep";
1775                         #address-cells = <1>;
1776                         #size-cells = <0>;
1777                         status = "disabled";
1778                 };
1779
1780                 blsp_spi3: spi@78b7000 {
1781                         compatible = "qcom,spi-qup-v2.2.1";
1782                         reg = <0x078b7000 0x500>;
1783                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1784                         clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1785                                  <&gcc GCC_BLSP1_AHB_CLK>;
1786                         clock-names = "core", "iface";
1787                         dmas = <&blsp_dma 8>, <&blsp_dma 9>;
1788                         dma-names = "tx", "rx";
1789                         pinctrl-0 = <&blsp_spi3_default>;
1790                         pinctrl-1 = <&blsp_spi3_sleep>;
1791                         pinctrl-names = "default", "sleep";
1792                         #address-cells = <1>;
1793                         #size-cells = <0>;
1794                         status = "disabled";
1795                 };
1796
1797                 blsp_i2c4: i2c@78b8000 {
1798                         compatible = "qcom,i2c-qup-v2.2.1";
1799                         reg = <0x078b8000 0x500>;
1800                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1801                         clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1802                                  <&gcc GCC_BLSP1_AHB_CLK>;
1803                         clock-names = "core", "iface";
1804                         dmas = <&blsp_dma 10>, <&blsp_dma 11>;
1805                         dma-names = "tx", "rx";
1806                         pinctrl-0 = <&blsp_i2c4_default>;
1807                         pinctrl-1 = <&blsp_i2c4_sleep>;
1808                         pinctrl-names = "default", "sleep";
1809                         #address-cells = <1>;
1810                         #size-cells = <0>;
1811                         status = "disabled";
1812                 };
1813
1814                 blsp_spi4: spi@78b8000 {
1815                         compatible = "qcom,spi-qup-v2.2.1";
1816                         reg = <0x078b8000 0x500>;
1817                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1818                         clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
1819                                  <&gcc GCC_BLSP1_AHB_CLK>;
1820                         clock-names = "core", "iface";
1821                         dmas = <&blsp_dma 10>, <&blsp_dma 11>;
1822                         dma-names = "tx", "rx";
1823                         pinctrl-0 = <&blsp_spi4_default>;
1824                         pinctrl-1 = <&blsp_spi4_sleep>;
1825                         pinctrl-names = "default", "sleep";
1826                         #address-cells = <1>;
1827                         #size-cells = <0>;
1828                         status = "disabled";
1829                 };
1830
1831                 blsp_i2c5: i2c@78b9000 {
1832                         compatible = "qcom,i2c-qup-v2.2.1";
1833                         reg = <0x078b9000 0x500>;
1834                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1835                         clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
1836                                  <&gcc GCC_BLSP1_AHB_CLK>;
1837                         clock-names = "core", "iface";
1838                         dmas = <&blsp_dma 12>, <&blsp_dma 13>;
1839                         dma-names = "tx", "rx";
1840                         pinctrl-0 = <&blsp_i2c5_default>;
1841                         pinctrl-1 = <&blsp_i2c5_sleep>;
1842                         pinctrl-names = "default", "sleep";
1843                         #address-cells = <1>;
1844                         #size-cells = <0>;
1845                         status = "disabled";
1846                 };
1847
1848                 blsp_spi5: spi@78b9000 {
1849                         compatible = "qcom,spi-qup-v2.2.1";
1850                         reg = <0x078b9000 0x500>;
1851                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1852                         clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
1853                                  <&gcc GCC_BLSP1_AHB_CLK>;
1854                         clock-names = "core", "iface";
1855                         dmas = <&blsp_dma 12>, <&blsp_dma 13>;
1856                         dma-names = "tx", "rx";
1857                         pinctrl-0 = <&blsp_spi5_default>;
1858                         pinctrl-1 = <&blsp_spi5_sleep>;
1859                         pinctrl-names = "default", "sleep";
1860                         #address-cells = <1>;
1861                         #size-cells = <0>;
1862                         status = "disabled";
1863                 };
1864
1865                 blsp_i2c6: i2c@78ba000 {
1866                         compatible = "qcom,i2c-qup-v2.2.1";
1867                         reg = <0x078ba000 0x500>;
1868                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1869                         clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
1870                                  <&gcc GCC_BLSP1_AHB_CLK>;
1871                         clock-names = "core", "iface";
1872                         dmas = <&blsp_dma 14>, <&blsp_dma 15>;
1873                         dma-names = "tx", "rx";
1874                         pinctrl-0 = <&blsp_i2c6_default>;
1875                         pinctrl-1 = <&blsp_i2c6_sleep>;
1876                         pinctrl-names = "default", "sleep";
1877                         #address-cells = <1>;
1878                         #size-cells = <0>;
1879                         status = "disabled";
1880                 };
1881
1882                 blsp_spi6: spi@78ba000 {
1883                         compatible = "qcom,spi-qup-v2.2.1";
1884                         reg = <0x078ba000 0x500>;
1885                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1886                         clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
1887                                  <&gcc GCC_BLSP1_AHB_CLK>;
1888                         clock-names = "core", "iface";
1889                         dmas = <&blsp_dma 14>, <&blsp_dma 15>;
1890                         dma-names = "tx", "rx";
1891                         pinctrl-0 = <&blsp_spi6_default>;
1892                         pinctrl-1 = <&blsp_spi6_sleep>;
1893                         pinctrl-names = "default", "sleep";
1894                         #address-cells = <1>;
1895                         #size-cells = <0>;
1896                         status = "disabled";
1897                 };
1898
1899                 usb: usb@78d9000 {
1900                         compatible = "qcom,ci-hdrc";
1901                         reg = <0x078d9000 0x200>,
1902                               <0x078d9200 0x200>;
1903                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1904                                      <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1905                         clocks = <&gcc GCC_USB_HS_AHB_CLK>,
1906                                  <&gcc GCC_USB_HS_SYSTEM_CLK>;
1907                         clock-names = "iface", "core";
1908                         assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
1909                         assigned-clock-rates = <80000000>;
1910                         resets = <&gcc GCC_USB_HS_BCR>;
1911                         reset-names = "core";
1912                         #reset-cells = <1>;
1913                         phy_type = "ulpi";
1914                         dr_mode = "otg";
1915                         adp-disable;
1916                         hnp-disable;
1917                         srp-disable;
1918                         ahb-burst-config = <0>;
1919                         phy-names = "usb-phy";
1920                         phys = <&usb_hs_phy>;
1921                         status = "disabled";
1922
1923                         ulpi {
1924                                 usb_hs_phy: phy {
1925                                         compatible = "qcom,usb-hs-phy-msm8916",
1926                                                      "qcom,usb-hs-phy";
1927                                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1928                                                  <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
1929                                         clock-names = "ref", "sleep";
1930                                         resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
1931                                         reset-names = "phy", "por";
1932                                         #phy-cells = <0>;
1933                                         qcom,init-seq = /bits/ 8 <0x0 0x44>,
1934                                                                  <0x1 0x6b>,
1935                                                                  <0x2 0x24>,
1936                                                                  <0x3 0x13>;
1937                                 };
1938                         };
1939                 };
1940
1941                 wcnss: remoteproc@a204000 {
1942                         compatible = "qcom,pronto-v2-pil", "qcom,pronto";
1943                         interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1944                                               <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1945                                               <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1946                                               <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1947                                               <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1948                         interrupt-names = "wdog",
1949                                           "fatal",
1950                                           "ready",
1951                                           "handover",
1952                                           "stop-ack";
1953                         reg = <0x0a204000 0x2000>,
1954                               <0x0a202000 0x1000>,
1955                               <0x0a21b000 0x3000>;
1956                         reg-names = "ccu", "dxe", "pmu";
1957
1958                         memory-region = <&wcnss_mem>;
1959
1960                         power-domains = <&rpmpd MSM8939_VDDCX>,
1961                                         <&rpmpd MSM8939_VDDMX>;
1962                         power-domain-names = "cx", "mx";
1963
1964                         qcom,smem-states = <&wcnss_smp2p_out 0>;
1965                         qcom,smem-state-names = "stop";
1966
1967                         pinctrl-names = "default";
1968                         pinctrl-0 = <&wcss_wlan_default>;
1969
1970                         status = "disabled";
1971
1972                         wcnss_iris: iris {
1973                                 /* Separate chip, compatible is board-specific */
1974                                 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1975                                 clock-names = "xo";
1976                         };
1977
1978                         smd-edge {
1979                                 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1980                                 qcom,ipc = <&apcs1_mbox 8 17>;
1981                                 qcom,smd-edge = <6>;
1982                                 qcom,remote-pid = <4>;
1983
1984                                 label = "pronto";
1985
1986                                 wcnss {
1987                                         compatible = "qcom,wcnss";
1988                                         qcom,smd-channels = "WCNSS_CTRL";
1989
1990                                         qcom,mmio = <&wcnss>;
1991
1992                                         wcnss_bt: bluetooth {
1993                                                 compatible = "qcom,wcnss-bt";
1994                                         };
1995
1996                                         wcnss_wifi: wifi {
1997                                                 compatible = "qcom,wcnss-wlan";
1998
1999                                                 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
2000                                                              <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
2001                                                 interrupt-names = "tx", "rx";
2002
2003                                                 qcom,smem-states = <&apps_smsm 10>,
2004                                                                    <&apps_smsm 9>;
2005                                                 qcom,smem-state-names = "tx-enable",
2006                                                                         "tx-rings-empty";
2007                                         };
2008                                 };
2009                         };
2010                 };
2011
2012                 intc: interrupt-controller@b000000 {
2013                         compatible = "qcom,msm-qgic2";
2014                         reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
2015                               <0x0b001000 0x1000>, <0x0b004000 0x2000>;
2016                         interrupt-controller;
2017                         #interrupt-cells = <3>;
2018                         interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
2019                 };
2020
2021                 apcs1_mbox: mailbox@b011000 {
2022                         compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
2023                         reg = <0x0b011000 0x1000>;
2024                         clocks = <&a53pll_c1>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2025                         clock-names = "pll", "aux", "ref";
2026                         #clock-cells = <0>;
2027                         assigned-clocks = <&apcs2>;
2028                         assigned-clock-rates = <297600000>;
2029                         #mbox-cells = <1>;
2030                 };
2031
2032                 a53pll_c1: clock@b016000 {
2033                         compatible = "qcom,msm8939-a53pll";
2034                         reg = <0x0b016000 0x40>;
2035                         #clock-cells = <0>;
2036                 };
2037
2038                 acc0: clock-controller@b088000 {
2039                         compatible = "qcom,kpss-acc-v2";
2040                         reg = <0x0b088000 0x1000>;
2041                 };
2042
2043                 saw0: power-manager@b089000 {
2044                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2045                         reg = <0x0b089000 0x1000>;
2046                 };
2047
2048                 acc1: clock-controller@b098000 {
2049                         compatible = "qcom,kpss-acc-v2";
2050                         reg = <0x0b098000 0x1000>;
2051                 };
2052
2053                 saw1: power-manager@b099000 {
2054                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2055                         reg = <0x0b099000 0x1000>;
2056                 };
2057
2058                 acc2: clock-controller@b0a8000 {
2059                         compatible = "qcom,kpss-acc-v2";
2060                         reg = <0x0b0a8000 0x1000>;
2061                 };
2062
2063                 saw2: power-manager@b0a9000 {
2064                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2065                         reg = <0x0b0a9000 0x1000>;
2066                 };
2067
2068                 acc3: clock-controller@b0b8000 {
2069                         compatible = "qcom,kpss-acc-v2";
2070                         reg = <0x0b0b8000 0x1000>;
2071                 };
2072
2073                 saw3: power-manager@b0b9000 {
2074                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2075                         reg = <0x0b0b9000 0x1000>;
2076                 };
2077
2078                 apcs0_mbox: mailbox@b111000 {
2079                         compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
2080                         reg = <0x0b111000 0x1000>;
2081                         clocks = <&a53pll_c0>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2082                         clock-names = "pll", "aux", "ref";
2083                         #clock-cells = <0>;
2084                         #mbox-cells = <1>;
2085                 };
2086
2087                 a53pll_c0: clock@b116000 {
2088                         compatible = "qcom,msm8939-a53pll";
2089                         reg = <0x0b116000 0x40>;
2090                         #clock-cells = <0>;
2091                 };
2092
2093                 timer@b120000 {
2094                         compatible = "arm,armv7-timer-mem";
2095                         reg = <0x0b120000 0x1000>;
2096                         #address-cells = <1>;
2097                         #size-cells = <1>;
2098                         ranges;
2099
2100                         frame@b121000 {
2101                                 reg = <0x0b121000 0x1000>,
2102                                       <0x0b122000 0x1000>;
2103                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
2104                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
2105                                 frame-number = <0>;
2106                         };
2107
2108                         frame@b123000 {
2109                                 reg = <0x0b123000 0x1000>;
2110                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
2111                                 frame-number = <1>;
2112                                 status = "disabled";
2113                         };
2114
2115                         frame@b124000 {
2116                                 reg = <0x0b124000 0x1000>;
2117                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2118                                 frame-number = <2>;
2119                                 status = "disabled";
2120                         };
2121
2122                         frame@b125000 {
2123                                 reg = <0x0b125000 0x1000>;
2124                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
2125                                 frame-number = <3>;
2126                                 status = "disabled";
2127                         };
2128
2129                         frame@b126000 {
2130                                 reg = <0x0b126000 0x1000>;
2131                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
2132                                 frame-number = <4>;
2133                                 status = "disabled";
2134                         };
2135
2136                         frame@b127000 {
2137                                 reg = <0x0b127000 0x1000>;
2138                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
2139                                 frame-number = <5>;
2140                                 status = "disabled";
2141                         };
2142
2143                         frame@b128000 {
2144                                 reg = <0x0b128000 0x1000>;
2145                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
2146                                 frame-number = <6>;
2147                                 status = "disabled";
2148                         };
2149                 };
2150
2151                 acc4: clock-controller@b188000 {
2152                         compatible = "qcom,kpss-acc-v2";
2153                         reg = <0x0b188000 0x1000>;
2154                 };
2155
2156                 saw4: power-manager@b189000 {
2157                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2158                         reg = <0x0b189000 0x1000>;
2159                 };
2160
2161                 acc5: clock-controller@b198000 {
2162                         compatible = "qcom,kpss-acc-v2";
2163                         reg = <0x0b198000 0x1000>;
2164                 };
2165
2166                 saw5: power-manager@b199000 {
2167                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2168                         reg = <0x0b199000 0x1000>;
2169                 };
2170
2171                 acc6: clock-controller@b1a8000 {
2172                         compatible = "qcom,kpss-acc-v2";
2173                         reg = <0x0b1a8000 0x1000>;
2174                 };
2175
2176                 saw6: power-manager@b1a9000 {
2177                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2178                         reg = <0x0b1a9000 0x1000>;
2179                 };
2180
2181                 acc7: clock-controller@b1b8000 {
2182                         compatible = "qcom,kpss-acc-v2";
2183                         reg = <0x0b1b8000 0x1000>;
2184                 };
2185
2186                 saw7: power-manager@b1b9000 {
2187                         compatible = "qcom,msm8939-saw2-v3.0-cpu", "qcom,saw2";
2188                         reg = <0x0b1b9000 0x1000>;
2189                 };
2190
2191                 a53pll_cci: clock@b1d0000 {
2192                         compatible = "qcom,msm8939-a53pll";
2193                         reg = <0x0b1d0000 0x40>;
2194                         #clock-cells = <0>;
2195                 };
2196
2197                 apcs2: mailbox@b1d1000 {
2198                         compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
2199                         reg = <0x0b1d1000 0x1000>;
2200                         clocks = <&a53pll_cci>, <&gcc GPLL0_VOTE>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2201                         clock-names = "pll", "aux", "ref";
2202                         #clock-cells = <0>;
2203                         #mbox-cells = <1>;
2204                 };
2205         };
2206
2207         thermal_zones: thermal-zones {
2208                 cpu0-thermal {
2209                         polling-delay-passive = <250>;
2210                         polling-delay = <1000>;
2211
2212                         thermal-sensors = <&tsens 5>;
2213
2214                         trips {
2215                                 cpu0_alert: trip0 {
2216                                         temperature = <75000>;
2217                                         hysteresis = <2000>;
2218                                         type = "passive";
2219                                 };
2220
2221                                 cpu0_crit: trip1 {
2222                                         temperature = <115000>;
2223                                         hysteresis = <0>;
2224                                         type = "critical";
2225                                 };
2226                         };
2227
2228                         cooling-maps {
2229                                 map0 {
2230                                         trip = <&cpu0_alert>;
2231                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2232                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2233                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2234                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2235                                 };
2236                         };
2237                 };
2238
2239                 cpu1-thermal {
2240                         polling-delay-passive = <250>;
2241                         polling-delay = <1000>;
2242
2243                         thermal-sensors = <&tsens 6>;
2244
2245                         trips {
2246                                 cpu1_alert: trip0 {
2247                                         temperature = <75000>;
2248                                         hysteresis = <2000>;
2249                                         type = "passive";
2250                                 };
2251
2252                                 cpu1_crit: trip1 {
2253                                         temperature = <110000>;
2254                                         hysteresis = <2000>;
2255                                         type = "critical";
2256                                 };
2257                         };
2258
2259                         cooling-maps {
2260                                 map0 {
2261                                         trip = <&cpu1_alert>;
2262                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2263                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2264                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2265                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2266                                 };
2267                         };
2268                 };
2269
2270                 cpu2-thermal {
2271                         polling-delay-passive = <250>;
2272                         polling-delay = <1000>;
2273
2274                         thermal-sensors = <&tsens 7>;
2275
2276                         trips {
2277                                 cpu2_alert: trip0 {
2278                                         temperature = <75000>;
2279                                         hysteresis = <2000>;
2280                                         type = "passive";
2281                                 };
2282
2283                                 cpu2_crit: trip1 {
2284                                         temperature = <110000>;
2285                                         hysteresis = <2000>;
2286                                         type = "critical";
2287                                 };
2288                         };
2289
2290                         cooling-maps {
2291                                 map0 {
2292                                         trip = <&cpu2_alert>;
2293                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2294                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2295                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2296                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2297                                 };
2298                         };
2299                 };
2300
2301                 cpu3-thermal {
2302                         polling-delay-passive = <250>;
2303                         polling-delay = <1000>;
2304
2305                         thermal-sensors = <&tsens 8>;
2306
2307                         trips {
2308                                 cpu3_alert: trip0 {
2309                                         temperature = <75000>;
2310                                         hysteresis = <2000>;
2311                                         type = "passive";
2312                                 };
2313
2314                                 cpu3_crit: trip1 {
2315                                         temperature = <110000>;
2316                                         hysteresis = <2000>;
2317                                         type = "critical";
2318                                 };
2319                         };
2320
2321                         cooling-maps {
2322                                 map0 {
2323                                         trip = <&cpu3_alert>;
2324                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2325                                                          <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2326                                                          <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2327                                                          <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2328                                 };
2329                         };
2330                 };
2331
2332                 cpu4567-thermal {
2333                         polling-delay-passive = <250>;
2334                         polling-delay = <1000>;
2335
2336                         thermal-sensors = <&tsens 9>;
2337
2338                         trips {
2339                                 cpu4567_alert: trip0 {
2340                                         temperature = <75000>;
2341                                         hysteresis = <2000>;
2342                                         type = "passive";
2343                                 };
2344
2345                                 cpu4567_crit: trip1 {
2346                                         temperature = <110000>;
2347                                         hysteresis = <2000>;
2348                                         type = "critical";
2349                                 };
2350                         };
2351
2352                         cooling-maps {
2353                                 map0 {
2354                                         trip = <&cpu4567_alert>;
2355                                         cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2356                                                          <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2357                                                          <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2358                                                          <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2359                                 };
2360                         };
2361                 };
2362
2363                 gpu-thermal {
2364                         polling-delay-passive = <250>;
2365                         polling-delay = <1000>;
2366
2367                         thermal-sensors = <&tsens 3>;
2368
2369                         trips {
2370                                 gpu_alert0: trip-point0 {
2371                                         temperature = <75000>;
2372                                         hysteresis = <2000>;
2373                                         type = "passive";
2374                                 };
2375
2376                                 gpu_crit: gpu_crit {
2377                                         temperature = <95000>;
2378                                         hysteresis = <2000>;
2379                                         type = "critical";
2380                                 };
2381                         };
2382                 };
2383
2384                 modem1-thermal {
2385                         polling-delay-passive = <250>;
2386                         polling-delay = <1000>;
2387
2388                         thermal-sensors = <&tsens 0>;
2389
2390                         trips {
2391                                 modem1_alert0: trip-point0 {
2392                                         temperature = <85000>;
2393                                         hysteresis = <2000>;
2394                                         type = "hot";
2395                                 };
2396                         };
2397                 };
2398
2399                 modem2-thermal {
2400                         polling-delay-passive = <250>;
2401                         polling-delay = <1000>;
2402
2403                         thermal-sensors = <&tsens 2>;
2404
2405                         trips {
2406                                 modem2_alert0: trip-point0 {
2407                                         temperature = <85000>;
2408                                         hysteresis = <2000>;
2409                                         type = "hot";
2410                                 };
2411                         };
2412                 };
2413
2414                 camera-thermal {
2415                         polling-delay-passive = <250>;
2416                         polling-delay = <1000>;
2417
2418                         thermal-sensors = <&tsens 1>;
2419
2420                         trips {
2421                                 cam_alert0: trip-point0 {
2422                                         temperature = <75000>;
2423                                         hysteresis = <2000>;
2424                                         type = "hot";
2425                                 };
2426                         };
2427                 };
2428         };
2429
2430         timer {
2431                 compatible = "arm,armv8-timer";
2432                 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2433                              <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2434                              <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2435                              <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
2436         };
2437 };