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