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