1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/qcom,gcc-msm8998.h>
6#include <dt-bindings/clock/qcom,rpmcc.h>
7#include <dt-bindings/power/qcom-rpmpd.h>
8#include <dt-bindings/gpio/gpio.h>
9
10/ {
11	interrupt-parent = <&intc>;
12
13	qcom,msm-id = <292 0x0>;
14
15	#address-cells = <2>;
16	#size-cells = <2>;
17
18	chosen { };
19
20	memory {
21		device_type = "memory";
22		/* We expect the bootloader to fill in the reg */
23		reg = <0 0 0 0>;
24	};
25
26	reserved-memory {
27		#address-cells = <2>;
28		#size-cells = <2>;
29		ranges;
30
31		memory@85800000 {
32			reg = <0x0 0x85800000 0x0 0x800000>;
33			no-map;
34		};
35
36		smem_mem: smem-mem@86000000 {
37			reg = <0x0 0x86000000 0x0 0x200000>;
38			no-map;
39		};
40
41		memory@86200000 {
42			reg = <0x0 0x86200000 0x0 0x2d00000>;
43			no-map;
44		};
45
46		rmtfs {
47			compatible = "qcom,rmtfs-mem";
48
49			size = <0x0 0x200000>;
50			alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>;
51			no-map;
52
53			qcom,client-id = <1>;
54			qcom,vmid = <15>;
55		};
56	};
57
58	clocks {
59		xo: xo-board {
60			compatible = "fixed-clock";
61			#clock-cells = <0>;
62			clock-frequency = <19200000>;
63			clock-output-names = "xo_board";
64		};
65
66		sleep_clk {
67			compatible = "fixed-clock";
68			#clock-cells = <0>;
69			clock-frequency = <32764>;
70		};
71	};
72
73	cpus {
74		#address-cells = <2>;
75		#size-cells = <0>;
76
77		CPU0: cpu@0 {
78			device_type = "cpu";
79			compatible = "arm,armv8";
80			reg = <0x0 0x0>;
81			enable-method = "psci";
82			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
83			next-level-cache = <&L2_0>;
84			L2_0: l2-cache {
85				compatible = "arm,arch-cache";
86				cache-level = <2>;
87			};
88			L1_I_0: l1-icache {
89				compatible = "arm,arch-cache";
90			};
91			L1_D_0: l1-dcache {
92				compatible = "arm,arch-cache";
93			};
94		};
95
96		CPU1: cpu@1 {
97			device_type = "cpu";
98			compatible = "arm,armv8";
99			reg = <0x0 0x1>;
100			enable-method = "psci";
101			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
102			next-level-cache = <&L2_0>;
103			L1_I_1: l1-icache {
104				compatible = "arm,arch-cache";
105			};
106			L1_D_1: l1-dcache {
107				compatible = "arm,arch-cache";
108			};
109		};
110
111		CPU2: cpu@2 {
112			device_type = "cpu";
113			compatible = "arm,armv8";
114			reg = <0x0 0x2>;
115			enable-method = "psci";
116			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
117			next-level-cache = <&L2_0>;
118			L1_I_2: l1-icache {
119				compatible = "arm,arch-cache";
120			};
121			L1_D_2: l1-dcache {
122				compatible = "arm,arch-cache";
123			};
124		};
125
126		CPU3: cpu@3 {
127			device_type = "cpu";
128			compatible = "arm,armv8";
129			reg = <0x0 0x3>;
130			enable-method = "psci";
131			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
132			next-level-cache = <&L2_0>;
133			L1_I_3: l1-icache {
134				compatible = "arm,arch-cache";
135			};
136			L1_D_3: l1-dcache {
137				compatible = "arm,arch-cache";
138			};
139		};
140
141		CPU4: cpu@100 {
142			device_type = "cpu";
143			compatible = "arm,armv8";
144			reg = <0x0 0x100>;
145			enable-method = "psci";
146			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
147			next-level-cache = <&L2_1>;
148			L2_1: l2-cache {
149				compatible = "arm,arch-cache";
150				cache-level = <2>;
151			};
152			L1_I_100: l1-icache {
153				compatible = "arm,arch-cache";
154			};
155			L1_D_100: l1-dcache {
156				compatible = "arm,arch-cache";
157			};
158		};
159
160		CPU5: cpu@101 {
161			device_type = "cpu";
162			compatible = "arm,armv8";
163			reg = <0x0 0x101>;
164			enable-method = "psci";
165			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
166			next-level-cache = <&L2_1>;
167			L1_I_101: l1-icache {
168				compatible = "arm,arch-cache";
169			};
170			L1_D_101: l1-dcache {
171				compatible = "arm,arch-cache";
172			};
173		};
174
175		CPU6: cpu@102 {
176			device_type = "cpu";
177			compatible = "arm,armv8";
178			reg = <0x0 0x102>;
179			enable-method = "psci";
180			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
181			next-level-cache = <&L2_1>;
182			L1_I_102: l1-icache {
183				compatible = "arm,arch-cache";
184			};
185			L1_D_102: l1-dcache {
186				compatible = "arm,arch-cache";
187			};
188		};
189
190		CPU7: cpu@103 {
191			device_type = "cpu";
192			compatible = "arm,armv8";
193			reg = <0x0 0x103>;
194			enable-method = "psci";
195			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
196			next-level-cache = <&L2_1>;
197			L1_I_103: l1-icache {
198				compatible = "arm,arch-cache";
199			};
200			L1_D_103: l1-dcache {
201				compatible = "arm,arch-cache";
202			};
203		};
204
205		cpu-map {
206			cluster0 {
207				core0 {
208					cpu = <&CPU0>;
209				};
210
211				core1 {
212					cpu = <&CPU1>;
213				};
214
215				core2 {
216					cpu = <&CPU2>;
217				};
218
219				core3 {
220					cpu = <&CPU3>;
221				};
222			};
223
224			cluster1 {
225				core0 {
226					cpu = <&CPU4>;
227				};
228
229				core1 {
230					cpu = <&CPU5>;
231				};
232
233				core2 {
234					cpu = <&CPU6>;
235				};
236
237				core3 {
238					cpu = <&CPU7>;
239				};
240			};
241		};
242
243		idle-states {
244			entry-method = "psci";
245
246			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
247				compatible = "arm,idle-state";
248				idle-state-name = "little-retention";
249				arm,psci-suspend-param = <0x00000002>;
250				entry-latency-us = <81>;
251				exit-latency-us = <86>;
252				min-residency-us = <200>;
253			};
254
255			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
256				compatible = "arm,idle-state";
257				idle-state-name = "little-power-collapse";
258				arm,psci-suspend-param = <0x40000003>;
259				entry-latency-us = <273>;
260				exit-latency-us = <612>;
261				min-residency-us = <1000>;
262				local-timer-stop;
263			};
264
265			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
266				compatible = "arm,idle-state";
267				idle-state-name = "big-retention";
268				arm,psci-suspend-param = <0x00000002>;
269				entry-latency-us = <79>;
270				exit-latency-us = <82>;
271				min-residency-us = <200>;
272			};
273
274			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
275				compatible = "arm,idle-state";
276				idle-state-name = "big-power-collapse";
277				arm,psci-suspend-param = <0x40000003>;
278				entry-latency-us = <336>;
279				exit-latency-us = <525>;
280				min-residency-us = <1000>;
281				local-timer-stop;
282			};
283		};
284	};
285
286	firmware {
287		scm {
288			compatible = "qcom,scm-msm8998", "qcom,scm";
289		};
290	};
291
292	tcsr_mutex: hwlock {
293		compatible = "qcom,tcsr-mutex";
294		syscon = <&tcsr_mutex_regs 0 0x1000>;
295		#hwlock-cells = <1>;
296	};
297
298	psci {
299		compatible = "arm,psci-1.0";
300		method = "smc";
301	};
302
303	rpm-glink {
304		compatible = "qcom,glink-rpm";
305
306		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
307		qcom,rpm-msg-ram = <&rpm_msg_ram>;
308		mboxes = <&apcs_glb 0>;
309
310		rpm_requests: rpm-requests {
311			compatible = "qcom,rpm-msm8998";
312			qcom,glink-channels = "rpm_requests";
313
314			rpmcc: clock-controller {
315				compatible = "qcom,rpmcc-msm8998", "qcom,rpmcc";
316				#clock-cells = <1>;
317			};
318
319			rpmpd: power-controller {
320				compatible = "qcom,msm8998-rpmpd";
321				#power-domain-cells = <1>;
322				operating-points-v2 = <&rpmpd_opp_table>;
323
324				rpmpd_opp_table: opp-table {
325					compatible = "operating-points-v2";
326
327					rpmpd_opp_ret: opp1 {
328						opp-level = <16>;
329					};
330
331					rpmpd_opp_ret_plus: opp2 {
332						opp-level = <32>;
333					};
334
335					rpmpd_opp_min_svs: opp3 {
336						opp-level = <48>;
337					};
338
339					rpmpd_opp_low_svs: opp4 {
340						opp-level = <64>;
341					};
342
343					rpmpd_opp_svs: opp5 {
344						opp-level = <128>;
345					};
346
347					rpmpd_opp_svs_plus: opp6 {
348						opp-level = <192>;
349					};
350
351					rpmpd_opp_nom: opp7 {
352						opp-level = <256>;
353					};
354
355					rpmpd_opp_nom_plus: opp8 {
356						opp-level = <320>;
357					};
358
359					rpmpd_opp_turbo: opp9 {
360						opp-level = <384>;
361					};
362
363					rpmpd_opp_turbo_plus: opp10 {
364						opp-level = <512>;
365					};
366				};
367			};
368		};
369	};
370
371	smem {
372		compatible = "qcom,smem";
373		memory-region = <&smem_mem>;
374		hwlocks = <&tcsr_mutex 3>;
375	};
376
377	smp2p-lpass {
378		compatible = "qcom,smp2p";
379		qcom,smem = <443>, <429>;
380
381		interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
382
383		mboxes = <&apcs_glb 10>;
384
385		qcom,local-pid = <0>;
386		qcom,remote-pid = <2>;
387
388		adsp_smp2p_out: master-kernel {
389			qcom,entry-name = "master-kernel";
390			#qcom,smem-state-cells = <1>;
391		};
392
393		adsp_smp2p_in: slave-kernel {
394			qcom,entry-name = "slave-kernel";
395
396			interrupt-controller;
397			#interrupt-cells = <2>;
398		};
399	};
400
401	smp2p-mpss {
402		compatible = "qcom,smp2p";
403		qcom,smem = <435>, <428>;
404		interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
405		mboxes = <&apcs_glb 14>;
406		qcom,local-pid = <0>;
407		qcom,remote-pid = <1>;
408
409		modem_smp2p_out: master-kernel {
410			qcom,entry-name = "master-kernel";
411			#qcom,smem-state-cells = <1>;
412		};
413
414		modem_smp2p_in: slave-kernel {
415			qcom,entry-name = "slave-kernel";
416			interrupt-controller;
417			#interrupt-cells = <2>;
418		};
419	};
420
421	smp2p-slpi {
422		compatible = "qcom,smp2p";
423		qcom,smem = <481>, <430>;
424		interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
425		mboxes = <&apcs_glb 26>;
426		qcom,local-pid = <0>;
427		qcom,remote-pid = <3>;
428
429		slpi_smp2p_out: master-kernel {
430			qcom,entry-name = "master-kernel";
431			#qcom,smem-state-cells = <1>;
432		};
433
434		slpi_smp2p_in: slave-kernel {
435			qcom,entry-name = "slave-kernel";
436			interrupt-controller;
437			#interrupt-cells = <2>;
438		};
439	};
440
441	thermal-zones {
442		cpu0-thermal {
443			polling-delay-passive = <250>;
444			polling-delay = <1000>;
445
446			thermal-sensors = <&tsens0 1>;
447
448			trips {
449				cpu0_alert0: trip-point@0 {
450					temperature = <75000>;
451					hysteresis = <2000>;
452					type = "passive";
453				};
454
455				cpu0_crit: cpu_crit {
456					temperature = <110000>;
457					hysteresis = <2000>;
458					type = "critical";
459				};
460			};
461		};
462
463		cpu1-thermal {
464			polling-delay-passive = <250>;
465			polling-delay = <1000>;
466
467			thermal-sensors = <&tsens0 2>;
468
469			trips {
470				cpu1_alert0: trip-point@0 {
471					temperature = <75000>;
472					hysteresis = <2000>;
473					type = "passive";
474				};
475
476				cpu1_crit: cpu_crit {
477					temperature = <110000>;
478					hysteresis = <2000>;
479					type = "critical";
480				};
481			};
482		};
483
484		cpu2-thermal {
485			polling-delay-passive = <250>;
486			polling-delay = <1000>;
487
488			thermal-sensors = <&tsens0 3>;
489
490			trips {
491				cpu2_alert0: trip-point@0 {
492					temperature = <75000>;
493					hysteresis = <2000>;
494					type = "passive";
495				};
496
497				cpu2_crit: cpu_crit {
498					temperature = <110000>;
499					hysteresis = <2000>;
500					type = "critical";
501				};
502			};
503		};
504
505		cpu3-thermal {
506			polling-delay-passive = <250>;
507			polling-delay = <1000>;
508
509			thermal-sensors = <&tsens0 4>;
510
511			trips {
512				cpu3_alert0: trip-point@0 {
513					temperature = <75000>;
514					hysteresis = <2000>;
515					type = "passive";
516				};
517
518				cpu3_crit: cpu_crit {
519					temperature = <110000>;
520					hysteresis = <2000>;
521					type = "critical";
522				};
523			};
524		};
525
526		cpu4-thermal {
527			polling-delay-passive = <250>;
528			polling-delay = <1000>;
529
530			thermal-sensors = <&tsens0 7>;
531
532			trips {
533				cpu4_alert0: trip-point@0 {
534					temperature = <75000>;
535					hysteresis = <2000>;
536					type = "passive";
537				};
538
539				cpu4_crit: cpu_crit {
540					temperature = <110000>;
541					hysteresis = <2000>;
542					type = "critical";
543				};
544			};
545		};
546
547		cpu5-thermal {
548			polling-delay-passive = <250>;
549			polling-delay = <1000>;
550
551			thermal-sensors = <&tsens0 8>;
552
553			trips {
554				cpu5_alert0: trip-point@0 {
555					temperature = <75000>;
556					hysteresis = <2000>;
557					type = "passive";
558				};
559
560				cpu5_crit: cpu_crit {
561					temperature = <110000>;
562					hysteresis = <2000>;
563					type = "critical";
564				};
565			};
566		};
567
568		cpu6-thermal {
569			polling-delay-passive = <250>;
570			polling-delay = <1000>;
571
572			thermal-sensors = <&tsens0 9>;
573
574			trips {
575				cpu6_alert0: trip-point@0 {
576					temperature = <75000>;
577					hysteresis = <2000>;
578					type = "passive";
579				};
580
581				cpu6_crit: cpu_crit {
582					temperature = <110000>;
583					hysteresis = <2000>;
584					type = "critical";
585				};
586			};
587		};
588
589		cpu7-thermal {
590			polling-delay-passive = <250>;
591			polling-delay = <1000>;
592
593			thermal-sensors = <&tsens0 10>;
594
595			trips {
596				cpu7_alert0: trip-point@0 {
597					temperature = <75000>;
598					hysteresis = <2000>;
599					type = "passive";
600				};
601
602				cpu7_crit: cpu_crit {
603					temperature = <110000>;
604					hysteresis = <2000>;
605					type = "critical";
606				};
607			};
608		};
609
610		gpu-thermal-bottom {
611			polling-delay-passive = <250>;
612			polling-delay = <1000>;
613
614			thermal-sensors = <&tsens0 12>;
615
616			trips {
617				gpu1_alert0: trip-point@0 {
618					temperature = <90000>;
619					hysteresis = <2000>;
620					type = "hot";
621				};
622			};
623		};
624
625		gpu-thermal-top {
626			polling-delay-passive = <250>;
627			polling-delay = <1000>;
628
629			thermal-sensors = <&tsens0 13>;
630
631			trips {
632				gpu2_alert0: trip-point@0 {
633					temperature = <90000>;
634					hysteresis = <2000>;
635					type = "hot";
636				};
637			};
638		};
639
640		clust0-mhm-thermal {
641			polling-delay-passive = <250>;
642			polling-delay = <1000>;
643
644			thermal-sensors = <&tsens0 5>;
645
646			trips {
647				cluster0_mhm_alert0: trip-point@0 {
648					temperature = <90000>;
649					hysteresis = <2000>;
650					type = "hot";
651				};
652			};
653		};
654
655		clust1-mhm-thermal {
656			polling-delay-passive = <250>;
657			polling-delay = <1000>;
658
659			thermal-sensors = <&tsens0 6>;
660
661			trips {
662				cluster1_mhm_alert0: trip-point@0 {
663					temperature = <90000>;
664					hysteresis = <2000>;
665					type = "hot";
666				};
667			};
668		};
669
670		cluster1-l2-thermal {
671			polling-delay-passive = <250>;
672			polling-delay = <1000>;
673
674			thermal-sensors = <&tsens0 11>;
675
676			trips {
677				cluster1_l2_alert0: trip-point@0 {
678					temperature = <90000>;
679					hysteresis = <2000>;
680					type = "hot";
681				};
682			};
683		};
684
685		modem-thermal {
686			polling-delay-passive = <250>;
687			polling-delay = <1000>;
688
689			thermal-sensors = <&tsens1 1>;
690
691			trips {
692				modem_alert0: trip-point@0 {
693					temperature = <90000>;
694					hysteresis = <2000>;
695					type = "hot";
696				};
697			};
698		};
699
700		mem-thermal {
701			polling-delay-passive = <250>;
702			polling-delay = <1000>;
703
704			thermal-sensors = <&tsens1 2>;
705
706			trips {
707				mem_alert0: trip-point@0 {
708					temperature = <90000>;
709					hysteresis = <2000>;
710					type = "hot";
711				};
712			};
713		};
714
715		wlan-thermal {
716			polling-delay-passive = <250>;
717			polling-delay = <1000>;
718
719			thermal-sensors = <&tsens1 3>;
720
721			trips {
722				wlan_alert0: trip-point@0 {
723					temperature = <90000>;
724					hysteresis = <2000>;
725					type = "hot";
726				};
727			};
728		};
729
730		q6-dsp-thermal {
731			polling-delay-passive = <250>;
732			polling-delay = <1000>;
733
734			thermal-sensors = <&tsens1 4>;
735
736			trips {
737				q6_dsp_alert0: trip-point@0 {
738					temperature = <90000>;
739					hysteresis = <2000>;
740					type = "hot";
741				};
742			};
743		};
744
745		camera-thermal {
746			polling-delay-passive = <250>;
747			polling-delay = <1000>;
748
749			thermal-sensors = <&tsens1 5>;
750
751			trips {
752				camera_alert0: trip-point@0 {
753					temperature = <90000>;
754					hysteresis = <2000>;
755					type = "hot";
756				};
757			};
758		};
759
760		multimedia-thermal {
761			polling-delay-passive = <250>;
762			polling-delay = <1000>;
763
764			thermal-sensors = <&tsens1 6>;
765
766			trips {
767				multimedia_alert0: trip-point@0 {
768					temperature = <90000>;
769					hysteresis = <2000>;
770					type = "hot";
771				};
772			};
773		};
774	};
775
776	timer {
777		compatible = "arm,armv8-timer";
778		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
779			     <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
780			     <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
781			     <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
782	};
783
784	soc: soc {
785		#address-cells = <1>;
786		#size-cells = <1>;
787		ranges = <0 0 0 0xffffffff>;
788		compatible = "simple-bus";
789
790		gcc: clock-controller@100000 {
791			compatible = "qcom,gcc-msm8998";
792			#clock-cells = <1>;
793			#reset-cells = <1>;
794			#power-domain-cells = <1>;
795			reg = <0x00100000 0xb0000>;
796		};
797
798		rpm_msg_ram: memory@778000 {
799			compatible = "qcom,rpm-msg-ram";
800			reg = <0x00778000 0x7000>;
801		};
802
803		qfprom: qfprom@780000 {
804			compatible = "qcom,qfprom";
805			reg = <0x00780000 0x621c>;
806			#address-cells = <1>;
807			#size-cells = <1>;
808
809			qusb2_hstx_trim: hstx-trim@423a {
810				reg = <0x423a 0x1>;
811				bits = <0 4>;
812			};
813		};
814
815		tsens0: thermal@10ab000 {
816			compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
817			reg = <0x010ab000 0x1000>, /* TM */
818			      <0x010aa000 0x1000>; /* SROT */
819
820			#qcom,sensors = <14>;
821			#thermal-sensor-cells = <1>;
822		};
823
824		tsens1: thermal@10ae000 {
825			compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
826			reg = <0x010ae000 0x1000>, /* TM */
827			      <0x010ad000 0x1000>; /* SROT */
828
829			#qcom,sensors = <8>;
830			#thermal-sensor-cells = <1>;
831		};
832
833		anoc1_smmu: iommu@1680000 {
834			compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
835			reg = <0x01680000 0x10000>;
836			#iommu-cells = <1>;
837
838			#global-interrupts = <0>;
839			interrupts =
840				<GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
841				<GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
842				<GIC_SPI 366 IRQ_TYPE_EDGE_RISING>,
843				<GIC_SPI 367 IRQ_TYPE_EDGE_RISING>,
844				<GIC_SPI 368 IRQ_TYPE_EDGE_RISING>,
845				<GIC_SPI 369 IRQ_TYPE_EDGE_RISING>;
846		};
847
848		pcie0: pci@1c00000 {
849			compatible = "qcom,pcie-msm8996";
850			reg =	<0x01c00000 0x2000>,
851				<0x1b000000 0xf1d>,
852				<0x1b000f20 0xa8>,
853				<0x1b100000 0x100000>;
854			reg-names = "parf", "dbi", "elbi", "config";
855			device_type = "pci";
856			linux,pci-domain = <0>;
857			bus-range = <0x00 0xff>;
858			#address-cells = <3>;
859			#size-cells = <2>;
860			num-lanes = <1>;
861			phys = <&pciephy>;
862			phy-names = "pciephy";
863
864			ranges = <0x01000000 0x0 0x1b200000 0x1b200000 0x0 0x100000>,
865				 <0x02000000 0x0 0x1b300000 0x1b300000 0x0 0xd00000>;
866
867			#interrupt-cells = <1>;
868			interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
869			interrupt-names = "msi";
870			interrupt-map-mask = <0 0 0 0x7>;
871			interrupt-map =	<0 0 0 1 &intc 0 135 IRQ_TYPE_LEVEL_HIGH>,
872					<0 0 0 2 &intc 0 136 IRQ_TYPE_LEVEL_HIGH>,
873					<0 0 0 3 &intc 0 138 IRQ_TYPE_LEVEL_HIGH>,
874					<0 0 0 4 &intc 0 139 IRQ_TYPE_LEVEL_HIGH>;
875
876			clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
877				 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
878				 <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
879				 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
880				 <&gcc GCC_PCIE_0_AUX_CLK>;
881			clock-names = "pipe", "bus_master", "bus_slave", "cfg", "aux";
882
883			power-domains = <&gcc PCIE_0_GDSC>;
884			iommu-map = <0x100 &anoc1_smmu 0x1480 1>;
885			perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
886		};
887
888		phy@1c06000 {
889			compatible = "qcom,msm8998-qmp-pcie-phy";
890			reg = <0x01c06000 0x18c>;
891			#address-cells = <1>;
892			#size-cells = <1>;
893			ranges;
894
895			clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
896				 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
897				 <&gcc GCC_PCIE_CLKREF_CLK>;
898			clock-names = "aux", "cfg_ahb", "ref";
899
900			resets = <&gcc GCC_PCIE_0_PHY_BCR>, <&gcc GCC_PCIE_PHY_BCR>;
901			reset-names = "phy", "common";
902
903			vdda-phy-supply = <&vreg_l1a_0p875>;
904			vdda-pll-supply = <&vreg_l2a_1p2>;
905
906			pciephy: lane@1c06800 {
907				reg = <0x01c06200 0x128>, <0x01c06400 0x1fc>, <0x01c06800 0x20c>;
908				#phy-cells = <0>;
909
910				clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
911				clock-names = "pipe0";
912				clock-output-names = "pcie_0_pipe_clk_src";
913				#clock-cells = <0>;
914			};
915		};
916
917		ufshc: ufshc@1da4000 {
918			compatible = "qcom,msm8998-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
919			reg = <0x01da4000 0x2500>;
920			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
921			phys = <&ufsphy_lanes>;
922			phy-names = "ufsphy";
923			lanes-per-direction = <2>;
924			power-domains = <&gcc UFS_GDSC>;
925			#reset-cells = <1>;
926
927			clock-names =
928				"core_clk",
929				"bus_aggr_clk",
930				"iface_clk",
931				"core_clk_unipro",
932				"ref_clk",
933				"tx_lane0_sync_clk",
934				"rx_lane0_sync_clk",
935				"rx_lane1_sync_clk";
936			clocks =
937				<&gcc GCC_UFS_AXI_CLK>,
938				<&gcc GCC_AGGRE1_UFS_AXI_CLK>,
939				<&gcc GCC_UFS_AHB_CLK>,
940				<&gcc GCC_UFS_UNIPRO_CORE_CLK>,
941				<&rpmcc RPM_SMD_LN_BB_CLK1>,
942				<&gcc GCC_UFS_TX_SYMBOL_0_CLK>,
943				<&gcc GCC_UFS_RX_SYMBOL_0_CLK>,
944				<&gcc GCC_UFS_RX_SYMBOL_1_CLK>;
945			freq-table-hz =
946				<50000000 200000000>,
947				<0 0>,
948				<0 0>,
949				<37500000 150000000>,
950				<0 0>,
951				<0 0>,
952				<0 0>,
953				<0 0>;
954
955			resets = <&gcc GCC_UFS_BCR>;
956			reset-names = "rst";
957		};
958
959		ufsphy: phy@1da7000 {
960			compatible = "qcom,msm8998-qmp-ufs-phy";
961			reg = <0x01da7000 0x18c>;
962			#address-cells = <1>;
963			#size-cells = <1>;
964			ranges;
965
966			clock-names =
967				"ref",
968				"ref_aux";
969			clocks =
970				<&gcc GCC_UFS_CLKREF_CLK>,
971				<&gcc GCC_UFS_PHY_AUX_CLK>;
972
973			reset-names = "ufsphy";
974			resets = <&ufshc 0>;
975
976			ufsphy_lanes: lanes@1da7400 {
977				reg = <0x01da7400 0x128>,
978				      <0x01da7600 0x1fc>,
979				      <0x01da7c00 0x1dc>,
980				      <0x01da7800 0x128>,
981				      <0x01da7a00 0x1fc>;
982				#phy-cells = <0>;
983			};
984		};
985
986		tcsr_mutex_regs: syscon@1f40000 {
987			compatible = "syscon";
988			reg = <0x01f40000 0x20000>;
989		};
990
991		tlmm: pinctrl@3400000 {
992			compatible = "qcom,msm8998-pinctrl";
993			reg = <0x03400000 0xc00000>;
994			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
995			gpio-controller;
996			#gpio-cells = <0x2>;
997			interrupt-controller;
998			#interrupt-cells = <0x2>;
999		};
1000
1001		stm@6002000 {
1002			compatible = "arm,coresight-stm", "arm,primecell";
1003			reg = <0x06002000 0x1000>,
1004			      <0x16280000 0x180000>;
1005			reg-names = "stm-base", "stm-data-base";
1006
1007			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1008			clock-names = "apb_pclk", "atclk";
1009
1010			out-ports {
1011				port {
1012					stm_out: endpoint {
1013						remote-endpoint = <&funnel0_in7>;
1014					};
1015				};
1016			};
1017		};
1018
1019		funnel@6041000 {
1020			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1021			reg = <0x06041000 0x1000>;
1022
1023			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1024			clock-names = "apb_pclk", "atclk";
1025
1026			out-ports {
1027				port {
1028					funnel0_out: endpoint {
1029						remote-endpoint =
1030						  <&merge_funnel_in0>;
1031					};
1032				};
1033			};
1034
1035			in-ports {
1036				#address-cells = <1>;
1037				#size-cells = <0>;
1038
1039				port@7 {
1040					reg = <7>;
1041					funnel0_in7: endpoint {
1042						remote-endpoint = <&stm_out>;
1043					};
1044				};
1045			};
1046		};
1047
1048		funnel@6042000 {
1049			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1050			reg = <0x06042000 0x1000>;
1051
1052			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1053			clock-names = "apb_pclk", "atclk";
1054
1055			out-ports {
1056				port {
1057					funnel1_out: endpoint {
1058						remote-endpoint =
1059						  <&merge_funnel_in1>;
1060					};
1061				};
1062			};
1063
1064			in-ports {
1065				#address-cells = <1>;
1066				#size-cells = <0>;
1067
1068				port@6 {
1069					reg = <6>;
1070					funnel1_in6: endpoint {
1071						remote-endpoint =
1072						  <&apss_merge_funnel_out>;
1073					};
1074				};
1075			};
1076		};
1077
1078		funnel@6045000 {
1079			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1080			reg = <0x06045000 0x1000>;
1081
1082			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1083			clock-names = "apb_pclk", "atclk";
1084
1085			out-ports {
1086				port {
1087					merge_funnel_out: endpoint {
1088						remote-endpoint =
1089						  <&etf_in>;
1090					};
1091				};
1092			};
1093
1094			in-ports {
1095				#address-cells = <1>;
1096				#size-cells = <0>;
1097
1098				port@0 {
1099					reg = <0>;
1100					merge_funnel_in0: endpoint {
1101						remote-endpoint =
1102						  <&funnel0_out>;
1103					};
1104				};
1105
1106				port@1 {
1107					reg = <1>;
1108					merge_funnel_in1: endpoint {
1109						remote-endpoint =
1110						  <&funnel1_out>;
1111					};
1112				};
1113			};
1114		};
1115
1116		replicator@6046000 {
1117			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
1118			reg = <0x06046000 0x1000>;
1119
1120			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1121			clock-names = "apb_pclk", "atclk";
1122
1123			out-ports {
1124				port {
1125					replicator_out: endpoint {
1126						remote-endpoint = <&etr_in>;
1127					};
1128				};
1129			};
1130
1131			in-ports {
1132				port {
1133					replicator_in: endpoint {
1134						remote-endpoint = <&etf_out>;
1135					};
1136				};
1137			};
1138		};
1139
1140		etf@6047000 {
1141			compatible = "arm,coresight-tmc", "arm,primecell";
1142			reg = <0x06047000 0x1000>;
1143
1144			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1145			clock-names = "apb_pclk", "atclk";
1146
1147			out-ports {
1148				port {
1149					etf_out: endpoint {
1150						remote-endpoint =
1151						  <&replicator_in>;
1152					};
1153				};
1154			};
1155
1156			in-ports {
1157				port {
1158					etf_in: endpoint {
1159						remote-endpoint =
1160						  <&merge_funnel_out>;
1161					};
1162				};
1163			};
1164		};
1165
1166		etr@6048000 {
1167			compatible = "arm,coresight-tmc", "arm,primecell";
1168			reg = <0x06048000 0x1000>;
1169
1170			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1171			clock-names = "apb_pclk", "atclk";
1172			arm,scatter-gather;
1173
1174			in-ports {
1175				port {
1176					etr_in: endpoint {
1177						remote-endpoint =
1178						  <&replicator_out>;
1179					};
1180				};
1181			};
1182		};
1183
1184		etm@7840000 {
1185			compatible = "arm,coresight-etm4x", "arm,primecell";
1186			reg = <0x07840000 0x1000>;
1187
1188			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1189			clock-names = "apb_pclk", "atclk";
1190
1191			cpu = <&CPU0>;
1192
1193			out-ports {
1194				port {
1195					etm0_out: endpoint {
1196						remote-endpoint =
1197						  <&apss_funnel_in0>;
1198					};
1199				};
1200			};
1201		};
1202
1203		etm@7940000 {
1204			compatible = "arm,coresight-etm4x", "arm,primecell";
1205			reg = <0x07940000 0x1000>;
1206
1207			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1208			clock-names = "apb_pclk", "atclk";
1209
1210			cpu = <&CPU1>;
1211
1212			out-ports {
1213				port {
1214					etm1_out: endpoint {
1215						remote-endpoint =
1216						  <&apss_funnel_in1>;
1217					};
1218				};
1219			};
1220		};
1221
1222		etm@7a40000 {
1223			compatible = "arm,coresight-etm4x", "arm,primecell";
1224			reg = <0x07a40000 0x1000>;
1225
1226			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1227			clock-names = "apb_pclk", "atclk";
1228
1229			cpu = <&CPU2>;
1230
1231			out-ports {
1232				port {
1233					etm2_out: endpoint {
1234						remote-endpoint =
1235						  <&apss_funnel_in2>;
1236					};
1237				};
1238			};
1239		};
1240
1241		etm@7b40000 {
1242			compatible = "arm,coresight-etm4x", "arm,primecell";
1243			reg = <0x07b40000 0x1000>;
1244
1245			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1246			clock-names = "apb_pclk", "atclk";
1247
1248			cpu = <&CPU3>;
1249
1250			out-ports {
1251				port {
1252					etm3_out: endpoint {
1253						remote-endpoint =
1254						  <&apss_funnel_in3>;
1255					};
1256				};
1257			};
1258		};
1259
1260		funnel@7b60000 { /* APSS Funnel */
1261			compatible = "arm,coresight-etm4x", "arm,primecell";
1262			reg = <0x07b60000 0x1000>;
1263
1264			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1265			clock-names = "apb_pclk", "atclk";
1266
1267			out-ports {
1268				port {
1269					apss_funnel_out: endpoint {
1270						remote-endpoint =
1271						  <&apss_merge_funnel_in>;
1272					};
1273				};
1274			};
1275
1276			in-ports {
1277				#address-cells = <1>;
1278				#size-cells = <0>;
1279
1280				port@0 {
1281					reg = <0>;
1282					apss_funnel_in0: endpoint {
1283						remote-endpoint =
1284						  <&etm0_out>;
1285					};
1286				};
1287
1288				port@1 {
1289					reg = <1>;
1290					apss_funnel_in1: endpoint {
1291						remote-endpoint =
1292						  <&etm1_out>;
1293					};
1294				};
1295
1296				port@2 {
1297					reg = <2>;
1298					apss_funnel_in2: endpoint {
1299						remote-endpoint =
1300						  <&etm2_out>;
1301					};
1302				};
1303
1304				port@3 {
1305					reg = <3>;
1306					apss_funnel_in3: endpoint {
1307						remote-endpoint =
1308						  <&etm3_out>;
1309					};
1310				};
1311
1312				port@4 {
1313					reg = <4>;
1314					apss_funnel_in4: endpoint {
1315						remote-endpoint =
1316						  <&etm4_out>;
1317					};
1318				};
1319
1320				port@5 {
1321					reg = <5>;
1322					apss_funnel_in5: endpoint {
1323						remote-endpoint =
1324						  <&etm5_out>;
1325					};
1326				};
1327
1328				port@6 {
1329					reg = <6>;
1330					apss_funnel_in6: endpoint {
1331						remote-endpoint =
1332						  <&etm6_out>;
1333					};
1334				};
1335
1336				port@7 {
1337					reg = <7>;
1338					apss_funnel_in7: endpoint {
1339						remote-endpoint =
1340						  <&etm7_out>;
1341					};
1342				};
1343			};
1344		};
1345
1346		funnel@7b70000 {
1347			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1348			reg = <0x07b70000 0x1000>;
1349
1350			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1351			clock-names = "apb_pclk", "atclk";
1352
1353			out-ports {
1354				port {
1355					apss_merge_funnel_out: endpoint {
1356						remote-endpoint =
1357						  <&funnel1_in6>;
1358					};
1359				};
1360			};
1361
1362			in-ports {
1363				port {
1364					apss_merge_funnel_in: endpoint {
1365						remote-endpoint =
1366						  <&apss_funnel_out>;
1367					};
1368				};
1369			};
1370		};
1371
1372		etm@7c40000 {
1373			compatible = "arm,coresight-etm4x", "arm,primecell";
1374			reg = <0x07c40000 0x1000>;
1375
1376			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1377			clock-names = "apb_pclk", "atclk";
1378
1379			cpu = <&CPU4>;
1380
1381			port{
1382				etm4_out: endpoint {
1383					remote-endpoint = <&apss_funnel_in4>;
1384				};
1385			};
1386		};
1387
1388		etm@7d40000 {
1389			compatible = "arm,coresight-etm4x", "arm,primecell";
1390			reg = <0x07d40000 0x1000>;
1391
1392			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1393			clock-names = "apb_pclk", "atclk";
1394
1395			cpu = <&CPU5>;
1396
1397			port{
1398				etm5_out: endpoint {
1399					remote-endpoint = <&apss_funnel_in5>;
1400				};
1401			};
1402		};
1403
1404		etm@7e40000 {
1405			compatible = "arm,coresight-etm4x", "arm,primecell";
1406			reg = <0x07e40000 0x1000>;
1407
1408			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1409			clock-names = "apb_pclk", "atclk";
1410
1411			cpu = <&CPU6>;
1412
1413			port{
1414				etm6_out: endpoint {
1415					remote-endpoint = <&apss_funnel_in6>;
1416				};
1417			};
1418		};
1419
1420		etm@7f40000 {
1421			compatible = "arm,coresight-etm4x", "arm,primecell";
1422			reg = <0x07f40000 0x1000>;
1423
1424			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1425			clock-names = "apb_pclk", "atclk";
1426
1427			cpu = <&CPU7>;
1428
1429			port{
1430				etm7_out: endpoint {
1431					remote-endpoint = <&apss_funnel_in7>;
1432				};
1433			};
1434		};
1435
1436		spmi_bus: spmi@800f000 {
1437			compatible = "qcom,spmi-pmic-arb";
1438			reg =	<0x0800f000 0x1000>,
1439				<0x08400000 0x1000000>,
1440				<0x09400000 0x1000000>,
1441				<0x0a400000 0x220000>,
1442				<0x0800a000 0x3000>;
1443			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1444			interrupt-names = "periph_irq";
1445			interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
1446			qcom,ee = <0>;
1447			qcom,channel = <0>;
1448			#address-cells = <2>;
1449			#size-cells = <0>;
1450			interrupt-controller;
1451			#interrupt-cells = <4>;
1452			cell-index = <0>;
1453		};
1454
1455		usb3: usb@a8f8800 {
1456			compatible = "qcom,msm8998-dwc3", "qcom,dwc3";
1457			reg = <0x0a8f8800 0x400>;
1458			status = "disabled";
1459			#address-cells = <1>;
1460			#size-cells = <1>;
1461			ranges;
1462
1463			clocks = <&gcc GCC_CFG_NOC_USB3_AXI_CLK>,
1464				 <&gcc GCC_USB30_MASTER_CLK>,
1465				 <&gcc GCC_AGGRE1_USB3_AXI_CLK>,
1466				 <&gcc GCC_USB30_MOCK_UTMI_CLK>,
1467				 <&gcc GCC_USB30_SLEEP_CLK>;
1468			clock-names = "cfg_noc", "core", "iface", "mock_utmi",
1469				      "sleep";
1470
1471			assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
1472					  <&gcc GCC_USB30_MASTER_CLK>;
1473			assigned-clock-rates = <19200000>, <120000000>;
1474
1475			interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
1476				     <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
1477			interrupt-names = "hs_phy_irq", "ss_phy_irq";
1478
1479			power-domains = <&gcc USB_30_GDSC>;
1480
1481			resets = <&gcc GCC_USB_30_BCR>;
1482
1483			usb3_dwc3: dwc3@a800000 {
1484				compatible = "snps,dwc3";
1485				reg = <0x0a800000 0xcd00>;
1486				interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
1487				snps,dis_u2_susphy_quirk;
1488				snps,dis_enblslpm_quirk;
1489				phys = <&qusb2phy>, <&usb1_ssphy>;
1490				phy-names = "usb2-phy", "usb3-phy";
1491				snps,has-lpm-erratum;
1492				snps,hird-threshold = /bits/ 8 <0x10>;
1493			};
1494		};
1495
1496		usb3phy: phy@c010000 {
1497			compatible = "qcom,msm8998-qmp-usb3-phy";
1498			reg = <0x0c010000 0x18c>;
1499			status = "disabled";
1500			#clock-cells = <1>;
1501			#address-cells = <1>;
1502			#size-cells = <1>;
1503			ranges;
1504
1505			clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
1506				 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1507				 <&gcc GCC_USB3_CLKREF_CLK>;
1508			clock-names = "aux", "cfg_ahb", "ref";
1509
1510			resets = <&gcc GCC_USB3_PHY_BCR>,
1511				 <&gcc GCC_USB3PHY_PHY_BCR>;
1512			reset-names = "phy", "common";
1513
1514			usb1_ssphy: lane@c010200 {
1515				reg = <0xc010200 0x128>,
1516				      <0xc010400 0x200>,
1517				      <0xc010c00 0x20c>,
1518				      <0xc010600 0x128>,
1519				      <0xc010800 0x200>;
1520				#phy-cells = <0>;
1521				clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
1522				clock-names = "pipe0";
1523				clock-output-names = "usb3_phy_pipe_clk_src";
1524			};
1525		};
1526
1527		qusb2phy: phy@c012000 {
1528			compatible = "qcom,msm8998-qusb2-phy";
1529			reg = <0x0c012000 0x2a8>;
1530			status = "disabled";
1531			#phy-cells = <0>;
1532
1533			clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1534				 <&gcc GCC_RX1_USB2_CLKREF_CLK>;
1535			clock-names = "cfg_ahb", "ref";
1536
1537			resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
1538
1539			nvmem-cells = <&qusb2_hstx_trim>;
1540		};
1541
1542		sdhc2: sdhci@c0a4900 {
1543			compatible = "qcom,sdhci-msm-v4";
1544			reg = <0x0c0a4900 0x314>, <0x0c0a4000 0x800>;
1545			reg-names = "hc_mem", "core_mem";
1546
1547			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1548				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1549			interrupt-names = "hc_irq", "pwr_irq";
1550
1551			clock-names = "iface", "core", "xo";
1552			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1553				 <&gcc GCC_SDCC2_APPS_CLK>,
1554				 <&xo>;
1555			bus-width = <4>;
1556			status = "disabled";
1557		};
1558
1559		blsp1_i2c1: i2c@c175000 {
1560			compatible = "qcom,i2c-qup-v2.2.1";
1561			reg = <0x0c175000 0x600>;
1562			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1563
1564			clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
1565				 <&gcc GCC_BLSP1_AHB_CLK>;
1566			clock-names = "core", "iface";
1567			clock-frequency = <400000>;
1568
1569			status = "disabled";
1570			#address-cells = <1>;
1571			#size-cells = <0>;
1572		};
1573
1574		blsp1_i2c2: i2c@c176000 {
1575			compatible = "qcom,i2c-qup-v2.2.1";
1576			reg = <0x0c176000 0x600>;
1577			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1578
1579			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1580				 <&gcc GCC_BLSP1_AHB_CLK>;
1581			clock-names = "core", "iface";
1582			clock-frequency = <400000>;
1583
1584			status = "disabled";
1585			#address-cells = <1>;
1586			#size-cells = <0>;
1587		};
1588
1589		blsp1_i2c3: i2c@c177000 {
1590			compatible = "qcom,i2c-qup-v2.2.1";
1591			reg = <0x0c177000 0x600>;
1592			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1593
1594			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1595				 <&gcc GCC_BLSP1_AHB_CLK>;
1596			clock-names = "core", "iface";
1597			clock-frequency = <400000>;
1598
1599			status = "disabled";
1600			#address-cells = <1>;
1601			#size-cells = <0>;
1602		};
1603
1604		blsp1_i2c4: i2c@c178000 {
1605			compatible = "qcom,i2c-qup-v2.2.1";
1606			reg = <0x0c178000 0x600>;
1607			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1608
1609			clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1610				 <&gcc GCC_BLSP1_AHB_CLK>;
1611			clock-names = "core", "iface";
1612			clock-frequency = <400000>;
1613
1614			status = "disabled";
1615			#address-cells = <1>;
1616			#size-cells = <0>;
1617		};
1618
1619		blsp1_i2c5: i2c@c179000 {
1620			compatible = "qcom,i2c-qup-v2.2.1";
1621			reg = <0x0c179000 0x600>;
1622			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1623
1624			clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
1625				 <&gcc GCC_BLSP1_AHB_CLK>;
1626			clock-names = "core", "iface";
1627			clock-frequency = <400000>;
1628
1629			status = "disabled";
1630			#address-cells = <1>;
1631			#size-cells = <0>;
1632		};
1633
1634		blsp1_i2c6: i2c@c17a000 {
1635			compatible = "qcom,i2c-qup-v2.2.1";
1636			reg = <0x0c17a000 0x600>;
1637			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1638
1639			clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
1640				 <&gcc GCC_BLSP1_AHB_CLK>;
1641			clock-names = "core", "iface";
1642			clock-frequency = <400000>;
1643
1644			status = "disabled";
1645			#address-cells = <1>;
1646			#size-cells = <0>;
1647		};
1648
1649		blsp2_uart1: serial@c1b0000 {
1650			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1651			reg = <0x0c1b0000 0x1000>;
1652			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
1653			clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
1654				 <&gcc GCC_BLSP2_AHB_CLK>;
1655			clock-names = "core", "iface";
1656			status = "disabled";
1657		};
1658
1659		blsp2_i2c0: i2c@c1b5000 {
1660			compatible = "qcom,i2c-qup-v2.2.1";
1661			reg = <0x0c1b5000 0x600>;
1662			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1663
1664			clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
1665				 <&gcc GCC_BLSP2_AHB_CLK>;
1666			clock-names = "core", "iface";
1667			clock-frequency = <400000>;
1668
1669			status = "disabled";
1670			#address-cells = <1>;
1671			#size-cells = <0>;
1672		};
1673
1674		blsp2_i2c1: i2c@c1b6000 {
1675			compatible = "qcom,i2c-qup-v2.2.1";
1676			reg = <0x0c1b6000 0x600>;
1677			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1678
1679			clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
1680				 <&gcc GCC_BLSP2_AHB_CLK>;
1681			clock-names = "core", "iface";
1682			clock-frequency = <400000>;
1683
1684			status = "disabled";
1685			#address-cells = <1>;
1686			#size-cells = <0>;
1687		};
1688
1689		blsp2_i2c2: i2c@c1b7000 {
1690			compatible = "qcom,i2c-qup-v2.2.1";
1691			reg = <0x0c1b7000 0x600>;
1692			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1693
1694			clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
1695				 <&gcc GCC_BLSP2_AHB_CLK>;
1696			clock-names = "core", "iface";
1697			clock-frequency = <400000>;
1698
1699			status = "disabled";
1700			#address-cells = <1>;
1701			#size-cells = <0>;
1702		};
1703
1704		blsp2_i2c3: i2c@c1b8000 {
1705			compatible = "qcom,i2c-qup-v2.2.1";
1706			reg = <0x0c1b8000 0x600>;
1707			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
1708
1709			clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
1710				 <&gcc GCC_BLSP2_AHB_CLK>;
1711			clock-names = "core", "iface";
1712			clock-frequency = <400000>;
1713
1714			status = "disabled";
1715			#address-cells = <1>;
1716			#size-cells = <0>;
1717		};
1718
1719		blsp2_i2c4: i2c@c1b9000 {
1720			compatible = "qcom,i2c-qup-v2.2.1";
1721			reg = <0x0c1b9000 0x600>;
1722			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
1723
1724			clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
1725				 <&gcc GCC_BLSP2_AHB_CLK>;
1726			clock-names = "core", "iface";
1727			clock-frequency = <400000>;
1728
1729			status = "disabled";
1730			#address-cells = <1>;
1731			#size-cells = <0>;
1732		};
1733
1734		blsp2_i2c5: i2c@c1ba000 {
1735			compatible = "qcom,i2c-qup-v2.2.1";
1736			reg = <0x0c1ba000 0x600>;
1737			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1738
1739			clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>,
1740				 <&gcc GCC_BLSP2_AHB_CLK>;
1741			clock-names = "core", "iface";
1742			clock-frequency = <400000>;
1743
1744			status = "disabled";
1745			#address-cells = <1>;
1746			#size-cells = <0>;
1747		};
1748
1749		apcs_glb: mailbox@17911000 {
1750			compatible = "qcom,msm8998-apcs-hmss-global";
1751			reg = <0x17911000 0x1000>;
1752
1753			#mbox-cells = <1>;
1754		};
1755
1756		timer@17920000 {
1757			#address-cells = <1>;
1758			#size-cells = <1>;
1759			ranges;
1760			compatible = "arm,armv7-timer-mem";
1761			reg = <0x17920000 0x1000>;
1762
1763			frame@17921000 {
1764				frame-number = <0>;
1765				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1766					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1767				reg = <0x17921000 0x1000>,
1768				      <0x17922000 0x1000>;
1769			};
1770
1771			frame@17923000 {
1772				frame-number = <1>;
1773				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1774				reg = <0x17923000 0x1000>;
1775				status = "disabled";
1776			};
1777
1778			frame@17924000 {
1779				frame-number = <2>;
1780				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1781				reg = <0x17924000 0x1000>;
1782				status = "disabled";
1783			};
1784
1785			frame@17925000 {
1786				frame-number = <3>;
1787				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1788				reg = <0x17925000 0x1000>;
1789				status = "disabled";
1790			};
1791
1792			frame@17926000 {
1793				frame-number = <4>;
1794				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1795				reg = <0x17926000 0x1000>;
1796				status = "disabled";
1797			};
1798
1799			frame@17927000 {
1800				frame-number = <5>;
1801				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1802				reg = <0x17927000 0x1000>;
1803				status = "disabled";
1804			};
1805
1806			frame@17928000 {
1807				frame-number = <6>;
1808				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1809				reg = <0x17928000 0x1000>;
1810				status = "disabled";
1811			};
1812		};
1813
1814		intc: interrupt-controller@17a00000 {
1815			compatible = "arm,gic-v3";
1816			reg = <0x17a00000 0x10000>,       /* GICD */
1817			      <0x17b00000 0x100000>;      /* GICR * 8 */
1818			#interrupt-cells = <3>;
1819			#address-cells = <1>;
1820			#size-cells = <1>;
1821			ranges;
1822			interrupt-controller;
1823			#redistributor-regions = <1>;
1824			redistributor-stride = <0x0 0x20000>;
1825			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1826		};
1827	};
1828};
1829
1830#include "msm8998-pins.dtsi"
1831