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