xref: /linux/arch/arm64/boot/dts/qcom/msm8998.dtsi (revision a3a02a52bcfcbcc4a637d4b68bf1bc391c9fad02)
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,gpucc-msm8998.h>
7#include <dt-bindings/clock/qcom,mmcc-msm8998.h>
8#include <dt-bindings/clock/qcom,rpmcc.h>
9#include <dt-bindings/firmware/qcom,scm.h>
10#include <dt-bindings/power/qcom-rpmpd.h>
11#include <dt-bindings/gpio/gpio.h>
12
13/ {
14	interrupt-parent = <&intc>;
15
16	qcom,msm-id = <292 0x0>;
17
18	#address-cells = <2>;
19	#size-cells = <2>;
20
21	chosen { };
22
23	memory@80000000 {
24		device_type = "memory";
25		/* We expect the bootloader to fill in the reg */
26		reg = <0x0 0x80000000 0x0 0x0>;
27	};
28
29	reserved-memory {
30		#address-cells = <2>;
31		#size-cells = <2>;
32		ranges;
33
34		hyp_mem: memory@85800000 {
35			reg = <0x0 0x85800000 0x0 0x600000>;
36			no-map;
37		};
38
39		xbl_mem: memory@85e00000 {
40			reg = <0x0 0x85e00000 0x0 0x100000>;
41			no-map;
42		};
43
44		smem_mem: smem-mem@86000000 {
45			reg = <0x0 0x86000000 0x0 0x200000>;
46			no-map;
47		};
48
49		tz_mem: memory@86200000 {
50			reg = <0x0 0x86200000 0x0 0x2d00000>;
51			no-map;
52		};
53
54		rmtfs_mem: memory@88f00000 {
55			compatible = "qcom,rmtfs-mem";
56			reg = <0x0 0x88f00000 0x0 0x200000>;
57			no-map;
58
59			qcom,client-id = <1>;
60			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
61		};
62
63		spss_mem: memory@8ab00000 {
64			reg = <0x0 0x8ab00000 0x0 0x700000>;
65			no-map;
66		};
67
68		adsp_mem: memory@8b200000 {
69			reg = <0x0 0x8b200000 0x0 0x1a00000>;
70			no-map;
71		};
72
73		mpss_mem: memory@8cc00000 {
74			reg = <0x0 0x8cc00000 0x0 0x7000000>;
75			no-map;
76		};
77
78		venus_mem: memory@93c00000 {
79			reg = <0x0 0x93c00000 0x0 0x500000>;
80			no-map;
81		};
82
83		mba_mem: memory@94100000 {
84			reg = <0x0 0x94100000 0x0 0x200000>;
85			no-map;
86		};
87
88		slpi_mem: memory@94300000 {
89			reg = <0x0 0x94300000 0x0 0xf00000>;
90			no-map;
91		};
92
93		ipa_fw_mem: memory@95200000 {
94			reg = <0x0 0x95200000 0x0 0x10000>;
95			no-map;
96		};
97
98		ipa_gsi_mem: memory@95210000 {
99			reg = <0x0 0x95210000 0x0 0x5000>;
100			no-map;
101		};
102
103		gpu_mem: memory@95600000 {
104			reg = <0x0 0x95600000 0x0 0x100000>;
105			no-map;
106		};
107
108		wlan_msa_mem: memory@95700000 {
109			reg = <0x0 0x95700000 0x0 0x100000>;
110			no-map;
111		};
112
113		mdata_mem: mpss-metadata {
114			alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
115			size = <0x0 0x4000>;
116			no-map;
117		};
118	};
119
120	clocks {
121		xo: xo-board {
122			compatible = "fixed-clock";
123			#clock-cells = <0>;
124			clock-frequency = <19200000>;
125			clock-output-names = "xo_board";
126		};
127
128		sleep_clk: sleep-clk {
129			compatible = "fixed-clock";
130			#clock-cells = <0>;
131			clock-frequency = <32764>;
132		};
133	};
134
135	cpus {
136		#address-cells = <2>;
137		#size-cells = <0>;
138
139		CPU0: cpu@0 {
140			device_type = "cpu";
141			compatible = "qcom,kryo280";
142			reg = <0x0 0x0>;
143			enable-method = "psci";
144			capacity-dmips-mhz = <1024>;
145			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
146			next-level-cache = <&L2_0>;
147			L2_0: l2-cache {
148				compatible = "cache";
149				cache-level = <2>;
150				cache-unified;
151			};
152		};
153
154		CPU1: cpu@1 {
155			device_type = "cpu";
156			compatible = "qcom,kryo280";
157			reg = <0x0 0x1>;
158			enable-method = "psci";
159			capacity-dmips-mhz = <1024>;
160			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
161			next-level-cache = <&L2_0>;
162		};
163
164		CPU2: cpu@2 {
165			device_type = "cpu";
166			compatible = "qcom,kryo280";
167			reg = <0x0 0x2>;
168			enable-method = "psci";
169			capacity-dmips-mhz = <1024>;
170			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
171			next-level-cache = <&L2_0>;
172		};
173
174		CPU3: cpu@3 {
175			device_type = "cpu";
176			compatible = "qcom,kryo280";
177			reg = <0x0 0x3>;
178			enable-method = "psci";
179			capacity-dmips-mhz = <1024>;
180			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
181			next-level-cache = <&L2_0>;
182		};
183
184		CPU4: cpu@100 {
185			device_type = "cpu";
186			compatible = "qcom,kryo280";
187			reg = <0x0 0x100>;
188			enable-method = "psci";
189			capacity-dmips-mhz = <1536>;
190			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
191			next-level-cache = <&L2_1>;
192			L2_1: l2-cache {
193				compatible = "cache";
194				cache-level = <2>;
195				cache-unified;
196			};
197		};
198
199		CPU5: cpu@101 {
200			device_type = "cpu";
201			compatible = "qcom,kryo280";
202			reg = <0x0 0x101>;
203			enable-method = "psci";
204			capacity-dmips-mhz = <1536>;
205			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
206			next-level-cache = <&L2_1>;
207		};
208
209		CPU6: cpu@102 {
210			device_type = "cpu";
211			compatible = "qcom,kryo280";
212			reg = <0x0 0x102>;
213			enable-method = "psci";
214			capacity-dmips-mhz = <1536>;
215			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
216			next-level-cache = <&L2_1>;
217		};
218
219		CPU7: cpu@103 {
220			device_type = "cpu";
221			compatible = "qcom,kryo280";
222			reg = <0x0 0x103>;
223			enable-method = "psci";
224			capacity-dmips-mhz = <1536>;
225			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
226			next-level-cache = <&L2_1>;
227		};
228
229		cpu-map {
230			cluster0 {
231				core0 {
232					cpu = <&CPU0>;
233				};
234
235				core1 {
236					cpu = <&CPU1>;
237				};
238
239				core2 {
240					cpu = <&CPU2>;
241				};
242
243				core3 {
244					cpu = <&CPU3>;
245				};
246			};
247
248			cluster1 {
249				core0 {
250					cpu = <&CPU4>;
251				};
252
253				core1 {
254					cpu = <&CPU5>;
255				};
256
257				core2 {
258					cpu = <&CPU6>;
259				};
260
261				core3 {
262					cpu = <&CPU7>;
263				};
264			};
265		};
266
267		idle-states {
268			entry-method = "psci";
269
270			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
271				compatible = "arm,idle-state";
272				idle-state-name = "little-retention";
273				/* CPU Retention (C2D), L2 Active */
274				arm,psci-suspend-param = <0x00000002>;
275				entry-latency-us = <81>;
276				exit-latency-us = <86>;
277				min-residency-us = <504>;
278			};
279
280			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
281				compatible = "arm,idle-state";
282				idle-state-name = "little-power-collapse";
283				/* CPU + L2 Power Collapse (C3, D4) */
284				arm,psci-suspend-param = <0x40000003>;
285				entry-latency-us = <814>;
286				exit-latency-us = <4562>;
287				min-residency-us = <9183>;
288				local-timer-stop;
289			};
290
291			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
292				compatible = "arm,idle-state";
293				idle-state-name = "big-retention";
294				/* CPU Retention (C2D), L2 Active */
295				arm,psci-suspend-param = <0x00000002>;
296				entry-latency-us = <79>;
297				exit-latency-us = <82>;
298				min-residency-us = <1302>;
299			};
300
301			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
302				compatible = "arm,idle-state";
303				idle-state-name = "big-power-collapse";
304				/* CPU + L2 Power Collapse (C3, D4) */
305				arm,psci-suspend-param = <0x40000003>;
306				entry-latency-us = <724>;
307				exit-latency-us = <2027>;
308				min-residency-us = <9419>;
309				local-timer-stop;
310			};
311		};
312	};
313
314	firmware {
315		scm {
316			compatible = "qcom,scm-msm8998", "qcom,scm";
317		};
318	};
319
320	dsi_opp_table: opp-table-dsi {
321		compatible = "operating-points-v2";
322
323		opp-131250000 {
324			opp-hz = /bits/ 64 <131250000>;
325			required-opps = <&rpmpd_opp_low_svs>;
326		};
327
328		opp-210000000 {
329			opp-hz = /bits/ 64 <210000000>;
330			required-opps = <&rpmpd_opp_svs>;
331		};
332
333		opp-312500000 {
334			opp-hz = /bits/ 64 <312500000>;
335			required-opps = <&rpmpd_opp_nom>;
336		};
337	};
338
339	psci {
340		compatible = "arm,psci-1.0";
341		method = "smc";
342	};
343
344	rpm: remoteproc {
345		compatible = "qcom,msm8998-rpm-proc", "qcom,rpm-proc";
346
347		glink-edge {
348			compatible = "qcom,glink-rpm";
349
350			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
351			qcom,rpm-msg-ram = <&rpm_msg_ram>;
352			mboxes = <&apcs_glb 0>;
353
354			rpm_requests: rpm-requests {
355				compatible = "qcom,rpm-msm8998";
356				qcom,glink-channels = "rpm_requests";
357
358				rpmcc: clock-controller {
359					compatible = "qcom,rpmcc-msm8998", "qcom,rpmcc";
360					clocks = <&xo>;
361					clock-names = "xo";
362					#clock-cells = <1>;
363				};
364
365				rpmpd: power-controller {
366					compatible = "qcom,msm8998-rpmpd";
367					#power-domain-cells = <1>;
368					operating-points-v2 = <&rpmpd_opp_table>;
369
370					rpmpd_opp_table: opp-table {
371						compatible = "operating-points-v2";
372
373						rpmpd_opp_ret: opp1 {
374							opp-level = <RPM_SMD_LEVEL_RETENTION>;
375						};
376
377						rpmpd_opp_ret_plus: opp2 {
378							opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
379						};
380
381						rpmpd_opp_min_svs: opp3 {
382							opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
383						};
384
385						rpmpd_opp_low_svs: opp4 {
386							opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
387						};
388
389						rpmpd_opp_svs: opp5 {
390							opp-level = <RPM_SMD_LEVEL_SVS>;
391						};
392
393						rpmpd_opp_svs_plus: opp6 {
394							opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
395						};
396
397						rpmpd_opp_nom: opp7 {
398							opp-level = <RPM_SMD_LEVEL_NOM>;
399						};
400
401						rpmpd_opp_nom_plus: opp8 {
402							opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
403						};
404
405						rpmpd_opp_turbo: opp9 {
406							opp-level = <RPM_SMD_LEVEL_TURBO>;
407						};
408
409						rpmpd_opp_turbo_plus: opp10 {
410							opp-level = <RPM_SMD_LEVEL_BINNING>;
411						};
412					};
413				};
414			};
415		};
416	};
417
418	smem {
419		compatible = "qcom,smem";
420		memory-region = <&smem_mem>;
421		hwlocks = <&tcsr_mutex 3>;
422	};
423
424	smp2p-lpass {
425		compatible = "qcom,smp2p";
426		qcom,smem = <443>, <429>;
427
428		interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
429
430		mboxes = <&apcs_glb 10>;
431
432		qcom,local-pid = <0>;
433		qcom,remote-pid = <2>;
434
435		adsp_smp2p_out: master-kernel {
436			qcom,entry-name = "master-kernel";
437			#qcom,smem-state-cells = <1>;
438		};
439
440		adsp_smp2p_in: slave-kernel {
441			qcom,entry-name = "slave-kernel";
442
443			interrupt-controller;
444			#interrupt-cells = <2>;
445		};
446	};
447
448	smp2p-mpss {
449		compatible = "qcom,smp2p";
450		qcom,smem = <435>, <428>;
451		interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
452		mboxes = <&apcs_glb 14>;
453		qcom,local-pid = <0>;
454		qcom,remote-pid = <1>;
455
456		modem_smp2p_out: master-kernel {
457			qcom,entry-name = "master-kernel";
458			#qcom,smem-state-cells = <1>;
459		};
460
461		modem_smp2p_in: slave-kernel {
462			qcom,entry-name = "slave-kernel";
463			interrupt-controller;
464			#interrupt-cells = <2>;
465		};
466	};
467
468	smp2p-slpi {
469		compatible = "qcom,smp2p";
470		qcom,smem = <481>, <430>;
471		interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
472		mboxes = <&apcs_glb 26>;
473		qcom,local-pid = <0>;
474		qcom,remote-pid = <3>;
475
476		slpi_smp2p_out: master-kernel {
477			qcom,entry-name = "master-kernel";
478			#qcom,smem-state-cells = <1>;
479		};
480
481		slpi_smp2p_in: slave-kernel {
482			qcom,entry-name = "slave-kernel";
483			interrupt-controller;
484			#interrupt-cells = <2>;
485		};
486	};
487
488	thermal-zones {
489		cpu0-thermal {
490			polling-delay-passive = <250>;
491
492			thermal-sensors = <&tsens0 1>;
493
494			trips {
495				cpu0_alert0: trip-point0 {
496					temperature = <75000>;
497					hysteresis = <2000>;
498					type = "passive";
499				};
500
501				cpu0_crit: cpu-crit {
502					temperature = <110000>;
503					hysteresis = <2000>;
504					type = "critical";
505				};
506			};
507		};
508
509		cpu1-thermal {
510			polling-delay-passive = <250>;
511
512			thermal-sensors = <&tsens0 2>;
513
514			trips {
515				cpu1_alert0: trip-point0 {
516					temperature = <75000>;
517					hysteresis = <2000>;
518					type = "passive";
519				};
520
521				cpu1_crit: cpu-crit {
522					temperature = <110000>;
523					hysteresis = <2000>;
524					type = "critical";
525				};
526			};
527		};
528
529		cpu2-thermal {
530			polling-delay-passive = <250>;
531
532			thermal-sensors = <&tsens0 3>;
533
534			trips {
535				cpu2_alert0: trip-point0 {
536					temperature = <75000>;
537					hysteresis = <2000>;
538					type = "passive";
539				};
540
541				cpu2_crit: cpu-crit {
542					temperature = <110000>;
543					hysteresis = <2000>;
544					type = "critical";
545				};
546			};
547		};
548
549		cpu3-thermal {
550			polling-delay-passive = <250>;
551
552			thermal-sensors = <&tsens0 4>;
553
554			trips {
555				cpu3_alert0: trip-point0 {
556					temperature = <75000>;
557					hysteresis = <2000>;
558					type = "passive";
559				};
560
561				cpu3_crit: cpu-crit {
562					temperature = <110000>;
563					hysteresis = <2000>;
564					type = "critical";
565				};
566			};
567		};
568
569		cpu4-thermal {
570			polling-delay-passive = <250>;
571
572			thermal-sensors = <&tsens0 7>;
573
574			trips {
575				cpu4_alert0: trip-point0 {
576					temperature = <75000>;
577					hysteresis = <2000>;
578					type = "passive";
579				};
580
581				cpu4_crit: cpu-crit {
582					temperature = <110000>;
583					hysteresis = <2000>;
584					type = "critical";
585				};
586			};
587		};
588
589		cpu5-thermal {
590			polling-delay-passive = <250>;
591
592			thermal-sensors = <&tsens0 8>;
593
594			trips {
595				cpu5_alert0: trip-point0 {
596					temperature = <75000>;
597					hysteresis = <2000>;
598					type = "passive";
599				};
600
601				cpu5_crit: cpu-crit {
602					temperature = <110000>;
603					hysteresis = <2000>;
604					type = "critical";
605				};
606			};
607		};
608
609		cpu6-thermal {
610			polling-delay-passive = <250>;
611
612			thermal-sensors = <&tsens0 9>;
613
614			trips {
615				cpu6_alert0: trip-point0 {
616					temperature = <75000>;
617					hysteresis = <2000>;
618					type = "passive";
619				};
620
621				cpu6_crit: cpu-crit {
622					temperature = <110000>;
623					hysteresis = <2000>;
624					type = "critical";
625				};
626			};
627		};
628
629		cpu7-thermal {
630			polling-delay-passive = <250>;
631
632			thermal-sensors = <&tsens0 10>;
633
634			trips {
635				cpu7_alert0: trip-point0 {
636					temperature = <75000>;
637					hysteresis = <2000>;
638					type = "passive";
639				};
640
641				cpu7_crit: cpu-crit {
642					temperature = <110000>;
643					hysteresis = <2000>;
644					type = "critical";
645				};
646			};
647		};
648
649		gpu-bottom-thermal {
650			polling-delay-passive = <250>;
651
652			thermal-sensors = <&tsens0 12>;
653
654			trips {
655				gpu1_alert0: trip-point0 {
656					temperature = <90000>;
657					hysteresis = <2000>;
658					type = "hot";
659				};
660			};
661		};
662
663		gpu-top-thermal {
664			polling-delay-passive = <250>;
665
666			thermal-sensors = <&tsens0 13>;
667
668			trips {
669				gpu2_alert0: trip-point0 {
670					temperature = <90000>;
671					hysteresis = <2000>;
672					type = "hot";
673				};
674			};
675		};
676
677		clust0-mhm-thermal {
678			polling-delay-passive = <250>;
679
680			thermal-sensors = <&tsens0 5>;
681
682			trips {
683				cluster0_mhm_alert0: trip-point0 {
684					temperature = <90000>;
685					hysteresis = <2000>;
686					type = "hot";
687				};
688			};
689		};
690
691		clust1-mhm-thermal {
692			polling-delay-passive = <250>;
693
694			thermal-sensors = <&tsens0 6>;
695
696			trips {
697				cluster1_mhm_alert0: trip-point0 {
698					temperature = <90000>;
699					hysteresis = <2000>;
700					type = "hot";
701				};
702			};
703		};
704
705		cluster1-l2-thermal {
706			polling-delay-passive = <250>;
707
708			thermal-sensors = <&tsens0 11>;
709
710			trips {
711				cluster1_l2_alert0: trip-point0 {
712					temperature = <90000>;
713					hysteresis = <2000>;
714					type = "hot";
715				};
716			};
717		};
718
719		modem-thermal {
720			polling-delay-passive = <250>;
721
722			thermal-sensors = <&tsens1 1>;
723
724			trips {
725				modem_alert0: trip-point0 {
726					temperature = <90000>;
727					hysteresis = <2000>;
728					type = "hot";
729				};
730			};
731		};
732
733		mem-thermal {
734			polling-delay-passive = <250>;
735
736			thermal-sensors = <&tsens1 2>;
737
738			trips {
739				mem_alert0: trip-point0 {
740					temperature = <90000>;
741					hysteresis = <2000>;
742					type = "hot";
743				};
744			};
745		};
746
747		wlan-thermal {
748			polling-delay-passive = <250>;
749
750			thermal-sensors = <&tsens1 3>;
751
752			trips {
753				wlan_alert0: trip-point0 {
754					temperature = <90000>;
755					hysteresis = <2000>;
756					type = "hot";
757				};
758			};
759		};
760
761		q6-dsp-thermal {
762			polling-delay-passive = <250>;
763
764			thermal-sensors = <&tsens1 4>;
765
766			trips {
767				q6_dsp_alert0: trip-point0 {
768					temperature = <90000>;
769					hysteresis = <2000>;
770					type = "hot";
771				};
772			};
773		};
774
775		camera-thermal {
776			polling-delay-passive = <250>;
777
778			thermal-sensors = <&tsens1 5>;
779
780			trips {
781				camera_alert0: trip-point0 {
782					temperature = <90000>;
783					hysteresis = <2000>;
784					type = "hot";
785				};
786			};
787		};
788
789		multimedia-thermal {
790			polling-delay-passive = <250>;
791
792			thermal-sensors = <&tsens1 6>;
793
794			trips {
795				multimedia_alert0: trip-point0 {
796					temperature = <90000>;
797					hysteresis = <2000>;
798					type = "hot";
799				};
800			};
801		};
802	};
803
804	timer {
805		compatible = "arm,armv8-timer";
806		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
807			     <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
808			     <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
809			     <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
810	};
811
812	soc: soc@0 {
813		#address-cells = <1>;
814		#size-cells = <1>;
815		ranges = <0 0 0 0xffffffff>;
816		compatible = "simple-bus";
817
818		gcc: clock-controller@100000 {
819			compatible = "qcom,gcc-msm8998";
820			#clock-cells = <1>;
821			#reset-cells = <1>;
822			#power-domain-cells = <1>;
823			reg = <0x00100000 0xb0000>;
824
825			clock-names = "xo", "sleep_clk";
826			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
827
828			/*
829			 * The hypervisor typically configures the memory region where these clocks
830			 * reside as read-only for the HLOS. If the HLOS tried to enable or disable
831			 * these clocks on a device with such configuration (e.g. because they are
832			 * enabled but unused during boot-up), the device will most likely decide
833			 * to reboot.
834			 * In light of that, we are conservative here and we list all such clocks
835			 * as protected. The board dts (or a user-supplied dts) can override the
836			 * list of protected clocks if it differs from the norm, and it is in fact
837			 * desired for the HLOS to manage these clocks
838			 */
839			protected-clocks = <AGGRE2_SNOC_NORTH_AXI>,
840					   <SSC_XO>,
841					   <SSC_CNOC_AHBS_CLK>;
842		};
843
844		rpm_msg_ram: sram@778000 {
845			compatible = "qcom,rpm-msg-ram";
846			reg = <0x00778000 0x7000>;
847		};
848
849		qfprom: qfprom@784000 {
850			compatible = "qcom,msm8998-qfprom", "qcom,qfprom";
851			reg = <0x00784000 0x621c>;
852			#address-cells = <1>;
853			#size-cells = <1>;
854
855			qusb2_hstx_trim: hstx-trim@23a {
856				reg = <0x23a 0x1>;
857				bits = <0 4>;
858			};
859		};
860
861		tsens0: thermal@10ab000 {
862			compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
863			reg = <0x010ab000 0x1000>, /* TM */
864			      <0x010aa000 0x1000>; /* SROT */
865			#qcom,sensors = <14>;
866			interrupts = <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
867				     <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
868			interrupt-names = "uplow", "critical";
869			#thermal-sensor-cells = <1>;
870		};
871
872		tsens1: thermal@10ae000 {
873			compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
874			reg = <0x010ae000 0x1000>, /* TM */
875			      <0x010ad000 0x1000>; /* SROT */
876			#qcom,sensors = <8>;
877			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
878				     <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
879			interrupt-names = "uplow", "critical";
880			#thermal-sensor-cells = <1>;
881		};
882
883		anoc1_smmu: iommu@1680000 {
884			compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
885			reg = <0x01680000 0x10000>;
886			#iommu-cells = <1>;
887
888			#global-interrupts = <0>;
889			interrupts =
890				<GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
891				<GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
892				<GIC_SPI 366 IRQ_TYPE_EDGE_RISING>,
893				<GIC_SPI 367 IRQ_TYPE_EDGE_RISING>,
894				<GIC_SPI 368 IRQ_TYPE_EDGE_RISING>,
895				<GIC_SPI 369 IRQ_TYPE_EDGE_RISING>;
896		};
897
898		anoc2_smmu: iommu@16c0000 {
899			compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
900			reg = <0x016c0000 0x40000>;
901			#iommu-cells = <1>;
902
903			#global-interrupts = <0>;
904			interrupts =
905				<GIC_SPI 373 IRQ_TYPE_EDGE_RISING>,
906				<GIC_SPI 374 IRQ_TYPE_EDGE_RISING>,
907				<GIC_SPI 375 IRQ_TYPE_EDGE_RISING>,
908				<GIC_SPI 376 IRQ_TYPE_EDGE_RISING>,
909				<GIC_SPI 377 IRQ_TYPE_EDGE_RISING>,
910				<GIC_SPI 378 IRQ_TYPE_EDGE_RISING>,
911				<GIC_SPI 462 IRQ_TYPE_EDGE_RISING>,
912				<GIC_SPI 463 IRQ_TYPE_EDGE_RISING>,
913				<GIC_SPI 464 IRQ_TYPE_EDGE_RISING>,
914				<GIC_SPI 465 IRQ_TYPE_EDGE_RISING>;
915		};
916
917		pcie0: pcie@1c00000 {
918			compatible = "qcom,pcie-msm8998", "qcom,pcie-msm8996";
919			reg = <0x01c00000 0x2000>,
920			      <0x1b000000 0xf1d>,
921			      <0x1b000f20 0xa8>,
922			      <0x1b100000 0x100000>;
923			reg-names = "parf", "dbi", "elbi", "config";
924			device_type = "pci";
925			linux,pci-domain = <0>;
926			bus-range = <0x00 0xff>;
927			#address-cells = <3>;
928			#size-cells = <2>;
929			num-lanes = <1>;
930			phys = <&pcie_phy>;
931			phy-names = "pciephy";
932			status = "disabled";
933
934			ranges = <0x01000000 0x0 0x00000000 0x1b200000 0x0 0x100000>,
935				 <0x02000000 0x0 0x1b300000 0x1b300000 0x0 0xd00000>;
936
937			#interrupt-cells = <1>;
938			interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
939			interrupt-names = "msi";
940			interrupt-map-mask = <0 0 0 0x7>;
941			interrupt-map = <0 0 0 1 &intc 0 0 135 IRQ_TYPE_LEVEL_HIGH>,
942					<0 0 0 2 &intc 0 0 136 IRQ_TYPE_LEVEL_HIGH>,
943					<0 0 0 3 &intc 0 0 138 IRQ_TYPE_LEVEL_HIGH>,
944					<0 0 0 4 &intc 0 0 139 IRQ_TYPE_LEVEL_HIGH>;
945
946			clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
947				 <&gcc GCC_PCIE_0_AUX_CLK>,
948				 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
949				 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
950				 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
951			clock-names = "pipe", "aux", "cfg", "bus_master", "bus_slave";
952
953			power-domains = <&gcc PCIE_0_GDSC>;
954			iommu-map = <0x100 &anoc1_smmu 0x1480 1>;
955			perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
956
957			pcie@0 {
958				device_type = "pci";
959				reg = <0x0 0x0 0x0 0x0 0x0>;
960				bus-range = <0x01 0xff>;
961
962				#address-cells = <3>;
963				#size-cells = <2>;
964				ranges;
965			};
966		};
967
968		pcie_phy: phy@1c06000 {
969			compatible = "qcom,msm8998-qmp-pcie-phy";
970			reg = <0x01c06000 0x1000>;
971			status = "disabled";
972
973			clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
974				 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
975				 <&gcc GCC_PCIE_CLKREF_CLK>,
976				 <&gcc GCC_PCIE_0_PIPE_CLK>;
977			clock-names = "aux",
978				      "cfg_ahb",
979				      "ref",
980				      "pipe";
981
982			clock-output-names = "pcie_0_pipe_clk_src";
983			#clock-cells = <0>;
984
985			#phy-cells = <0>;
986
987			resets = <&gcc GCC_PCIE_0_PHY_BCR>, <&gcc GCC_PCIE_PHY_BCR>;
988			reset-names = "phy", "common";
989
990			vdda-phy-supply = <&vreg_l1a_0p875>;
991			vdda-pll-supply = <&vreg_l2a_1p2>;
992		};
993
994		ufshc: ufshc@1da4000 {
995			compatible = "qcom,msm8998-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
996			reg = <0x01da4000 0x2500>;
997			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
998			phys = <&ufsphy>;
999			phy-names = "ufsphy";
1000			lanes-per-direction = <2>;
1001			power-domains = <&gcc UFS_GDSC>;
1002			status = "disabled";
1003			#reset-cells = <1>;
1004
1005			clock-names =
1006				"core_clk",
1007				"bus_aggr_clk",
1008				"iface_clk",
1009				"core_clk_unipro",
1010				"ref_clk",
1011				"tx_lane0_sync_clk",
1012				"rx_lane0_sync_clk",
1013				"rx_lane1_sync_clk";
1014			clocks =
1015				<&gcc GCC_UFS_AXI_CLK>,
1016				<&gcc GCC_AGGRE1_UFS_AXI_CLK>,
1017				<&gcc GCC_UFS_AHB_CLK>,
1018				<&gcc GCC_UFS_UNIPRO_CORE_CLK>,
1019				<&rpmcc RPM_SMD_LN_BB_CLK1>,
1020				<&gcc GCC_UFS_TX_SYMBOL_0_CLK>,
1021				<&gcc GCC_UFS_RX_SYMBOL_0_CLK>,
1022				<&gcc GCC_UFS_RX_SYMBOL_1_CLK>;
1023			freq-table-hz =
1024				<50000000 200000000>,
1025				<0 0>,
1026				<0 0>,
1027				<37500000 150000000>,
1028				<0 0>,
1029				<0 0>,
1030				<0 0>,
1031				<0 0>;
1032
1033			resets = <&gcc GCC_UFS_BCR>;
1034			reset-names = "rst";
1035		};
1036
1037		ufsphy: phy@1da7000 {
1038			compatible = "qcom,msm8998-qmp-ufs-phy";
1039			reg = <0x01da7000 0x1000>;
1040
1041			clocks = <&rpmcc RPM_SMD_LN_BB_CLK1>,
1042				 <&gcc GCC_UFS_PHY_AUX_CLK>,
1043				 <&gcc GCC_UFS_CLKREF_CLK>;
1044			clock-names = "ref",
1045				      "ref_aux",
1046				      "qref";
1047
1048			reset-names = "ufsphy";
1049			resets = <&ufshc 0>;
1050
1051			#phy-cells = <0>;
1052			status = "disabled";
1053		};
1054
1055		tcsr_mutex: hwlock@1f40000 {
1056			compatible = "qcom,tcsr-mutex";
1057			reg = <0x01f40000 0x20000>;
1058			#hwlock-cells = <1>;
1059		};
1060
1061		tcsr_regs_1: syscon@1f60000 {
1062			compatible = "qcom,msm8998-tcsr", "syscon";
1063			reg = <0x01f60000 0x20000>;
1064		};
1065
1066		tcsr_regs_2: syscon@1fc0000 {
1067			compatible = "qcom,msm8998-tcsr", "syscon";
1068			reg = <0x01fc0000 0x26000>;
1069		};
1070
1071		tlmm: pinctrl@3400000 {
1072			compatible = "qcom,msm8998-pinctrl";
1073			reg = <0x03400000 0xc00000>;
1074			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
1075			gpio-ranges = <&tlmm 0 0 150>;
1076			gpio-controller;
1077			#gpio-cells = <2>;
1078			interrupt-controller;
1079			#interrupt-cells = <2>;
1080
1081			sdc2_on: sdc2-on-state {
1082				clk-pins {
1083					pins = "sdc2_clk";
1084					drive-strength = <16>;
1085					bias-disable;
1086				};
1087
1088				cmd-pins {
1089					pins = "sdc2_cmd";
1090					drive-strength = <10>;
1091					bias-pull-up;
1092				};
1093
1094				data-pins {
1095					pins = "sdc2_data";
1096					drive-strength = <10>;
1097					bias-pull-up;
1098				};
1099			};
1100
1101			sdc2_off: sdc2-off-state {
1102				clk-pins {
1103					pins = "sdc2_clk";
1104					drive-strength = <2>;
1105					bias-disable;
1106				};
1107
1108				cmd-pins {
1109					pins = "sdc2_cmd";
1110					drive-strength = <2>;
1111					bias-pull-up;
1112				};
1113
1114				data-pins {
1115					pins = "sdc2_data";
1116					drive-strength = <2>;
1117					bias-pull-up;
1118				};
1119			};
1120
1121			sdc2_cd: sdc2-cd-state {
1122				pins = "gpio95";
1123				function = "gpio";
1124				bias-pull-up;
1125				drive-strength = <2>;
1126			};
1127
1128			blsp1_uart3_on: blsp1-uart3-on-state {
1129				tx-pins {
1130					pins = "gpio45";
1131					function = "blsp_uart3_a";
1132					drive-strength = <2>;
1133					bias-disable;
1134				};
1135
1136				rx-pins {
1137					pins = "gpio46";
1138					function = "blsp_uart3_a";
1139					drive-strength = <2>;
1140					bias-disable;
1141				};
1142
1143				cts-pins {
1144					pins = "gpio47";
1145					function = "blsp_uart3_a";
1146					drive-strength = <2>;
1147					bias-disable;
1148				};
1149
1150				rfr-pins {
1151					pins = "gpio48";
1152					function = "blsp_uart3_a";
1153					drive-strength = <2>;
1154					bias-disable;
1155				};
1156			};
1157
1158			blsp1_i2c1_default: blsp1-i2c1-default-state {
1159				pins = "gpio2", "gpio3";
1160				function = "blsp_i2c1";
1161				drive-strength = <2>;
1162				bias-disable;
1163			};
1164
1165			blsp1_i2c1_sleep: blsp1-i2c1-sleep-state-state {
1166				pins = "gpio2", "gpio3";
1167				function = "blsp_i2c1";
1168				drive-strength = <2>;
1169				bias-pull-up;
1170			};
1171
1172			blsp1_i2c2_default: blsp1-i2c2-default-state {
1173				pins = "gpio32", "gpio33";
1174				function = "blsp_i2c2";
1175				drive-strength = <2>;
1176				bias-disable;
1177			};
1178
1179			blsp1_i2c2_sleep: blsp1-i2c2-sleep-state-state {
1180				pins = "gpio32", "gpio33";
1181				function = "blsp_i2c2";
1182				drive-strength = <2>;
1183				bias-pull-up;
1184			};
1185
1186			blsp1_i2c3_default: blsp1-i2c3-default-state {
1187				pins = "gpio47", "gpio48";
1188				function = "blsp_i2c3";
1189				drive-strength = <2>;
1190				bias-disable;
1191			};
1192
1193			blsp1_i2c3_sleep: blsp1-i2c3-sleep-state {
1194				pins = "gpio47", "gpio48";
1195				function = "blsp_i2c3";
1196				drive-strength = <2>;
1197				bias-pull-up;
1198			};
1199
1200			blsp1_i2c4_default: blsp1-i2c4-default-state {
1201				pins = "gpio10", "gpio11";
1202				function = "blsp_i2c4";
1203				drive-strength = <2>;
1204				bias-disable;
1205			};
1206
1207			blsp1_i2c4_sleep: blsp1-i2c4-sleep-state {
1208				pins = "gpio10", "gpio11";
1209				function = "blsp_i2c4";
1210				drive-strength = <2>;
1211				bias-pull-up;
1212			};
1213
1214			blsp1_i2c5_default: blsp1-i2c5-default-state {
1215				pins = "gpio87", "gpio88";
1216				function = "blsp_i2c5";
1217				drive-strength = <2>;
1218				bias-disable;
1219			};
1220
1221			blsp1_i2c5_sleep: blsp1-i2c5-sleep-state {
1222				pins = "gpio87", "gpio88";
1223				function = "blsp_i2c5";
1224				drive-strength = <2>;
1225				bias-pull-up;
1226			};
1227
1228			blsp1_i2c6_default: blsp1-i2c6-default-state {
1229				pins = "gpio43", "gpio44";
1230				function = "blsp_i2c6";
1231				drive-strength = <2>;
1232				bias-disable;
1233			};
1234
1235			blsp1_i2c6_sleep: blsp1-i2c6-sleep-state {
1236				pins = "gpio43", "gpio44";
1237				function = "blsp_i2c6";
1238				drive-strength = <2>;
1239				bias-pull-up;
1240			};
1241
1242			blsp1_spi_b_default: blsp1-spi-b-default-state {
1243				pins = "gpio23", "gpio28";
1244				function = "blsp1_spi_b";
1245				drive-strength = <6>;
1246				bias-disable;
1247			};
1248
1249			blsp1_spi1_default: blsp1-spi1-default-state {
1250				pins = "gpio0", "gpio1", "gpio2", "gpio3";
1251				function = "blsp_spi1";
1252				drive-strength = <6>;
1253				bias-disable;
1254			};
1255
1256			blsp1_spi2_default: blsp1-spi2-default-state {
1257				pins = "gpio31", "gpio34", "gpio32", "gpio33";
1258				function = "blsp_spi2";
1259				drive-strength = <6>;
1260				bias-disable;
1261			};
1262
1263			blsp1_spi3_default: blsp1-spi3-default-state {
1264				pins = "gpio45", "gpio46", "gpio47", "gpio48";
1265				function = "blsp_spi2";
1266				drive-strength = <6>;
1267				bias-disable;
1268			};
1269
1270			blsp1_spi4_default: blsp1-spi4-default-state {
1271				pins = "gpio8", "gpio9", "gpio10", "gpio11";
1272				function = "blsp_spi4";
1273				drive-strength = <6>;
1274				bias-disable;
1275			};
1276
1277			blsp1_spi5_default: blsp1-spi5-default-state {
1278				pins = "gpio85", "gpio86", "gpio87", "gpio88";
1279				function = "blsp_spi5";
1280				drive-strength = <6>;
1281				bias-disable;
1282			};
1283
1284			blsp1_spi6_default: blsp1-spi6-default-state {
1285				pins = "gpio41", "gpio42", "gpio43", "gpio44";
1286				function = "blsp_spi6";
1287				drive-strength = <6>;
1288				bias-disable;
1289			};
1290
1291
1292			/* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
1293			blsp2_i2c1_default: blsp2-i2c1-default-state {
1294				pins = "gpio55", "gpio56";
1295				function = "blsp_i2c7";
1296				drive-strength = <2>;
1297				bias-disable;
1298			};
1299
1300			blsp2_i2c1_sleep: blsp2-i2c1-sleep-state {
1301				pins = "gpio55", "gpio56";
1302				function = "blsp_i2c7";
1303				drive-strength = <2>;
1304				bias-pull-up;
1305			};
1306
1307			blsp2_i2c2_default: blsp2-i2c2-default-state {
1308				pins = "gpio6", "gpio7";
1309				function = "blsp_i2c8";
1310				drive-strength = <2>;
1311				bias-disable;
1312			};
1313
1314			blsp2_i2c2_sleep: blsp2-i2c2-sleep-state {
1315				pins = "gpio6", "gpio7";
1316				function = "blsp_i2c8";
1317				drive-strength = <2>;
1318				bias-pull-up;
1319			};
1320
1321			blsp2_i2c3_default: blsp2-i2c3-default-state {
1322				pins = "gpio51", "gpio52";
1323				function = "blsp_i2c9";
1324				drive-strength = <2>;
1325				bias-disable;
1326			};
1327
1328			blsp2_i2c3_sleep: blsp2-i2c3-sleep-state {
1329				pins = "gpio51", "gpio52";
1330				function = "blsp_i2c9";
1331				drive-strength = <2>;
1332				bias-pull-up;
1333			};
1334
1335			blsp2_i2c4_default: blsp2-i2c4-default-state {
1336				pins = "gpio67", "gpio68";
1337				function = "blsp_i2c10";
1338				drive-strength = <2>;
1339				bias-disable;
1340			};
1341
1342			blsp2_i2c4_sleep: blsp2-i2c4-sleep-state {
1343				pins = "gpio67", "gpio68";
1344				function = "blsp_i2c10";
1345				drive-strength = <2>;
1346				bias-pull-up;
1347			};
1348
1349			blsp2_i2c5_default: blsp2-i2c5-default-state {
1350				pins = "gpio60", "gpio61";
1351				function = "blsp_i2c11";
1352				drive-strength = <2>;
1353				bias-disable;
1354			};
1355
1356			blsp2_i2c5_sleep: blsp2-i2c5-sleep-state {
1357				pins = "gpio60", "gpio61";
1358				function = "blsp_i2c11";
1359				drive-strength = <2>;
1360				bias-pull-up;
1361			};
1362
1363			blsp2_i2c6_default: blsp2-i2c6-default-state {
1364				pins = "gpio83", "gpio84";
1365				function = "blsp_i2c12";
1366				drive-strength = <2>;
1367				bias-disable;
1368			};
1369
1370			blsp2_i2c6_sleep: blsp2-i2c6-sleep-state {
1371				pins = "gpio83", "gpio84";
1372				function = "blsp_i2c12";
1373				drive-strength = <2>;
1374				bias-pull-up;
1375			};
1376
1377			blsp2_spi1_default: blsp2-spi1-default-state {
1378				pins = "gpio53", "gpio54", "gpio55", "gpio56";
1379				function = "blsp_spi7";
1380				drive-strength = <6>;
1381				bias-disable;
1382			};
1383
1384			blsp2_spi2_default: blsp2-spi2-default-state {
1385				pins = "gpio4", "gpio5", "gpio6", "gpio7";
1386				function = "blsp_spi8";
1387				drive-strength = <6>;
1388				bias-disable;
1389			};
1390
1391			blsp2_spi3_default: blsp2-spi3-default-state {
1392				pins = "gpio49", "gpio50", "gpio51", "gpio52";
1393				function = "blsp_spi9";
1394				drive-strength = <6>;
1395				bias-disable;
1396			};
1397
1398			blsp2_spi4_default: blsp2-spi4-default-state {
1399				pins = "gpio65", "gpio66", "gpio67", "gpio68";
1400				function = "blsp_spi10";
1401				drive-strength = <6>;
1402				bias-disable;
1403			};
1404
1405			blsp2_spi5_default: blsp2-spi5-default-state {
1406				pins = "gpio58", "gpio59", "gpio60", "gpio61";
1407				function = "blsp_spi11";
1408				drive-strength = <6>;
1409				bias-disable;
1410			};
1411
1412			blsp2_spi6_default: blsp2-spi6-default-state {
1413				pins = "gpio81", "gpio82", "gpio83", "gpio84";
1414				function = "blsp_spi12";
1415				drive-strength = <6>;
1416				bias-disable;
1417			};
1418		};
1419
1420		remoteproc_mss: remoteproc@4080000 {
1421			compatible = "qcom,msm8998-mss-pil";
1422			reg = <0x04080000 0x100>, <0x04180000 0x20>;
1423			reg-names = "qdsp6", "rmb";
1424
1425			interrupts-extended =
1426				<&intc GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
1427				<&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1428				<&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1429				<&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1430				<&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
1431				<&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
1432			interrupt-names = "wdog", "fatal", "ready",
1433					  "handover", "stop-ack",
1434					  "shutdown-ack";
1435
1436			clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1437				 <&gcc GCC_BIMC_MSS_Q6_AXI_CLK>,
1438				 <&gcc GCC_BOOT_ROM_AHB_CLK>,
1439				 <&gcc GCC_MSS_GPLL0_DIV_CLK_SRC>,
1440				 <&gcc GCC_MSS_SNOC_AXI_CLK>,
1441				 <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>,
1442				 <&rpmcc RPM_SMD_QDSS_CLK>,
1443				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1444			clock-names = "iface", "bus", "mem", "gpll0_mss",
1445				      "snoc_axi", "mnoc_axi", "qdss", "xo";
1446
1447			qcom,smem-states = <&modem_smp2p_out 0>;
1448			qcom,smem-state-names = "stop";
1449
1450			resets = <&gcc GCC_MSS_RESTART>;
1451			reset-names = "mss_restart";
1452
1453			qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
1454
1455			power-domains = <&rpmpd MSM8998_VDDCX>,
1456					<&rpmpd MSM8998_VDDMX>;
1457			power-domain-names = "cx", "mx";
1458
1459			status = "disabled";
1460
1461			mba {
1462				memory-region = <&mba_mem>;
1463			};
1464
1465			mpss {
1466				memory-region = <&mpss_mem>;
1467			};
1468
1469			metadata {
1470				memory-region = <&mdata_mem>;
1471			};
1472
1473			glink-edge {
1474				interrupts = <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>;
1475				label = "modem";
1476				qcom,remote-pid = <1>;
1477				mboxes = <&apcs_glb 15>;
1478			};
1479		};
1480
1481		adreno_gpu: gpu@5000000 {
1482			compatible = "qcom,adreno-540.1", "qcom,adreno";
1483			reg = <0x05000000 0x40000>;
1484			reg-names = "kgsl_3d0_reg_memory";
1485
1486			clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
1487				<&gpucc RBBMTIMER_CLK>,
1488				<&gcc GCC_BIMC_GFX_CLK>,
1489				<&gcc GCC_GPU_BIMC_GFX_CLK>,
1490				<&gpucc RBCPR_CLK>,
1491				<&gpucc GFX3D_CLK>;
1492			clock-names = "iface",
1493				"rbbmtimer",
1494				"mem",
1495				"mem_iface",
1496				"rbcpr",
1497				"core";
1498
1499			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1500			iommus = <&adreno_smmu 0>;
1501			operating-points-v2 = <&gpu_opp_table>;
1502			power-domains = <&rpmpd MSM8998_VDDMX>;
1503			status = "disabled";
1504
1505			gpu_opp_table: opp-table {
1506				compatible = "operating-points-v2";
1507				opp-710000097 {
1508					opp-hz = /bits/ 64 <710000097>;
1509					opp-level = <RPM_SMD_LEVEL_TURBO>;
1510					opp-supported-hw = <0xff>;
1511				};
1512
1513				opp-670000048 {
1514					opp-hz = /bits/ 64 <670000048>;
1515					opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
1516					opp-supported-hw = <0xff>;
1517				};
1518
1519				opp-596000097 {
1520					opp-hz = /bits/ 64 <596000097>;
1521					opp-level = <RPM_SMD_LEVEL_NOM>;
1522					opp-supported-hw = <0xff>;
1523				};
1524
1525				opp-515000097 {
1526					opp-hz = /bits/ 64 <515000097>;
1527					opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
1528					opp-supported-hw = <0xff>;
1529				};
1530
1531				opp-414000000 {
1532					opp-hz = /bits/ 64 <414000000>;
1533					opp-level = <RPM_SMD_LEVEL_SVS>;
1534					opp-supported-hw = <0xff>;
1535				};
1536
1537				opp-342000000 {
1538					opp-hz = /bits/ 64 <342000000>;
1539					opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
1540					opp-supported-hw = <0xff>;
1541				};
1542
1543				opp-257000000 {
1544					opp-hz = /bits/ 64 <257000000>;
1545					opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
1546					opp-supported-hw = <0xff>;
1547				};
1548			};
1549		};
1550
1551		adreno_smmu: iommu@5040000 {
1552			compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
1553			reg = <0x05040000 0x10000>;
1554			clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
1555				 <&gcc GCC_BIMC_GFX_CLK>,
1556				 <&gcc GCC_GPU_BIMC_GFX_CLK>;
1557			clock-names = "iface", "mem", "mem_iface";
1558
1559			#global-interrupts = <0>;
1560			#iommu-cells = <1>;
1561			interrupts =
1562				<GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
1563				<GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
1564				<GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1565			/*
1566			 * GPU-GX GDSC's parent is GPU-CX. We need to bring up the
1567			 * GPU-CX for SMMU but we need both of them up for Adreno.
1568			 * Contemporarily, we also need to manage the VDDMX rpmpd
1569			 * domain in the Adreno driver.
1570			 * Enable GPU CX/GX GDSCs here so that we can manage the
1571			 * SoC VDDMX RPM Power Domain in the Adreno driver.
1572			 */
1573			power-domains = <&gpucc GPU_GX_GDSC>;
1574		};
1575
1576		gpucc: clock-controller@5065000 {
1577			compatible = "qcom,msm8998-gpucc";
1578			#clock-cells = <1>;
1579			#reset-cells = <1>;
1580			#power-domain-cells = <1>;
1581			reg = <0x05065000 0x9000>;
1582
1583			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1584				 <&gcc GCC_GPU_GPLL0_CLK>;
1585			clock-names = "xo",
1586				      "gpll0";
1587		};
1588
1589		remoteproc_slpi: remoteproc@5800000 {
1590			compatible = "qcom,msm8998-slpi-pas";
1591			reg = <0x05800000 0x4040>;
1592
1593			interrupts-extended = <&intc GIC_SPI 390 IRQ_TYPE_EDGE_RISING>,
1594					      <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1595					      <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1596					      <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1597					      <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1598			interrupt-names = "wdog", "fatal", "ready",
1599					  "handover", "stop-ack";
1600
1601			px-supply = <&vreg_lvs2a_1p8>;
1602
1603			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1604			clock-names = "xo";
1605
1606			memory-region = <&slpi_mem>;
1607
1608			qcom,smem-states = <&slpi_smp2p_out 0>;
1609			qcom,smem-state-names = "stop";
1610
1611			power-domains = <&rpmpd MSM8998_SSCCX>;
1612			power-domain-names = "ssc_cx";
1613
1614			status = "disabled";
1615
1616			glink-edge {
1617				interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
1618				label = "dsps";
1619				qcom,remote-pid = <3>;
1620				mboxes = <&apcs_glb 27>;
1621			};
1622		};
1623
1624		stm: stm@6002000 {
1625			compatible = "arm,coresight-stm", "arm,primecell";
1626			reg = <0x06002000 0x1000>,
1627			      <0x16280000 0x180000>;
1628			reg-names = "stm-base", "stm-stimulus-base";
1629			status = "disabled";
1630
1631			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1632			clock-names = "apb_pclk", "atclk";
1633
1634			out-ports {
1635				port {
1636					stm_out: endpoint {
1637						remote-endpoint = <&funnel0_in7>;
1638					};
1639				};
1640			};
1641		};
1642
1643		funnel1: funnel@6041000 {
1644			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1645			reg = <0x06041000 0x1000>;
1646			status = "disabled";
1647
1648			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1649			clock-names = "apb_pclk", "atclk";
1650
1651			out-ports {
1652				port {
1653					funnel0_out: endpoint {
1654						remote-endpoint =
1655						  <&merge_funnel_in0>;
1656					};
1657				};
1658			};
1659
1660			in-ports {
1661				#address-cells = <1>;
1662				#size-cells = <0>;
1663
1664				port@7 {
1665					reg = <7>;
1666					funnel0_in7: endpoint {
1667						remote-endpoint = <&stm_out>;
1668					};
1669				};
1670			};
1671		};
1672
1673		funnel2: funnel@6042000 {
1674			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1675			reg = <0x06042000 0x1000>;
1676			status = "disabled";
1677
1678			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1679			clock-names = "apb_pclk", "atclk";
1680
1681			out-ports {
1682				port {
1683					funnel1_out: endpoint {
1684						remote-endpoint =
1685						  <&merge_funnel_in1>;
1686					};
1687				};
1688			};
1689
1690			in-ports {
1691				#address-cells = <1>;
1692				#size-cells = <0>;
1693
1694				port@6 {
1695					reg = <6>;
1696					funnel1_in6: endpoint {
1697						remote-endpoint =
1698						  <&apss_merge_funnel_out>;
1699					};
1700				};
1701			};
1702		};
1703
1704		funnel3: funnel@6045000 {
1705			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1706			reg = <0x06045000 0x1000>;
1707			status = "disabled";
1708
1709			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1710			clock-names = "apb_pclk", "atclk";
1711
1712			out-ports {
1713				port {
1714					merge_funnel_out: endpoint {
1715						remote-endpoint =
1716						  <&etf_in>;
1717					};
1718				};
1719			};
1720
1721			in-ports {
1722				#address-cells = <1>;
1723				#size-cells = <0>;
1724
1725				port@0 {
1726					reg = <0>;
1727					merge_funnel_in0: endpoint {
1728						remote-endpoint =
1729						  <&funnel0_out>;
1730					};
1731				};
1732
1733				port@1 {
1734					reg = <1>;
1735					merge_funnel_in1: endpoint {
1736						remote-endpoint =
1737						  <&funnel1_out>;
1738					};
1739				};
1740			};
1741		};
1742
1743		replicator1: replicator@6046000 {
1744			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
1745			reg = <0x06046000 0x1000>;
1746			status = "disabled";
1747
1748			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1749			clock-names = "apb_pclk", "atclk";
1750
1751			out-ports {
1752				port {
1753					replicator_out: endpoint {
1754						remote-endpoint = <&etr_in>;
1755					};
1756				};
1757			};
1758
1759			in-ports {
1760				port {
1761					replicator_in: endpoint {
1762						remote-endpoint = <&etf_out>;
1763					};
1764				};
1765			};
1766		};
1767
1768		etf: etf@6047000 {
1769			compatible = "arm,coresight-tmc", "arm,primecell";
1770			reg = <0x06047000 0x1000>;
1771			status = "disabled";
1772
1773			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1774			clock-names = "apb_pclk", "atclk";
1775
1776			out-ports {
1777				port {
1778					etf_out: endpoint {
1779						remote-endpoint =
1780						  <&replicator_in>;
1781					};
1782				};
1783			};
1784
1785			in-ports {
1786				port {
1787					etf_in: endpoint {
1788						remote-endpoint =
1789						  <&merge_funnel_out>;
1790					};
1791				};
1792			};
1793		};
1794
1795		etr: etr@6048000 {
1796			compatible = "arm,coresight-tmc", "arm,primecell";
1797			reg = <0x06048000 0x1000>;
1798			status = "disabled";
1799
1800			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1801			clock-names = "apb_pclk", "atclk";
1802			arm,scatter-gather;
1803
1804			in-ports {
1805				port {
1806					etr_in: endpoint {
1807						remote-endpoint =
1808						  <&replicator_out>;
1809					};
1810				};
1811			};
1812		};
1813
1814		etm1: etm@7840000 {
1815			compatible = "arm,coresight-etm4x", "arm,primecell";
1816			reg = <0x07840000 0x1000>;
1817			status = "disabled";
1818
1819			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1820			clock-names = "apb_pclk", "atclk";
1821
1822			cpu = <&CPU0>;
1823
1824			out-ports {
1825				port {
1826					etm0_out: endpoint {
1827						remote-endpoint =
1828						  <&apss_funnel_in0>;
1829					};
1830				};
1831			};
1832		};
1833
1834		etm2: etm@7940000 {
1835			compatible = "arm,coresight-etm4x", "arm,primecell";
1836			reg = <0x07940000 0x1000>;
1837			status = "disabled";
1838
1839			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1840			clock-names = "apb_pclk", "atclk";
1841
1842			cpu = <&CPU1>;
1843
1844			out-ports {
1845				port {
1846					etm1_out: endpoint {
1847						remote-endpoint =
1848						  <&apss_funnel_in1>;
1849					};
1850				};
1851			};
1852		};
1853
1854		etm3: etm@7a40000 {
1855			compatible = "arm,coresight-etm4x", "arm,primecell";
1856			reg = <0x07a40000 0x1000>;
1857			status = "disabled";
1858
1859			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1860			clock-names = "apb_pclk", "atclk";
1861
1862			cpu = <&CPU2>;
1863
1864			out-ports {
1865				port {
1866					etm2_out: endpoint {
1867						remote-endpoint =
1868						  <&apss_funnel_in2>;
1869					};
1870				};
1871			};
1872		};
1873
1874		etm4: etm@7b40000 {
1875			compatible = "arm,coresight-etm4x", "arm,primecell";
1876			reg = <0x07b40000 0x1000>;
1877			status = "disabled";
1878
1879			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1880			clock-names = "apb_pclk", "atclk";
1881
1882			cpu = <&CPU3>;
1883
1884			out-ports {
1885				port {
1886					etm3_out: endpoint {
1887						remote-endpoint =
1888						  <&apss_funnel_in3>;
1889					};
1890				};
1891			};
1892		};
1893
1894		funnel4: funnel@7b60000 { /* APSS Funnel */
1895			compatible = "arm,coresight-etm4x", "arm,primecell";
1896			reg = <0x07b60000 0x1000>;
1897			status = "disabled";
1898
1899			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1900			clock-names = "apb_pclk", "atclk";
1901
1902			out-ports {
1903				port {
1904					apss_funnel_out: endpoint {
1905						remote-endpoint =
1906						  <&apss_merge_funnel_in>;
1907					};
1908				};
1909			};
1910
1911			in-ports {
1912				#address-cells = <1>;
1913				#size-cells = <0>;
1914
1915				port@0 {
1916					reg = <0>;
1917					apss_funnel_in0: endpoint {
1918						remote-endpoint =
1919						  <&etm0_out>;
1920					};
1921				};
1922
1923				port@1 {
1924					reg = <1>;
1925					apss_funnel_in1: endpoint {
1926						remote-endpoint =
1927						  <&etm1_out>;
1928					};
1929				};
1930
1931				port@2 {
1932					reg = <2>;
1933					apss_funnel_in2: endpoint {
1934						remote-endpoint =
1935						  <&etm2_out>;
1936					};
1937				};
1938
1939				port@3 {
1940					reg = <3>;
1941					apss_funnel_in3: endpoint {
1942						remote-endpoint =
1943						  <&etm3_out>;
1944					};
1945				};
1946
1947				port@4 {
1948					reg = <4>;
1949					apss_funnel_in4: endpoint {
1950						remote-endpoint =
1951						  <&etm4_out>;
1952					};
1953				};
1954
1955				port@5 {
1956					reg = <5>;
1957					apss_funnel_in5: endpoint {
1958						remote-endpoint =
1959						  <&etm5_out>;
1960					};
1961				};
1962
1963				port@6 {
1964					reg = <6>;
1965					apss_funnel_in6: endpoint {
1966						remote-endpoint =
1967						  <&etm6_out>;
1968					};
1969				};
1970
1971				port@7 {
1972					reg = <7>;
1973					apss_funnel_in7: endpoint {
1974						remote-endpoint =
1975						  <&etm7_out>;
1976					};
1977				};
1978			};
1979		};
1980
1981		funnel5: funnel@7b70000 {
1982			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1983			reg = <0x07b70000 0x1000>;
1984			status = "disabled";
1985
1986			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1987			clock-names = "apb_pclk", "atclk";
1988
1989			out-ports {
1990				port {
1991					apss_merge_funnel_out: endpoint {
1992						remote-endpoint =
1993						  <&funnel1_in6>;
1994					};
1995				};
1996			};
1997
1998			in-ports {
1999				port {
2000					apss_merge_funnel_in: endpoint {
2001						remote-endpoint =
2002						  <&apss_funnel_out>;
2003					};
2004				};
2005			};
2006		};
2007
2008		etm5: etm@7c40000 {
2009			compatible = "arm,coresight-etm4x", "arm,primecell";
2010			reg = <0x07c40000 0x1000>;
2011			status = "disabled";
2012
2013			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2014			clock-names = "apb_pclk", "atclk";
2015
2016			cpu = <&CPU4>;
2017
2018			out-ports {
2019				port {
2020					etm4_out: endpoint {
2021						remote-endpoint = <&apss_funnel_in4>;
2022					};
2023				};
2024			};
2025		};
2026
2027		etm6: etm@7d40000 {
2028			compatible = "arm,coresight-etm4x", "arm,primecell";
2029			reg = <0x07d40000 0x1000>;
2030			status = "disabled";
2031
2032			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2033			clock-names = "apb_pclk", "atclk";
2034
2035			cpu = <&CPU5>;
2036
2037			out-ports {
2038				port {
2039					etm5_out: endpoint {
2040						remote-endpoint = <&apss_funnel_in5>;
2041					};
2042				};
2043			};
2044		};
2045
2046		etm7: etm@7e40000 {
2047			compatible = "arm,coresight-etm4x", "arm,primecell";
2048			reg = <0x07e40000 0x1000>;
2049			status = "disabled";
2050
2051			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2052			clock-names = "apb_pclk", "atclk";
2053
2054			cpu = <&CPU6>;
2055
2056			out-ports {
2057				port {
2058					etm6_out: endpoint {
2059						remote-endpoint = <&apss_funnel_in6>;
2060					};
2061				};
2062			};
2063		};
2064
2065		etm8: etm@7f40000 {
2066			compatible = "arm,coresight-etm4x", "arm,primecell";
2067			reg = <0x07f40000 0x1000>;
2068			status = "disabled";
2069
2070			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2071			clock-names = "apb_pclk", "atclk";
2072
2073			cpu = <&CPU7>;
2074
2075			out-ports {
2076				port {
2077					etm7_out: endpoint {
2078						remote-endpoint = <&apss_funnel_in7>;
2079					};
2080				};
2081			};
2082		};
2083
2084		sram@290000 {
2085			compatible = "qcom,rpm-stats";
2086			reg = <0x00290000 0x10000>;
2087		};
2088
2089		spmi_bus: spmi@800f000 {
2090			compatible = "qcom,spmi-pmic-arb";
2091			reg = <0x0800f000 0x1000>,
2092			      <0x08400000 0x1000000>,
2093			      <0x09400000 0x1000000>,
2094			      <0x0a400000 0x220000>,
2095			      <0x0800a000 0x3000>;
2096			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
2097			interrupt-names = "periph_irq";
2098			interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
2099			qcom,ee = <0>;
2100			qcom,channel = <0>;
2101			#address-cells = <2>;
2102			#size-cells = <0>;
2103			interrupt-controller;
2104			#interrupt-cells = <4>;
2105		};
2106
2107		usb3: usb@a8f8800 {
2108			compatible = "qcom,msm8998-dwc3", "qcom,dwc3";
2109			reg = <0x0a8f8800 0x400>;
2110			status = "disabled";
2111			#address-cells = <1>;
2112			#size-cells = <1>;
2113			ranges;
2114
2115			clocks = <&gcc GCC_CFG_NOC_USB3_AXI_CLK>,
2116				 <&gcc GCC_USB30_MASTER_CLK>,
2117				 <&gcc GCC_AGGRE1_USB3_AXI_CLK>,
2118				 <&gcc GCC_USB30_SLEEP_CLK>,
2119				 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
2120			clock-names = "cfg_noc",
2121				      "core",
2122				      "iface",
2123				      "sleep",
2124				      "mock_utmi";
2125
2126			assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
2127					  <&gcc GCC_USB30_MASTER_CLK>;
2128			assigned-clock-rates = <19200000>, <120000000>;
2129
2130			interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
2131				     <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
2132				     <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
2133			interrupt-names = "pwr_event",
2134					  "qusb2_phy",
2135					  "ss_phy_irq";
2136
2137			power-domains = <&gcc USB_30_GDSC>;
2138
2139			resets = <&gcc GCC_USB_30_BCR>;
2140
2141			usb3_dwc3: usb@a800000 {
2142				compatible = "snps,dwc3";
2143				reg = <0x0a800000 0xcd00>;
2144				interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
2145				snps,dis_u2_susphy_quirk;
2146				snps,dis_enblslpm_quirk;
2147				snps,parkmode-disable-ss-quirk;
2148				phys = <&qusb2phy>, <&usb3phy>;
2149				phy-names = "usb2-phy", "usb3-phy";
2150				snps,has-lpm-erratum;
2151				snps,hird-threshold = /bits/ 8 <0x10>;
2152			};
2153		};
2154
2155		usb3phy: phy@c010000 {
2156			compatible = "qcom,msm8998-qmp-usb3-phy";
2157			reg = <0x0c010000 0x1000>;
2158
2159			clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
2160				 <&gcc GCC_USB3_CLKREF_CLK>,
2161				 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
2162				 <&gcc GCC_USB3_PHY_PIPE_CLK>;
2163			clock-names = "aux",
2164				      "ref",
2165				      "cfg_ahb",
2166				      "pipe";
2167			clock-output-names = "usb3_phy_pipe_clk_src";
2168			#clock-cells = <0>;
2169			#phy-cells = <0>;
2170
2171			resets = <&gcc GCC_USB3_PHY_BCR>,
2172				 <&gcc GCC_USB3PHY_PHY_BCR>;
2173			reset-names = "phy",
2174				      "phy_phy";
2175
2176			qcom,tcsr-reg = <&tcsr_regs_2 0xb244>;
2177
2178			status = "disabled";
2179		};
2180
2181		qusb2phy: phy@c012000 {
2182			compatible = "qcom,msm8998-qusb2-phy";
2183			reg = <0x0c012000 0x2a8>;
2184			status = "disabled";
2185			#phy-cells = <0>;
2186
2187			clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
2188				 <&gcc GCC_RX1_USB2_CLKREF_CLK>;
2189			clock-names = "cfg_ahb", "ref";
2190
2191			resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
2192
2193			nvmem-cells = <&qusb2_hstx_trim>;
2194		};
2195
2196		sdhc2: mmc@c0a4900 {
2197			compatible = "qcom,msm8998-sdhci", "qcom,sdhci-msm-v4";
2198			reg = <0x0c0a4900 0x314>, <0x0c0a4000 0x800>;
2199			reg-names = "hc", "core";
2200
2201			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
2202				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
2203			interrupt-names = "hc_irq", "pwr_irq";
2204
2205			clock-names = "iface", "core", "xo";
2206			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
2207				 <&gcc GCC_SDCC2_APPS_CLK>,
2208				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2209			bus-width = <4>;
2210			status = "disabled";
2211		};
2212
2213		blsp1_dma: dma-controller@c144000 {
2214			compatible = "qcom,bam-v1.7.0";
2215			reg = <0x0c144000 0x25000>;
2216			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
2217			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
2218			clock-names = "bam_clk";
2219			#dma-cells = <1>;
2220			qcom,ee = <0>;
2221			qcom,controlled-remotely;
2222			num-channels = <18>;
2223			qcom,num-ees = <4>;
2224		};
2225
2226		blsp1_uart3: serial@c171000 {
2227			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
2228			reg = <0x0c171000 0x1000>;
2229			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
2230			clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
2231				 <&gcc GCC_BLSP1_AHB_CLK>;
2232			clock-names = "core", "iface";
2233			dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
2234			dma-names = "tx", "rx";
2235			pinctrl-names = "default";
2236			pinctrl-0 = <&blsp1_uart3_on>;
2237			status = "disabled";
2238		};
2239
2240		blsp1_i2c1: i2c@c175000 {
2241			compatible = "qcom,i2c-qup-v2.2.1";
2242			reg = <0x0c175000 0x600>;
2243			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2244
2245			clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
2246				 <&gcc GCC_BLSP1_AHB_CLK>;
2247			clock-names = "core", "iface";
2248			dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
2249			dma-names = "tx", "rx";
2250			pinctrl-names = "default", "sleep";
2251			pinctrl-0 = <&blsp1_i2c1_default>;
2252			pinctrl-1 = <&blsp1_i2c1_sleep>;
2253			clock-frequency = <400000>;
2254
2255			status = "disabled";
2256			#address-cells = <1>;
2257			#size-cells = <0>;
2258		};
2259
2260		blsp1_i2c2: i2c@c176000 {
2261			compatible = "qcom,i2c-qup-v2.2.1";
2262			reg = <0x0c176000 0x600>;
2263			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2264
2265			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
2266				 <&gcc GCC_BLSP1_AHB_CLK>;
2267			clock-names = "core", "iface";
2268			dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
2269			dma-names = "tx", "rx";
2270			pinctrl-names = "default", "sleep";
2271			pinctrl-0 = <&blsp1_i2c2_default>;
2272			pinctrl-1 = <&blsp1_i2c2_sleep>;
2273			clock-frequency = <400000>;
2274
2275			status = "disabled";
2276			#address-cells = <1>;
2277			#size-cells = <0>;
2278		};
2279
2280		blsp1_i2c3: i2c@c177000 {
2281			compatible = "qcom,i2c-qup-v2.2.1";
2282			reg = <0x0c177000 0x600>;
2283			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2284
2285			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
2286				 <&gcc GCC_BLSP1_AHB_CLK>;
2287			clock-names = "core", "iface";
2288			dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
2289			dma-names = "tx", "rx";
2290			pinctrl-names = "default", "sleep";
2291			pinctrl-0 = <&blsp1_i2c3_default>;
2292			pinctrl-1 = <&blsp1_i2c3_sleep>;
2293			clock-frequency = <400000>;
2294
2295			status = "disabled";
2296			#address-cells = <1>;
2297			#size-cells = <0>;
2298		};
2299
2300		blsp1_i2c4: i2c@c178000 {
2301			compatible = "qcom,i2c-qup-v2.2.1";
2302			reg = <0x0c178000 0x600>;
2303			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2304
2305			clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
2306				 <&gcc GCC_BLSP1_AHB_CLK>;
2307			clock-names = "core", "iface";
2308			dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
2309			dma-names = "tx", "rx";
2310			pinctrl-names = "default", "sleep";
2311			pinctrl-0 = <&blsp1_i2c4_default>;
2312			pinctrl-1 = <&blsp1_i2c4_sleep>;
2313			clock-frequency = <400000>;
2314
2315			status = "disabled";
2316			#address-cells = <1>;
2317			#size-cells = <0>;
2318		};
2319
2320		blsp1_i2c5: i2c@c179000 {
2321			compatible = "qcom,i2c-qup-v2.2.1";
2322			reg = <0x0c179000 0x600>;
2323			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2324
2325			clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
2326				 <&gcc GCC_BLSP1_AHB_CLK>;
2327			clock-names = "core", "iface";
2328			dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
2329			dma-names = "tx", "rx";
2330			pinctrl-names = "default", "sleep";
2331			pinctrl-0 = <&blsp1_i2c5_default>;
2332			pinctrl-1 = <&blsp1_i2c5_sleep>;
2333			clock-frequency = <400000>;
2334
2335			status = "disabled";
2336			#address-cells = <1>;
2337			#size-cells = <0>;
2338		};
2339
2340		blsp1_i2c6: i2c@c17a000 {
2341			compatible = "qcom,i2c-qup-v2.2.1";
2342			reg = <0x0c17a000 0x600>;
2343			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2344
2345			clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
2346				 <&gcc GCC_BLSP1_AHB_CLK>;
2347			clock-names = "core", "iface";
2348			dmas = <&blsp1_dma 16>, <&blsp1_dma 17>;
2349			dma-names = "tx", "rx";
2350			pinctrl-names = "default", "sleep";
2351			pinctrl-0 = <&blsp1_i2c6_default>;
2352			pinctrl-1 = <&blsp1_i2c6_sleep>;
2353			clock-frequency = <400000>;
2354
2355			status = "disabled";
2356			#address-cells = <1>;
2357			#size-cells = <0>;
2358		};
2359
2360		blsp1_spi1: spi@c175000 {
2361			compatible = "qcom,spi-qup-v2.2.1";
2362			reg = <0x0c175000 0x600>;
2363			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2364
2365			clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
2366				 <&gcc GCC_BLSP1_AHB_CLK>;
2367			clock-names = "core", "iface";
2368			dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
2369			dma-names = "tx", "rx";
2370			pinctrl-names = "default";
2371			pinctrl-0 = <&blsp1_spi1_default>;
2372
2373			status = "disabled";
2374			#address-cells = <1>;
2375			#size-cells = <0>;
2376		};
2377
2378		blsp1_spi2: spi@c176000 {
2379			compatible = "qcom,spi-qup-v2.2.1";
2380			reg = <0x0c176000 0x600>;
2381			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2382
2383			clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
2384				 <&gcc GCC_BLSP1_AHB_CLK>;
2385			clock-names = "core", "iface";
2386			dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
2387			dma-names = "tx", "rx";
2388			pinctrl-names = "default";
2389			pinctrl-0 = <&blsp1_spi2_default>;
2390
2391			status = "disabled";
2392			#address-cells = <1>;
2393			#size-cells = <0>;
2394		};
2395
2396		blsp1_spi3: spi@c177000 {
2397			compatible = "qcom,spi-qup-v2.2.1";
2398			reg = <0x0c177000 0x600>;
2399			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2400
2401			clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
2402				 <&gcc GCC_BLSP1_AHB_CLK>;
2403			clock-names = "core", "iface";
2404			dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
2405			dma-names = "tx", "rx";
2406			pinctrl-names = "default";
2407			pinctrl-0 = <&blsp1_spi3_default>;
2408
2409			status = "disabled";
2410			#address-cells = <1>;
2411			#size-cells = <0>;
2412		};
2413
2414		blsp1_spi4: spi@c178000 {
2415			compatible = "qcom,spi-qup-v2.2.1";
2416			reg = <0x0c178000 0x600>;
2417			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2418
2419			clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
2420				 <&gcc GCC_BLSP1_AHB_CLK>;
2421			clock-names = "core", "iface";
2422			dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
2423			dma-names = "tx", "rx";
2424			pinctrl-names = "default";
2425			pinctrl-0 = <&blsp1_spi4_default>;
2426
2427			status = "disabled";
2428			#address-cells = <1>;
2429			#size-cells = <0>;
2430		};
2431
2432		blsp1_spi5: spi@c179000 {
2433			compatible = "qcom,spi-qup-v2.2.1";
2434			reg = <0x0c179000 0x600>;
2435			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2436
2437			clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
2438				 <&gcc GCC_BLSP1_AHB_CLK>;
2439			clock-names = "core", "iface";
2440			dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
2441			dma-names = "tx", "rx";
2442			pinctrl-names = "default";
2443			pinctrl-0 = <&blsp1_spi5_default>;
2444
2445			status = "disabled";
2446			#address-cells = <1>;
2447			#size-cells = <0>;
2448		};
2449
2450		blsp1_spi6: spi@c17a000 {
2451			compatible = "qcom,spi-qup-v2.2.1";
2452			reg = <0x0c17a000 0x600>;
2453			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2454
2455			clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
2456				 <&gcc GCC_BLSP1_AHB_CLK>;
2457			clock-names = "core", "iface";
2458			dmas = <&blsp1_dma 16>, <&blsp1_dma 17>;
2459			dma-names = "tx", "rx";
2460			pinctrl-names = "default";
2461			pinctrl-0 = <&blsp1_spi6_default>;
2462
2463			status = "disabled";
2464			#address-cells = <1>;
2465			#size-cells = <0>;
2466		};
2467
2468		blsp2_dma: dma-controller@c184000 {
2469			compatible = "qcom,bam-v1.7.0";
2470			reg = <0x0c184000 0x25000>;
2471			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
2472			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
2473			clock-names = "bam_clk";
2474			#dma-cells = <1>;
2475			qcom,ee = <0>;
2476			qcom,controlled-remotely;
2477			num-channels = <18>;
2478			qcom,num-ees = <4>;
2479		};
2480
2481		blsp2_uart1: serial@c1b0000 {
2482			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
2483			reg = <0x0c1b0000 0x1000>;
2484			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
2485			clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
2486				 <&gcc GCC_BLSP2_AHB_CLK>;
2487			clock-names = "core", "iface";
2488			status = "disabled";
2489		};
2490
2491		blsp2_i2c1: i2c@c1b5000 {
2492			compatible = "qcom,i2c-qup-v2.2.1";
2493			reg = <0x0c1b5000 0x600>;
2494			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
2495
2496			clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
2497				 <&gcc GCC_BLSP2_AHB_CLK>;
2498			clock-names = "core", "iface";
2499			dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
2500			dma-names = "tx", "rx";
2501			pinctrl-names = "default", "sleep";
2502			pinctrl-0 = <&blsp2_i2c1_default>;
2503			pinctrl-1 = <&blsp2_i2c1_sleep>;
2504			clock-frequency = <400000>;
2505
2506			status = "disabled";
2507			#address-cells = <1>;
2508			#size-cells = <0>;
2509		};
2510
2511		blsp2_i2c2: i2c@c1b6000 {
2512			compatible = "qcom,i2c-qup-v2.2.1";
2513			reg = <0x0c1b6000 0x600>;
2514			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
2515
2516			clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
2517				 <&gcc GCC_BLSP2_AHB_CLK>;
2518			clock-names = "core", "iface";
2519			dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
2520			dma-names = "tx", "rx";
2521			pinctrl-names = "default", "sleep";
2522			pinctrl-0 = <&blsp2_i2c2_default>;
2523			pinctrl-1 = <&blsp2_i2c2_sleep>;
2524			clock-frequency = <400000>;
2525
2526			status = "disabled";
2527			#address-cells = <1>;
2528			#size-cells = <0>;
2529		};
2530
2531		blsp2_i2c3: i2c@c1b7000 {
2532			compatible = "qcom,i2c-qup-v2.2.1";
2533			reg = <0x0c1b7000 0x600>;
2534			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
2535
2536			clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
2537				 <&gcc GCC_BLSP2_AHB_CLK>;
2538			clock-names = "core", "iface";
2539			dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
2540			dma-names = "tx", "rx";
2541			pinctrl-names = "default", "sleep";
2542			pinctrl-0 = <&blsp2_i2c3_default>;
2543			pinctrl-1 = <&blsp2_i2c3_sleep>;
2544			clock-frequency = <400000>;
2545
2546			status = "disabled";
2547			#address-cells = <1>;
2548			#size-cells = <0>;
2549		};
2550
2551		blsp2_i2c4: i2c@c1b8000 {
2552			compatible = "qcom,i2c-qup-v2.2.1";
2553			reg = <0x0c1b8000 0x600>;
2554			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
2555
2556			clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
2557				 <&gcc GCC_BLSP2_AHB_CLK>;
2558			clock-names = "core", "iface";
2559			dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
2560			dma-names = "tx", "rx";
2561			pinctrl-names = "default", "sleep";
2562			pinctrl-0 = <&blsp2_i2c4_default>;
2563			pinctrl-1 = <&blsp2_i2c4_sleep>;
2564			clock-frequency = <400000>;
2565
2566			status = "disabled";
2567			#address-cells = <1>;
2568			#size-cells = <0>;
2569		};
2570
2571		blsp2_i2c5: i2c@c1b9000 {
2572			compatible = "qcom,i2c-qup-v2.2.1";
2573			reg = <0x0c1b9000 0x600>;
2574			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
2575
2576			clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
2577				 <&gcc GCC_BLSP2_AHB_CLK>;
2578			clock-names = "core", "iface";
2579			dmas = <&blsp2_dma 14>, <&blsp2_dma 15>;
2580			dma-names = "tx", "rx";
2581			pinctrl-names = "default", "sleep";
2582			pinctrl-0 = <&blsp2_i2c5_default>;
2583			pinctrl-1 = <&blsp2_i2c5_sleep>;
2584			clock-frequency = <400000>;
2585
2586			status = "disabled";
2587			#address-cells = <1>;
2588			#size-cells = <0>;
2589		};
2590
2591		blsp2_i2c6: i2c@c1ba000 {
2592			compatible = "qcom,i2c-qup-v2.2.1";
2593			reg = <0x0c1ba000 0x600>;
2594			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
2595
2596			clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>,
2597				 <&gcc GCC_BLSP2_AHB_CLK>;
2598			clock-names = "core", "iface";
2599			dmas = <&blsp2_dma 16>, <&blsp2_dma 17>;
2600			dma-names = "tx", "rx";
2601			pinctrl-names = "default", "sleep";
2602			pinctrl-0 = <&blsp2_i2c6_default>;
2603			pinctrl-1 = <&blsp2_i2c6_sleep>;
2604			clock-frequency = <400000>;
2605
2606			status = "disabled";
2607			#address-cells = <1>;
2608			#size-cells = <0>;
2609		};
2610
2611		blsp2_spi1: spi@c1b5000 {
2612			compatible = "qcom,spi-qup-v2.2.1";
2613			reg = <0x0c1b5000 0x600>;
2614			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
2615
2616			clocks = <&gcc GCC_BLSP2_QUP1_SPI_APPS_CLK>,
2617				 <&gcc GCC_BLSP2_AHB_CLK>;
2618			clock-names = "core", "iface";
2619			dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
2620			dma-names = "tx", "rx";
2621			pinctrl-names = "default";
2622			pinctrl-0 = <&blsp2_spi1_default>;
2623
2624			status = "disabled";
2625			#address-cells = <1>;
2626			#size-cells = <0>;
2627		};
2628
2629		blsp2_spi2: spi@c1b6000 {
2630			compatible = "qcom,spi-qup-v2.2.1";
2631			reg = <0x0c1b6000 0x600>;
2632			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
2633
2634			clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>,
2635				 <&gcc GCC_BLSP2_AHB_CLK>;
2636			clock-names = "core", "iface";
2637			dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
2638			dma-names = "tx", "rx";
2639			pinctrl-names = "default";
2640			pinctrl-0 = <&blsp2_spi2_default>;
2641
2642			status = "disabled";
2643			#address-cells = <1>;
2644			#size-cells = <0>;
2645		};
2646
2647		blsp2_spi3: spi@c1b7000 {
2648			compatible = "qcom,spi-qup-v2.2.1";
2649			reg = <0x0c1b7000 0x600>;
2650			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
2651
2652			clocks = <&gcc GCC_BLSP2_QUP3_SPI_APPS_CLK>,
2653				 <&gcc GCC_BLSP2_AHB_CLK>;
2654			clock-names = "core", "iface";
2655			dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
2656			dma-names = "tx", "rx";
2657			pinctrl-names = "default";
2658			pinctrl-0 = <&blsp2_spi3_default>;
2659
2660			status = "disabled";
2661			#address-cells = <1>;
2662			#size-cells = <0>;
2663		};
2664
2665		blsp2_spi4: spi@c1b8000 {
2666			compatible = "qcom,spi-qup-v2.2.1";
2667			reg = <0x0c1b8000 0x600>;
2668			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
2669
2670			clocks = <&gcc GCC_BLSP2_QUP4_SPI_APPS_CLK>,
2671				 <&gcc GCC_BLSP2_AHB_CLK>;
2672			clock-names = "core", "iface";
2673			dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
2674			dma-names = "tx", "rx";
2675			pinctrl-names = "default";
2676			pinctrl-0 = <&blsp2_spi4_default>;
2677
2678			status = "disabled";
2679			#address-cells = <1>;
2680			#size-cells = <0>;
2681		};
2682
2683		blsp2_spi5: spi@c1b9000 {
2684			compatible = "qcom,spi-qup-v2.2.1";
2685			reg = <0x0c1b9000 0x600>;
2686			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
2687
2688			clocks = <&gcc GCC_BLSP2_QUP5_SPI_APPS_CLK>,
2689				 <&gcc GCC_BLSP2_AHB_CLK>;
2690			clock-names = "core", "iface";
2691			dmas = <&blsp2_dma 14>, <&blsp2_dma 15>;
2692			dma-names = "tx", "rx";
2693			pinctrl-names = "default";
2694			pinctrl-0 = <&blsp2_spi5_default>;
2695
2696			status = "disabled";
2697			#address-cells = <1>;
2698			#size-cells = <0>;
2699		};
2700
2701		blsp2_spi6: spi@c1ba000 {
2702			compatible = "qcom,spi-qup-v2.2.1";
2703			reg = <0x0c1ba000 0x600>;
2704			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
2705
2706			clocks = <&gcc GCC_BLSP2_QUP6_SPI_APPS_CLK>,
2707				 <&gcc GCC_BLSP2_AHB_CLK>;
2708			clock-names = "core", "iface";
2709			dmas = <&blsp2_dma 16>, <&blsp2_dma 17>;
2710			dma-names = "tx", "rx";
2711			pinctrl-names = "default";
2712			pinctrl-0 = <&blsp2_spi6_default>;
2713
2714			status = "disabled";
2715			#address-cells = <1>;
2716			#size-cells = <0>;
2717		};
2718
2719		mmcc: clock-controller@c8c0000 {
2720			compatible = "qcom,mmcc-msm8998";
2721			#clock-cells = <1>;
2722			#reset-cells = <1>;
2723			#power-domain-cells = <1>;
2724			reg = <0xc8c0000 0x40000>;
2725
2726			clock-names = "xo",
2727				      "gpll0",
2728				      "dsi0dsi",
2729				      "dsi0byte",
2730				      "dsi1dsi",
2731				      "dsi1byte",
2732				      "hdmipll",
2733				      "dplink",
2734				      "dpvco",
2735				      "gpll0_div";
2736			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
2737				 <&gcc GCC_MMSS_GPLL0_CLK>,
2738				 <&mdss_dsi0_phy 1>,
2739				 <&mdss_dsi0_phy 0>,
2740				 <&mdss_dsi1_phy 1>,
2741				 <&mdss_dsi1_phy 0>,
2742				 <0>,
2743				 <0>,
2744				 <0>,
2745				 <&gcc GCC_MMSS_GPLL0_DIV_CLK>;
2746		};
2747
2748		mdss: display-subsystem@c900000 {
2749			compatible = "qcom,msm8998-mdss";
2750			reg = <0x0c900000 0x1000>;
2751			reg-names = "mdss";
2752
2753			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
2754			interrupt-controller;
2755			#interrupt-cells = <1>;
2756
2757			clocks = <&mmcc MDSS_AHB_CLK>,
2758				 <&mmcc MDSS_AXI_CLK>,
2759				 <&mmcc MDSS_MDP_CLK>;
2760			clock-names = "iface",
2761				      "bus",
2762				      "core";
2763
2764			power-domains = <&mmcc MDSS_GDSC>;
2765			iommus = <&mmss_smmu 0>;
2766
2767			#address-cells = <1>;
2768			#size-cells = <1>;
2769			ranges;
2770
2771			status = "disabled";
2772
2773			mdss_mdp: display-controller@c901000 {
2774				compatible = "qcom,msm8998-dpu";
2775				reg = <0x0c901000 0x8f000>,
2776				      <0x0c9a8e00 0xf0>,
2777				      <0x0c9b0000 0x2008>,
2778				      <0x0c9b8000 0x1040>;
2779				reg-names = "mdp",
2780					    "regdma",
2781					    "vbif",
2782					    "vbif_nrt";
2783
2784				interrupt-parent = <&mdss>;
2785				interrupts = <0>;
2786
2787				clocks = <&mmcc MDSS_AHB_CLK>,
2788					 <&mmcc MDSS_AXI_CLK>,
2789					 <&mmcc MNOC_AHB_CLK>,
2790					 <&mmcc MDSS_MDP_CLK>,
2791					 <&mmcc MDSS_VSYNC_CLK>;
2792				clock-names = "iface",
2793					      "bus",
2794					      "mnoc",
2795					      "core",
2796					      "vsync";
2797
2798				assigned-clocks = <&mmcc MDSS_VSYNC_CLK>;
2799				assigned-clock-rates = <19200000>;
2800
2801				operating-points-v2 = <&mdp_opp_table>;
2802				power-domains = <&rpmpd MSM8998_VDDMX>;
2803
2804				mdp_opp_table: opp-table {
2805					compatible = "operating-points-v2";
2806
2807					opp-171430000 {
2808						opp-hz = /bits/ 64 <171430000>;
2809						required-opps = <&rpmpd_opp_low_svs>;
2810					};
2811
2812					opp-275000000 {
2813						opp-hz = /bits/ 64 <275000000>;
2814						required-opps = <&rpmpd_opp_svs>;
2815					};
2816
2817					opp-330000000 {
2818						opp-hz = /bits/ 64 <330000000>;
2819						required-opps = <&rpmpd_opp_nom>;
2820					};
2821
2822					opp-412500000 {
2823						opp-hz = /bits/ 64 <412500000>;
2824						required-opps = <&rpmpd_opp_turbo>;
2825					};
2826				};
2827
2828				ports {
2829					#address-cells = <1>;
2830					#size-cells = <0>;
2831
2832					port@0 {
2833						reg = <0>;
2834
2835						dpu_intf1_out: endpoint {
2836							remote-endpoint = <&mdss_dsi0_in>;
2837						};
2838					};
2839
2840					port@1 {
2841						reg = <1>;
2842
2843						dpu_intf2_out: endpoint {
2844							remote-endpoint = <&mdss_dsi1_in>;
2845						};
2846					};
2847				};
2848			};
2849
2850			mdss_dsi0: dsi@c994000 {
2851				compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2852				reg = <0x0c994000 0x400>;
2853				reg-names = "dsi_ctrl";
2854
2855				interrupt-parent = <&mdss>;
2856				interrupts = <4>;
2857
2858				clocks = <&mmcc MDSS_BYTE0_CLK>,
2859					 <&mmcc MDSS_BYTE0_INTF_CLK>,
2860					 <&mmcc MDSS_PCLK0_CLK>,
2861					 <&mmcc MDSS_ESC0_CLK>,
2862					 <&mmcc MDSS_AHB_CLK>,
2863					 <&mmcc MDSS_AXI_CLK>;
2864				clock-names = "byte",
2865					      "byte_intf",
2866					      "pixel",
2867					      "core",
2868					      "iface",
2869					      "bus";
2870				assigned-clocks = <&mmcc BYTE0_CLK_SRC>,
2871						  <&mmcc PCLK0_CLK_SRC>;
2872				assigned-clock-parents = <&mdss_dsi0_phy 0>,
2873							 <&mdss_dsi0_phy 1>;
2874
2875				operating-points-v2 = <&dsi_opp_table>;
2876				power-domains = <&rpmpd MSM8998_VDDCX>;
2877
2878				phys = <&mdss_dsi0_phy>;
2879				phy-names = "dsi";
2880
2881				#address-cells = <1>;
2882				#size-cells = <0>;
2883
2884				status = "disabled";
2885
2886				ports {
2887					#address-cells = <1>;
2888					#size-cells = <0>;
2889
2890					port@0 {
2891						reg = <0>;
2892
2893						mdss_dsi0_in: endpoint {
2894							remote-endpoint = <&dpu_intf1_out>;
2895						};
2896					};
2897
2898					port@1 {
2899						reg = <1>;
2900
2901						mdss_dsi0_out: endpoint {
2902						};
2903					};
2904				};
2905			};
2906
2907			mdss_dsi0_phy: phy@c994400 {
2908				compatible = "qcom,dsi-phy-10nm-8998";
2909				reg = <0x0c994400 0x200>,
2910				      <0x0c994600 0x280>,
2911				      <0x0c994a00 0x1e0>;
2912				reg-names = "dsi_phy",
2913					    "dsi_phy_lane",
2914					    "dsi_pll";
2915
2916				clocks = <&mmcc MDSS_AHB_CLK>,
2917					 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2918				clock-names = "iface", "ref";
2919
2920				#clock-cells = <1>;
2921				#phy-cells = <0>;
2922
2923				status = "disabled";
2924			};
2925
2926			mdss_dsi1: dsi@c996000 {
2927				compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2928				reg = <0x0c996000 0x400>;
2929				reg-names = "dsi_ctrl";
2930
2931				interrupt-parent = <&mdss>;
2932				interrupts = <5>;
2933
2934				clocks = <&mmcc MDSS_BYTE1_CLK>,
2935					 <&mmcc MDSS_BYTE1_INTF_CLK>,
2936					 <&mmcc MDSS_PCLK1_CLK>,
2937					 <&mmcc MDSS_ESC1_CLK>,
2938					 <&mmcc MDSS_AHB_CLK>,
2939					 <&mmcc MDSS_AXI_CLK>;
2940				clock-names = "byte",
2941					      "byte_intf",
2942					      "pixel",
2943					      "core",
2944					      "iface",
2945					      "bus";
2946				assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
2947						  <&mmcc PCLK1_CLK_SRC>;
2948				assigned-clock-parents = <&mdss_dsi1_phy 0>,
2949							 <&mdss_dsi1_phy 1>;
2950
2951				operating-points-v2 = <&dsi_opp_table>;
2952				power-domains = <&rpmpd MSM8998_VDDCX>;
2953
2954				phys = <&mdss_dsi1_phy>;
2955				phy-names = "dsi";
2956
2957				#address-cells = <1>;
2958				#size-cells = <0>;
2959
2960				status = "disabled";
2961
2962				ports {
2963					#address-cells = <1>;
2964					#size-cells = <0>;
2965
2966					port@0 {
2967						reg = <0>;
2968
2969						mdss_dsi1_in: endpoint {
2970							remote-endpoint = <&dpu_intf2_out>;
2971						};
2972					};
2973
2974					port@1 {
2975						reg = <1>;
2976
2977						mdss_dsi1_out: endpoint {
2978						};
2979					};
2980				};
2981			};
2982
2983			mdss_dsi1_phy: phy@c996400 {
2984				compatible = "qcom,dsi-phy-10nm-8998";
2985				reg = <0x0c996400 0x200>,
2986				      <0x0c996600 0x280>,
2987				      <0x0c996a00 0x10e>;
2988				reg-names = "dsi_phy",
2989					    "dsi_phy_lane",
2990					    "dsi_pll";
2991
2992				clocks = <&mmcc MDSS_AHB_CLK>,
2993					 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2994				clock-names = "iface",
2995					      "ref";
2996
2997				#clock-cells = <1>;
2998				#phy-cells = <0>;
2999
3000				status = "disabled";
3001			};
3002		};
3003
3004		venus: video-codec@cc00000 {
3005			compatible = "qcom,msm8998-venus";
3006			reg = <0x0cc00000 0xff000>;
3007			interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
3008			power-domains = <&mmcc VIDEO_TOP_GDSC>;
3009			clocks = <&mmcc VIDEO_CORE_CLK>,
3010				 <&mmcc VIDEO_AHB_CLK>,
3011				 <&mmcc VIDEO_AXI_CLK>,
3012				 <&mmcc VIDEO_MAXI_CLK>;
3013			clock-names = "core", "iface", "bus", "mbus";
3014			iommus = <&mmss_smmu 0x400>,
3015				 <&mmss_smmu 0x401>,
3016				 <&mmss_smmu 0x40a>,
3017				 <&mmss_smmu 0x407>,
3018				 <&mmss_smmu 0x40e>,
3019				 <&mmss_smmu 0x40f>,
3020				 <&mmss_smmu 0x408>,
3021				 <&mmss_smmu 0x409>,
3022				 <&mmss_smmu 0x40b>,
3023				 <&mmss_smmu 0x40c>,
3024				 <&mmss_smmu 0x40d>,
3025				 <&mmss_smmu 0x410>,
3026				 <&mmss_smmu 0x421>,
3027				 <&mmss_smmu 0x428>,
3028				 <&mmss_smmu 0x429>,
3029				 <&mmss_smmu 0x42b>,
3030				 <&mmss_smmu 0x42c>,
3031				 <&mmss_smmu 0x42d>,
3032				 <&mmss_smmu 0x411>,
3033				 <&mmss_smmu 0x431>;
3034			memory-region = <&venus_mem>;
3035			status = "disabled";
3036
3037			video-decoder {
3038				compatible = "venus-decoder";
3039				clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
3040				clock-names = "core";
3041				power-domains = <&mmcc VIDEO_SUBCORE0_GDSC>;
3042			};
3043
3044			video-encoder {
3045				compatible = "venus-encoder";
3046				clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
3047				clock-names = "core";
3048				power-domains = <&mmcc VIDEO_SUBCORE1_GDSC>;
3049			};
3050		};
3051
3052		mmss_smmu: iommu@cd00000 {
3053			compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
3054			reg = <0x0cd00000 0x40000>;
3055			#iommu-cells = <1>;
3056
3057			clocks = <&mmcc MNOC_AHB_CLK>,
3058				 <&mmcc BIMC_SMMU_AHB_CLK>,
3059				 <&mmcc BIMC_SMMU_AXI_CLK>;
3060			clock-names = "iface-mm",
3061				      "iface-smmu",
3062				      "bus-smmu";
3063
3064			#global-interrupts = <0>;
3065			interrupts =
3066				<GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
3067				<GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
3068				<GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
3069				<GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
3070				<GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
3071				<GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
3072				<GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
3073				<GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
3074				<GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
3075				<GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
3076				<GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
3077				<GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
3078				<GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
3079				<GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
3080				<GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
3081				<GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
3082				<GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
3083				<GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
3084				<GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
3085				<GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
3086
3087			power-domains = <&mmcc BIMC_SMMU_GDSC>;
3088		};
3089
3090		remoteproc_adsp: remoteproc@17300000 {
3091			compatible = "qcom,msm8998-adsp-pas";
3092			reg = <0x17300000 0x4040>;
3093
3094			interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
3095					      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
3096					      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
3097					      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
3098					      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
3099			interrupt-names = "wdog", "fatal", "ready",
3100					  "handover", "stop-ack";
3101
3102			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
3103			clock-names = "xo";
3104
3105			memory-region = <&adsp_mem>;
3106
3107			qcom,smem-states = <&adsp_smp2p_out 0>;
3108			qcom,smem-state-names = "stop";
3109
3110			power-domains = <&rpmpd MSM8998_VDDCX>;
3111			power-domain-names = "cx";
3112
3113			status = "disabled";
3114
3115			glink-edge {
3116				interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
3117				label = "lpass";
3118				qcom,remote-pid = <2>;
3119				mboxes = <&apcs_glb 9>;
3120			};
3121		};
3122
3123		apcs_glb: mailbox@17911000 {
3124			compatible = "qcom,msm8998-apcs-hmss-global",
3125				     "qcom,msm8994-apcs-kpss-global";
3126			reg = <0x17911000 0x1000>;
3127
3128			#mbox-cells = <1>;
3129		};
3130
3131		timer@17920000 {
3132			#address-cells = <1>;
3133			#size-cells = <1>;
3134			ranges;
3135			compatible = "arm,armv7-timer-mem";
3136			reg = <0x17920000 0x1000>;
3137
3138			frame@17921000 {
3139				frame-number = <0>;
3140				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
3141					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
3142				reg = <0x17921000 0x1000>,
3143				      <0x17922000 0x1000>;
3144			};
3145
3146			frame@17923000 {
3147				frame-number = <1>;
3148				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
3149				reg = <0x17923000 0x1000>;
3150				status = "disabled";
3151			};
3152
3153			frame@17924000 {
3154				frame-number = <2>;
3155				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
3156				reg = <0x17924000 0x1000>;
3157				status = "disabled";
3158			};
3159
3160			frame@17925000 {
3161				frame-number = <3>;
3162				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
3163				reg = <0x17925000 0x1000>;
3164				status = "disabled";
3165			};
3166
3167			frame@17926000 {
3168				frame-number = <4>;
3169				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
3170				reg = <0x17926000 0x1000>;
3171				status = "disabled";
3172			};
3173
3174			frame@17927000 {
3175				frame-number = <5>;
3176				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
3177				reg = <0x17927000 0x1000>;
3178				status = "disabled";
3179			};
3180
3181			frame@17928000 {
3182				frame-number = <6>;
3183				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
3184				reg = <0x17928000 0x1000>;
3185				status = "disabled";
3186			};
3187		};
3188
3189		intc: interrupt-controller@17a00000 {
3190			compatible = "arm,gic-v3";
3191			reg = <0x17a00000 0x10000>,       /* GICD */
3192			      <0x17b00000 0x100000>;      /* GICR * 8 */
3193			#interrupt-cells = <3>;
3194			#address-cells = <1>;
3195			#size-cells = <1>;
3196			ranges;
3197			interrupt-controller;
3198			#redistributor-regions = <1>;
3199			redistributor-stride = <0x0 0x20000>;
3200			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
3201		};
3202
3203		wifi: wifi@18800000 {
3204			compatible = "qcom,wcn3990-wifi";
3205			status = "disabled";
3206			reg = <0x18800000 0x800000>;
3207			reg-names = "membase";
3208			memory-region = <&wlan_msa_mem>;
3209			clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
3210			clock-names = "cxo_ref_clk_pin";
3211			interrupts =
3212				<GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
3213				<GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
3214				<GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
3215				<GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
3216				<GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
3217				<GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
3218				<GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
3219				<GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
3220				<GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
3221				<GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
3222				<GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
3223				<GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
3224			iommus = <&anoc2_smmu 0x1900>,
3225				 <&anoc2_smmu 0x1901>;
3226			qcom,snoc-host-cap-8bit-quirk;
3227			qcom,no-msa-ready-indicator;
3228		};
3229	};
3230};
3231