xref: /linux/arch/arm64/boot/dts/qcom/agatti.dtsi (revision 2699bc6d062735f9fc430fe6dcf05b82ae8b2ab9)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (c) 2023, Linaro Ltd
4 *
5 * Based on sm6115.dtsi and previous efforts by Shawn Guo & Loic Poulain.
6 */
7
8#include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
9#include <dt-bindings/clock/qcom,dsi-phy-28nm.h>
10#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
11#include <dt-bindings/clock/qcom,qcm2290-gpucc.h>
12#include <dt-bindings/clock/qcom,rpmcc.h>
13#include <dt-bindings/dma/qcom-gpi.h>
14#include <dt-bindings/firmware/qcom,scm.h>
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include <dt-bindings/interconnect/qcom,qcm2290.h>
18#include <dt-bindings/interconnect/qcom,rpm-icc.h>
19#include <dt-bindings/power/qcom-rpmpd.h>
20#include <dt-bindings/soc/qcom,apr.h>
21#include <dt-bindings/sound/qcom,q6asm.h>
22#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
23
24/ {
25	interrupt-parent = <&intc>;
26
27	#address-cells = <2>;
28	#size-cells = <2>;
29
30	chosen { };
31
32	clocks {
33		xo_board: xo-board {
34			compatible = "fixed-clock";
35			#clock-cells = <0>;
36		};
37
38		sleep_clk: sleep-clk {
39			compatible = "fixed-clock";
40			clock-frequency = <32764>;
41			#clock-cells = <0>;
42		};
43	};
44
45	cpus {
46		#address-cells = <2>;
47		#size-cells = <0>;
48
49		cpu0: cpu@0 {
50			device_type = "cpu";
51			compatible = "arm,cortex-a53";
52			reg = <0x0 0x0>;
53			clocks = <&cpufreq_hw 0>;
54			capacity-dmips-mhz = <1024>;
55			dynamic-power-coefficient = <100>;
56			enable-method = "psci";
57			next-level-cache = <&l2_0>;
58			qcom,freq-domain = <&cpufreq_hw 0>;
59			power-domains = <&cpu_pd0>;
60			power-domain-names = "psci";
61			l2_0: l2-cache {
62				compatible = "cache";
63				cache-level = <2>;
64				cache-unified;
65			};
66		};
67
68		cpu1: cpu@1 {
69			device_type = "cpu";
70			compatible = "arm,cortex-a53";
71			reg = <0x0 0x1>;
72			clocks = <&cpufreq_hw 0>;
73			capacity-dmips-mhz = <1024>;
74			dynamic-power-coefficient = <100>;
75			enable-method = "psci";
76			next-level-cache = <&l2_0>;
77			qcom,freq-domain = <&cpufreq_hw 0>;
78			power-domains = <&cpu_pd1>;
79			power-domain-names = "psci";
80		};
81
82		cpu2: cpu@2 {
83			device_type = "cpu";
84			compatible = "arm,cortex-a53";
85			reg = <0x0 0x2>;
86			clocks = <&cpufreq_hw 0>;
87			capacity-dmips-mhz = <1024>;
88			dynamic-power-coefficient = <100>;
89			enable-method = "psci";
90			next-level-cache = <&l2_0>;
91			qcom,freq-domain = <&cpufreq_hw 0>;
92			power-domains = <&cpu_pd2>;
93			power-domain-names = "psci";
94		};
95
96		cpu3: cpu@3 {
97			device_type = "cpu";
98			compatible = "arm,cortex-a53";
99			reg = <0x0 0x3>;
100			clocks = <&cpufreq_hw 0>;
101			capacity-dmips-mhz = <1024>;
102			dynamic-power-coefficient = <100>;
103			enable-method = "psci";
104			next-level-cache = <&l2_0>;
105			qcom,freq-domain = <&cpufreq_hw 0>;
106			power-domains = <&cpu_pd3>;
107			power-domain-names = "psci";
108		};
109
110		cpu-map {
111			cluster0 {
112				core0 {
113					cpu = <&cpu0>;
114				};
115
116				core1 {
117					cpu = <&cpu1>;
118				};
119
120				core2 {
121					cpu = <&cpu2>;
122				};
123
124				core3 {
125					cpu = <&cpu3>;
126				};
127			};
128		};
129
130		domain-idle-states {
131			cluster_sleep: cluster-sleep-0 {
132				compatible = "domain-idle-state";
133				arm,psci-suspend-param = <0x41000043>;
134				entry-latency-us = <800>;
135				exit-latency-us = <2118>;
136				min-residency-us = <7376>;
137			};
138		};
139
140		idle-states {
141			entry-method = "psci";
142
143			cpu_sleep: cpu-sleep-0 {
144				compatible = "arm,idle-state";
145				idle-state-name = "power-collapse";
146				arm,psci-suspend-param = <0x40000003>;
147				entry-latency-us = <290>;
148				exit-latency-us = <376>;
149				min-residency-us = <1182>;
150				local-timer-stop;
151			};
152		};
153	};
154
155	firmware {
156		scm: scm {
157			compatible = "qcom,scm-qcm2290", "qcom,scm";
158			clocks = <&rpmcc RPM_SMD_CE1_CLK>;
159			clock-names = "core";
160			qcom,dload-mode = <&tcsr_regs 0x13000>;
161			#reset-cells = <1>;
162			interconnects = <&system_noc MASTER_CRYPTO_CORE0 RPM_ALWAYS_TAG
163					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
164		};
165	};
166
167	memory@40000000 {
168		device_type = "memory";
169		/* We expect the bootloader to fill in the size */
170		reg = <0 0x40000000 0 0>;
171	};
172
173	pmu {
174		compatible = "arm,cortex-a53-pmu";
175		interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
176	};
177
178	psci {
179		compatible = "arm,psci-1.0";
180		method = "smc";
181
182		cpu_pd0: power-domain-cpu0 {
183			#power-domain-cells = <0>;
184			power-domains = <&cluster_pd>;
185			domain-idle-states = <&cpu_sleep>;
186		};
187
188		cpu_pd1: power-domain-cpu1 {
189			#power-domain-cells = <0>;
190			power-domains = <&cluster_pd>;
191			domain-idle-states = <&cpu_sleep>;
192		};
193
194		cpu_pd2: power-domain-cpu2 {
195			#power-domain-cells = <0>;
196			power-domains = <&cluster_pd>;
197			domain-idle-states = <&cpu_sleep>;
198		};
199
200		cpu_pd3: power-domain-cpu3 {
201			#power-domain-cells = <0>;
202			power-domains = <&cluster_pd>;
203			domain-idle-states = <&cpu_sleep>;
204		};
205
206		cluster_pd: power-domain-cpu-cluster {
207			#power-domain-cells = <0>;
208			power-domains = <&mpm>;
209			domain-idle-states = <&cluster_sleep>;
210		};
211	};
212
213	rpm: remoteproc {
214		compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc";
215
216		glink-edge {
217			compatible = "qcom,glink-rpm";
218			interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
219			qcom,rpm-msg-ram = <&rpm_msg_ram>;
220			mboxes = <&apcs_glb 0>;
221
222			rpm_requests: rpm-requests {
223				compatible = "qcom,rpm-qcm2290", "qcom,glink-smd-rpm";
224				qcom,glink-channels = "rpm_requests";
225
226				rpmcc: clock-controller {
227					compatible = "qcom,rpmcc-qcm2290", "qcom,rpmcc";
228					clocks = <&xo_board>;
229					clock-names = "xo";
230					#clock-cells = <1>;
231				};
232
233				rpmpd: power-controller {
234					compatible = "qcom,qcm2290-rpmpd";
235					#power-domain-cells = <1>;
236					operating-points-v2 = <&rpmpd_opp_table>;
237
238					rpmpd_opp_table: opp-table {
239						compatible = "operating-points-v2";
240
241						rpmpd_opp_min_svs: opp1 {
242							opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
243						};
244
245						rpmpd_opp_low_svs: opp2 {
246							opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
247						};
248
249						rpmpd_opp_svs: opp3 {
250							opp-level = <RPM_SMD_LEVEL_SVS>;
251						};
252
253						rpmpd_opp_svs_plus: opp4 {
254							opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
255						};
256
257						rpmpd_opp_nom: opp5 {
258							opp-level = <RPM_SMD_LEVEL_NOM>;
259						};
260
261						rpmpd_opp_nom_plus: opp6 {
262							opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
263						};
264
265						rpmpd_opp_turbo: opp7 {
266							opp-level = <RPM_SMD_LEVEL_TURBO>;
267						};
268
269						rpmpd_opp_turbo_plus: opp8 {
270							opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
271						};
272					};
273				};
274			};
275		};
276
277		mpm: interrupt-controller {
278			compatible = "qcom,mpm";
279			qcom,rpm-msg-ram = <&apss_mpm>;
280			interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
281			mboxes = <&apcs_glb 1>;
282			interrupt-controller;
283			#interrupt-cells = <2>;
284			#power-domain-cells = <0>;
285			interrupt-parent = <&intc>;
286			qcom,mpm-pin-count = <96>;
287			qcom,mpm-pin-map = <2 275>,  /* TSENS0 uplow */
288					   <5 296>,  /* Soundwire master_irq */
289					   <12 422>, /* DWC3 ss_phy_irq */
290					   <24 79>,  /* Soundwire wake_irq */
291					   <86 183>, /* MPM wake, SPMI */
292					   <90 260>; /* QUSB2_PHY DP+DM */
293		};
294	};
295
296	reserved_memory: reserved-memory {
297		#address-cells = <2>;
298		#size-cells = <2>;
299		ranges;
300
301		hyp_mem: hyp@45700000 {
302			reg = <0x0 0x45700000 0x0 0x600000>;
303			no-map;
304		};
305
306		xbl_aop_mem: xbl-aop@45e00000 {
307			reg = <0x0 0x45e00000 0x0 0x140000>;
308			no-map;
309		};
310
311		sec_apps_mem: sec-apps@45fff000 {
312			reg = <0x0 0x45fff000 0x0 0x1000>;
313			no-map;
314		};
315
316		smem_mem: smem@46000000 {
317			compatible = "qcom,smem";
318			reg = <0x0 0x46000000 0x0 0x200000>;
319			no-map;
320
321			hwlocks = <&tcsr_mutex 3>;
322			qcom,rpm-msg-ram = <&rpm_msg_ram>;
323		};
324
325		pil_modem_mem: modem@4ab00000 {
326			reg = <0x0 0x4ab00000 0x0 0x6900000>;
327			no-map;
328		};
329
330		pil_video_mem: video@51400000 {
331			reg = <0x0 0x51400000 0x0 0x500000>;
332			no-map;
333		};
334
335		wlan_msa_mem: wlan-msa@51900000 {
336			reg = <0x0 0x51900000 0x0 0x100000>;
337			no-map;
338		};
339
340		pil_adsp_mem: adsp@51a00000 {
341			reg = <0x0 0x51a00000 0x0 0x1c00000>;
342			no-map;
343		};
344
345		pil_ipa_fw_mem: ipa-fw@53600000 {
346			reg = <0x0 0x53600000 0x0 0x10000>;
347			no-map;
348		};
349
350		pil_ipa_gsi_mem: ipa-gsi@53610000 {
351			reg = <0x0 0x53610000 0x0 0x5000>;
352			no-map;
353		};
354
355		pil_gpu_mem: zap@53615000 {
356			compatible = "shared-dma-pool";
357			reg = <0x0 0x53615000 0x0 0x2000>;
358			no-map;
359		};
360
361		cont_splash_memory: framebuffer@5c000000 {
362			reg = <0x0 0x5c000000 0x0 0x00f00000>;
363			no-map;
364		};
365
366		dfps_data_memory: dpfs-data@5cf00000 {
367			reg = <0x0 0x5cf00000 0x0 0x0100000>;
368			no-map;
369		};
370
371		removed_mem: reserved@60000000 {
372			reg = <0x0 0x60000000 0x0 0x3900000>;
373			no-map;
374		};
375
376		rmtfs_mem: memory@89b01000 {
377			compatible = "qcom,rmtfs-mem";
378			reg = <0x0 0x89b01000 0x0 0x200000>;
379			no-map;
380
381			qcom,client-id = <1>;
382			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA QCOM_SCM_VMID_NAV>;
383		};
384	};
385
386	smp2p-adsp {
387		compatible = "qcom,smp2p";
388		qcom,smem = <443>, <429>;
389
390		interrupts = <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>;
391
392		mboxes = <&apcs_glb 10>;
393
394		qcom,local-pid = <0>;
395		qcom,remote-pid = <2>;
396
397		adsp_smp2p_out: master-kernel {
398			qcom,entry-name = "master-kernel";
399			#qcom,smem-state-cells = <1>;
400		};
401
402		adsp_smp2p_in: slave-kernel {
403			qcom,entry-name = "slave-kernel";
404			interrupt-controller;
405			#interrupt-cells = <2>;
406		};
407	};
408
409	smp2p-mpss {
410		compatible = "qcom,smp2p";
411		qcom,smem = <435>, <428>;
412
413		interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
414
415		mboxes = <&apcs_glb 14>;
416
417		qcom,local-pid = <0>;
418		qcom,remote-pid = <1>;
419
420		modem_smp2p_out: master-kernel {
421			qcom,entry-name = "master-kernel";
422			#qcom,smem-state-cells = <1>;
423		};
424
425		modem_smp2p_in: slave-kernel {
426			qcom,entry-name = "slave-kernel";
427			interrupt-controller;
428			#interrupt-cells = <2>;
429		};
430
431		wlan_smp2p_in: wlan-wpss-to-ap {
432			qcom,entry-name = "wlan";
433			interrupt-controller;
434			#interrupt-cells = <2>;
435		};
436	};
437
438	soc: soc@0 {
439		compatible = "simple-bus";
440		#address-cells = <2>;
441		#size-cells = <2>;
442		ranges = <0 0 0 0 0x10 0>;
443		dma-ranges = <0 0 0 0 0x10 0>;
444
445		tcsr_mutex: hwlock@340000 {
446			compatible = "qcom,tcsr-mutex";
447			reg = <0x0 0x00340000 0x0 0x20000>;
448			#hwlock-cells = <1>;
449		};
450
451		tcsr_regs: syscon@3c0000 {
452			compatible = "qcom,qcm2290-tcsr", "syscon";
453			reg = <0x0 0x003c0000 0x0 0x40000>;
454		};
455
456		tlmm: pinctrl@500000 {
457			compatible = "qcom,qcm2290-tlmm";
458			reg = <0x0 0x00500000 0x0 0x300000>;
459			interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
460			gpio-controller;
461			gpio-ranges = <&tlmm 0 0 127>;
462			wakeup-parent = <&mpm>;
463			#gpio-cells = <2>;
464			interrupt-controller;
465			#interrupt-cells = <2>;
466
467			qup_i2c0_default: qup-i2c0-default-state {
468				pins = "gpio0", "gpio1";
469				function = "qup0";
470				drive-strength = <2>;
471				bias-pull-up;
472			};
473
474			qup_i2c1_default: qup-i2c1-default-state {
475				pins = "gpio4", "gpio5";
476				function = "qup1";
477				drive-strength = <2>;
478				bias-pull-up;
479			};
480
481			qup_i2c2_default: qup-i2c2-default-state {
482				pins = "gpio6", "gpio7";
483				function = "qup2";
484				drive-strength = <2>;
485				bias-pull-up;
486			};
487
488			qup_i2c3_default: qup-i2c3-default-state {
489				pins = "gpio8", "gpio9";
490				function = "qup3";
491				drive-strength = <2>;
492				bias-pull-up;
493			};
494
495			qup_i2c4_default: qup-i2c4-default-state {
496				pins = "gpio12", "gpio13";
497				function = "qup4";
498				drive-strength = <2>;
499				bias-pull-up;
500			};
501
502			qup_i2c5_default: qup-i2c5-default-state {
503				pins = "gpio14", "gpio15";
504				function = "qup5";
505				drive-strength = <2>;
506				bias-pull-up;
507			};
508
509			qup_spi0_default: qup-spi0-default-state {
510				pins = "gpio0", "gpio1","gpio2", "gpio3";
511				function = "qup0";
512				drive-strength = <2>;
513				bias-pull-up;
514			};
515
516			qup_spi1_default: qup-spi1-default-state {
517				pins = "gpio4", "gpio5", "gpio69", "gpio70";
518				function = "qup1";
519				drive-strength = <2>;
520				bias-pull-up;
521			};
522
523			qup_spi2_default: qup-spi2-default-state {
524				pins = "gpio6", "gpio7", "gpio71", "gpio80";
525				function = "qup2";
526				drive-strength = <2>;
527				bias-pull-up;
528			};
529
530			qup_spi3_default: qup-spi3-default-state {
531				pins = "gpio8", "gpio9", "gpio10", "gpio11";
532				function = "qup3";
533				drive-strength = <2>;
534				bias-pull-up;
535			};
536
537			qup_spi4_default: qup-spi4-default-state {
538				pins = "gpio12", "gpio13", "gpio96", "gpio97";
539				function = "qup4";
540				drive-strength = <2>;
541				bias-pull-up;
542			};
543
544			qup_spi5_default: qup-spi5-default-state {
545				pins = "gpio14", "gpio15", "gpio16", "gpio17";
546				function = "qup5";
547				drive-strength = <2>;
548				bias-pull-up;
549			};
550
551			qup_uart0_default: qup-uart0-default-state {
552				pins = "gpio0", "gpio1", "gpio2", "gpio3";
553				function = "qup0";
554				drive-strength = <2>;
555				bias-disable;
556			};
557
558			qup_uart1_default: qup-uart1-default-state {
559				pins = "gpio4", "gpio5", "gpio69", "gpio70";
560				function = "qup1";
561				drive-strength = <2>;
562				bias-disable;
563			};
564
565			qup_uart2_default: qup-uart2-default-state {
566				pins = "gpio6", "gpio7", "gpio71", "gpio80";
567				function = "qup2";
568				drive-strength = <2>;
569				bias-disable;
570			};
571
572			qup_uart3_default: qup-uart3-default-state {
573				pins = "gpio8", "gpio9", "gpio10", "gpio11";
574				function = "qup3";
575				drive-strength = <2>;
576				bias-disable;
577			};
578
579			qup_uart4_default: qup-uart4-default-state {
580				pins = "gpio12", "gpio13";
581				function = "qup4";
582				drive-strength = <2>;
583				bias-disable;
584			};
585
586			qup_uart5_default: qup-uart5-default-state {
587				pins = "gpio14", "gpio15", "gpio16", "gpio17";
588				function = "qup5";
589				drive-strength = <2>;
590				bias-disable;
591			};
592
593			cci0_default: cci0-default-state {
594				pins = "gpio22", "gpio23";
595				function = "cci_i2c";
596				drive-strength = <2>;
597				bias-disable;
598			};
599
600			cci1_default: cci1-default-state {
601				pins = "gpio29", "gpio30";
602				function = "cci_i2c";
603				drive-strength = <2>;
604				bias-disable;
605			};
606
607			mclk0_default: mclk0-default-state {
608				pins = "gpio20";
609				function = "cam_mclk";
610				drive-strength = <16>;
611				bias-disable;
612			};
613
614			mclk1_default: mclk1-default-state {
615				pins = "gpio21";
616				function = "cam_mclk";
617				drive-strength = <16>;
618				bias-disable;
619			};
620
621			mclk2_default: mclk2-default-state {
622				pins = "gpio27";
623				function = "cam_mclk";
624				drive-strength = <16>;
625				bias-disable;
626			};
627
628			mclk3_default: mclk3-default-state {
629				pins = "gpio28";
630				function = "cam_mclk";
631				drive-strength = <16>;
632				bias-disable;
633			};
634
635			sdc1_state_on: sdc1-on-state {
636				clk-pins {
637					pins = "sdc1_clk";
638					drive-strength = <16>;
639					bias-disable;
640				};
641
642				cmd-pins {
643					pins = "sdc1_cmd";
644					drive-strength = <10>;
645					bias-pull-up;
646				};
647
648				data-pins {
649					pins = "sdc1_data";
650					drive-strength = <10>;
651					bias-pull-up;
652				};
653
654				rclk-pins {
655					pins = "sdc1_rclk";
656					bias-pull-down;
657				};
658			};
659
660			sdc1_state_off: sdc1-off-state {
661				clk-pins {
662					pins = "sdc1_clk";
663					drive-strength = <2>;
664					bias-disable;
665				};
666
667				cmd-pins {
668					pins = "sdc1_cmd";
669					drive-strength = <2>;
670					bias-pull-up;
671				};
672
673				data-pins {
674					pins = "sdc1_data";
675					drive-strength = <2>;
676					bias-pull-up;
677				};
678
679				rclk-pins {
680					pins = "sdc1_rclk";
681					bias-pull-down;
682				};
683			};
684
685			sdc2_state_on: sdc2-on-state {
686				clk-pins {
687					pins = "sdc2_clk";
688					drive-strength = <16>;
689					bias-disable;
690				};
691
692				cmd-pins {
693					pins = "sdc2_cmd";
694					drive-strength = <10>;
695					bias-pull-up;
696				};
697
698				data-pins {
699					pins = "sdc2_data";
700					drive-strength = <10>;
701					bias-pull-up;
702				};
703			};
704
705			sdc2_state_off: sdc2-off-state {
706				clk-pins {
707					pins = "sdc2_clk";
708					drive-strength = <2>;
709					bias-disable;
710				};
711
712				cmd-pins {
713					pins = "sdc2_cmd";
714					drive-strength = <2>;
715					bias-pull-up;
716				};
717
718				data-pins {
719					pins = "sdc2_data";
720					drive-strength = <2>;
721					bias-pull-up;
722				};
723			};
724		};
725
726		lpass_tlmm: pinctrl@a7c0000 {
727			compatible = "qcom,qcm2290-lpass-lpi-pinctrl",
728				     "qcom,sm6115-lpass-lpi-pinctrl";
729			reg = <0x0 0x0a7c0000 0x0 0x20000>,
730			      <0x0 0x0a950000 0x0 0x10000>;
731
732			clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
733			clock-names = "audio";
734
735			gpio-controller;
736			#gpio-cells = <2>;
737			gpio-ranges = <&lpass_tlmm 0 0 19>;
738
739			lpi_i2s2_active: lpi-i2s2-active-state {
740				sck-pins {
741					pins = "gpio10";
742					function = "i2s2_clk";
743					bias-disable;
744					drive-strength = <8>;
745				};
746
747				ws-pins {
748					pins = "gpio11";
749					function = "i2s2_ws";
750					bias-disable;
751					drive-strength = <8>;
752				};
753
754				data-pins {
755					pins = "gpio12";
756					function = "i2s2_data";
757					bias-disable;
758					drive-strength = <8>;
759				};
760			};
761		};
762
763		gcc: clock-controller@1400000 {
764			compatible = "qcom,gcc-qcm2290";
765			reg = <0x0 0x01400000 0x0 0x1f0000>;
766			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
767			clock-names = "bi_tcxo", "sleep_clk";
768			#clock-cells = <1>;
769			#reset-cells = <1>;
770			#power-domain-cells = <1>;
771		};
772
773		usb_hsphy: phy@1613000 {
774			compatible = "qcom,qcm2290-qusb2-phy";
775			reg = <0x0 0x01613000 0x0 0x180>;
776
777			clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
778				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
779			clock-names = "cfg_ahb", "ref";
780
781			resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
782			nvmem-cells = <&qusb2_hstx_trim>;
783			#phy-cells = <0>;
784
785			status = "disabled";
786		};
787
788		usb_qmpphy: phy@1615000 {
789			compatible = "qcom,qcm2290-qmp-usb3-phy";
790			reg = <0x0 0x01615000 0x0 0x1000>;
791
792			clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
793				 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
794				 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
795				 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
796			clock-names = "cfg_ahb",
797				      "ref",
798				      "com_aux",
799				      "pipe";
800
801			resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
802				 <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
803			reset-names = "phy",
804				      "phy_phy";
805
806			#clock-cells = <0>;
807			clock-output-names = "usb3_phy_pipe_clk_src";
808
809			#phy-cells = <0>;
810			orientation-switch;
811
812			qcom,tcsr-reg = <&tcsr_regs 0xb244>;
813
814			status = "disabled";
815
816			ports {
817				#address-cells = <1>;
818				#size-cells = <0>;
819
820				port@0 {
821					reg = <0>;
822
823					usb_qmpphy_out: endpoint {
824					};
825				};
826
827				port@1 {
828					reg = <1>;
829
830					usb_qmpphy_usb_ss_in: endpoint {
831						remote-endpoint = <&usb_dwc3_ss>;
832					};
833				};
834			};
835		};
836
837		system_noc: interconnect@1880000 {
838			compatible = "qcom,qcm2290-snoc";
839			reg = <0x0 0x01880000 0x0 0x60200>;
840			#interconnect-cells = <2>;
841
842			qup_virt: interconnect-qup {
843				compatible = "qcom,qcm2290-qup-virt";
844				#interconnect-cells = <2>;
845			};
846
847			mmnrt_virt: interconnect-mmnrt {
848				compatible = "qcom,qcm2290-mmnrt-virt";
849				#interconnect-cells = <2>;
850			};
851
852			mmrt_virt: interconnect-mmrt {
853				compatible = "qcom,qcm2290-mmrt-virt";
854				#interconnect-cells = <2>;
855			};
856		};
857
858		config_noc: interconnect@1900000 {
859			compatible = "qcom,qcm2290-cnoc";
860			reg = <0x0 0x01900000 0x0 0x8200>;
861			#interconnect-cells = <2>;
862		};
863
864		cryptobam: dma-controller@1b04000 {
865			compatible = "qcom,bam-v1.7.0";
866			reg = <0x0 0x01b04000 0x0 0x24000>;
867			interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
868			clocks = <&rpmcc RPM_SMD_CE1_CLK>;
869			clock-names = "bam_clk";
870			#dma-cells = <1>;
871			qcom,ee = <0>;
872			qcom,controlled-remotely;
873			iommus = <&apps_smmu 0x0084 0x11>,
874				 <&apps_smmu 0x0086 0x11>;
875		};
876
877		crypto: crypto@1b3a000 {
878			compatible = "qcom,qcm2290-qce", "qcom,ipq4019-qce", "qcom,qce";
879			reg = <0x0 0x01b3a000 0x0 0x6000>;
880			clocks = <&rpmcc RPM_SMD_CE1_CLK>;
881			clock-names = "core";
882			dmas = <&cryptobam 6>, <&cryptobam 7>;
883			dma-names = "rx", "tx";
884			iommus = <&apps_smmu 0x0084 0x11>,
885				 <&apps_smmu 0x0086 0x11>;
886		};
887
888		qfprom@1b44000 {
889			compatible = "qcom,qcm2290-qfprom", "qcom,qfprom";
890			reg = <0x0 0x01b44000 0x0 0x3000>;
891			#address-cells = <1>;
892			#size-cells = <1>;
893
894			qusb2_hstx_trim: hstx-trim@25b {
895				reg = <0x25b 0x1>;
896				bits = <1 4>;
897			};
898
899			gpu_speed_bin: gpu-speed-bin@2006 {
900				reg = <0x2006 0x2>;
901				bits = <5 8>;
902			};
903		};
904
905		pmu@1b8e300 {
906			compatible = "qcom,qcm2290-cpu-bwmon", "qcom,sdm845-bwmon";
907			reg = <0x0 0x01b8e300 0x0 0x600>;
908			interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
909
910			operating-points-v2 = <&cpu_bwmon_opp_table>;
911			interconnects = <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG
912					 &bimc SLAVE_EBI1 RPM_ACTIVE_TAG>;
913
914			cpu_bwmon_opp_table: opp-table {
915				compatible = "operating-points-v2";
916
917				opp-0 {
918					opp-peak-kBps = <(200 * 4 * 1000)>;
919				};
920
921				opp-1 {
922					opp-peak-kBps = <(300 * 4 * 1000)>;
923				};
924
925				opp-2 {
926					opp-peak-kBps = <(451 * 4 * 1000)>;
927				};
928
929				opp-3 {
930					opp-peak-kBps = <(547 * 4 * 1000)>;
931				};
932
933				opp-4 {
934					opp-peak-kBps = <(681 * 4 * 1000)>;
935				};
936
937				opp-5 {
938					opp-peak-kBps = <(768 * 4 * 1000)>;
939				};
940
941				opp-6 {
942					opp-peak-kBps = <(1017 * 4 * 1000)>;
943				};
944
945				opp-7 {
946					opp-peak-kBps = <(1353 * 4 * 1000)>;
947				};
948
949				opp-8 {
950					opp-peak-kBps = <(1555 * 4 * 1000)>;
951				};
952
953				opp-9 {
954					opp-peak-kBps = <(1804 * 4 * 1000)>;
955				};
956			};
957		};
958
959		spmi_bus: spmi@1c40000 {
960			compatible = "qcom,spmi-pmic-arb";
961			reg = <0x0 0x01c40000 0x0 0x1100>,
962			      <0x0 0x01e00000 0x0 0x2000000>,
963			      <0x0 0x03e00000 0x0 0x100000>,
964			      <0x0 0x03f00000 0x0 0xa0000>,
965			      <0x0 0x01c0a000 0x0 0x26000>;
966			reg-names = "core",
967				    "chnls",
968				    "obsrvr",
969				    "intr",
970				    "cnfg";
971			interrupts-extended = <&mpm 86 IRQ_TYPE_LEVEL_HIGH>;
972			interrupt-names = "periph_irq";
973			qcom,ee = <0>;
974			qcom,channel = <0>;
975			#address-cells = <2>;
976			#size-cells = <0>;
977			interrupt-controller;
978			#interrupt-cells = <4>;
979		};
980
981		tsens0: thermal-sensor@4411000 {
982			compatible = "qcom,qcm2290-tsens", "qcom,tsens-v2";
983			reg = <0x0 0x04411000 0x0 0x1ff>,
984			      <0x0 0x04410000 0x0 0x8>;
985			#qcom,sensors = <10>;
986			interrupts-extended = <&mpm 2 IRQ_TYPE_LEVEL_HIGH>,
987					      <&intc GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
988			interrupt-names = "uplow", "critical";
989			#thermal-sensor-cells = <1>;
990		};
991
992		rng: rng@4453000 {
993			compatible = "qcom,prng-ee";
994			reg = <0x0 0x04453000 0x0 0x1000>;
995			clocks = <&rpmcc RPM_SMD_HWKM_CLK>;
996			clock-names = "core";
997		};
998
999		bimc: interconnect@4480000 {
1000			compatible = "qcom,qcm2290-bimc";
1001			reg = <0x0 0x04480000 0x0 0x80000>;
1002			#interconnect-cells = <2>;
1003		};
1004
1005		rpm_msg_ram: sram@45f0000 {
1006			compatible = "qcom,rpm-msg-ram", "mmio-sram";
1007			reg = <0x0 0x045f0000 0x0 0x7000>;
1008			#address-cells = <1>;
1009			#size-cells = <1>;
1010			ranges = <0 0x0 0x045f0000 0x7000>;
1011
1012			apss_mpm: sram@1b8 {
1013				reg = <0x1b8 0x48>;
1014			};
1015		};
1016
1017		sram@4690000 {
1018			compatible = "qcom,rpm-stats";
1019			reg = <0x0 0x04690000 0x0 0x10000>;
1020		};
1021
1022		sdhc_1: mmc@4744000 {
1023			compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
1024			reg = <0x0 0x04744000 0x0 0x1000>,
1025			      <0x0 0x04745000 0x0 0x1000>,
1026			      <0x0 0x04748000 0x0 0x8000>;
1027			reg-names = "hc",
1028				    "cqhci",
1029				    "ice";
1030
1031			interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
1032				     <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1033			interrupt-names = "hc_irq", "pwr_irq";
1034
1035			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1036				 <&gcc GCC_SDCC1_APPS_CLK>,
1037				 <&rpmcc RPM_SMD_XO_CLK_SRC>,
1038				 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
1039			clock-names = "iface",
1040				      "core",
1041				      "xo",
1042				      "ice";
1043
1044			resets = <&gcc GCC_SDCC1_BCR>;
1045
1046			power-domains = <&rpmpd QCM2290_VDDCX>;
1047			operating-points-v2 = <&sdhc1_opp_table>;
1048			iommus = <&apps_smmu 0xc0 0x0>;
1049			interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG
1050					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1051					<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1052					 &config_noc SLAVE_SDCC_1 RPM_ALWAYS_TAG>;
1053			interconnect-names = "sdhc-ddr",
1054					     "cpu-sdhc";
1055
1056			qcom,dll-config = <0x000f642c>;
1057			qcom,ddr-config = <0x80040868>;
1058			bus-width = <8>;
1059
1060			mmc-ddr-1_8v;
1061			mmc-hs200-1_8v;
1062			mmc-hs400-1_8v;
1063			mmc-hs400-enhanced-strobe;
1064
1065			status = "disabled";
1066
1067			sdhc1_opp_table: opp-table {
1068				compatible = "operating-points-v2";
1069
1070				opp-100000000 {
1071					opp-hz = /bits/ 64 <100000000>;
1072					required-opps = <&rpmpd_opp_low_svs>;
1073					opp-peak-kBps = <250000 133320>;
1074					opp-avg-kBps = <102400 65000>;
1075				};
1076
1077				opp-192000000 {
1078					opp-hz = /bits/ 64 <192000000>;
1079					required-opps = <&rpmpd_opp_low_svs>;
1080					opp-peak-kBps = <800000 300000>;
1081					opp-avg-kBps = <204800 200000>;
1082				};
1083
1084				opp-384000000 {
1085					opp-hz = /bits/ 64 <384000000>;
1086					required-opps = <&rpmpd_opp_svs_plus>;
1087					opp-peak-kBps = <800000 300000>;
1088					opp-avg-kBps = <204800 200000>;
1089				};
1090			};
1091		};
1092
1093		sdhc_2: mmc@4784000 {
1094			compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
1095			reg = <0x0 0x04784000 0x0 0x1000>;
1096			reg-names = "hc";
1097
1098			interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
1099				     <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1100			interrupt-names = "hc_irq", "pwr_irq";
1101
1102			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1103				 <&gcc GCC_SDCC2_APPS_CLK>,
1104				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1105			clock-names = "iface",
1106				      "core",
1107				      "xo";
1108
1109			resets = <&gcc GCC_SDCC2_BCR>;
1110
1111			power-domains = <&rpmpd QCM2290_VDDCX>;
1112			operating-points-v2 = <&sdhc2_opp_table>;
1113			iommus = <&apps_smmu 0xa0 0x0>;
1114			interconnects = <&system_noc MASTER_SDCC_2 RPM_ALWAYS_TAG
1115					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1116					<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1117					 &config_noc SLAVE_SDCC_2 RPM_ALWAYS_TAG>;
1118			interconnect-names = "sdhc-ddr",
1119					     "cpu-sdhc";
1120
1121			qcom,dll-config = <0x0007642c>;
1122			qcom,ddr-config = <0x80040868>;
1123			bus-width = <4>;
1124
1125			status = "disabled";
1126
1127			sdhc2_opp_table: opp-table {
1128				compatible = "operating-points-v2";
1129
1130				opp-100000000 {
1131					opp-hz = /bits/ 64 <100000000>;
1132					required-opps = <&rpmpd_opp_low_svs>;
1133					opp-peak-kBps = <250000 133320>;
1134					opp-avg-kBps = <261438 150000>;
1135				};
1136
1137				opp-202000000 {
1138					opp-hz = /bits/ 64 <202000000>;
1139					required-opps = <&rpmpd_opp_svs_plus>;
1140					opp-peak-kBps = <800000 300000>;
1141					opp-avg-kBps = <261438 300000>;
1142				};
1143			};
1144		};
1145
1146		gpi_dma0: dma-controller@4a00000 {
1147			compatible = "qcom,qcm2290-gpi-dma", "qcom,sm6350-gpi-dma";
1148			reg = <0x0 0x04a00000 0x0 0x60000>;
1149			interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
1150				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
1151				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
1152				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
1153				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
1154				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
1155				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
1156				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
1157				     <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
1158				     <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
1159			dma-channels = <10>;
1160			dma-channel-mask = <0x1f>;
1161			iommus = <&apps_smmu 0xf6 0x0>;
1162			#dma-cells = <3>;
1163			status = "disabled";
1164		};
1165
1166		qupv3_id_0: geniqup@4ac0000 {
1167			compatible = "qcom,geni-se-qup";
1168			reg = <0x0 0x04ac0000 0x0 0x2000>;
1169			clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
1170				 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
1171			clock-names = "m-ahb", "s-ahb";
1172			iommus = <&apps_smmu 0xe3 0x0>;
1173			#address-cells = <2>;
1174			#size-cells = <2>;
1175			ranges;
1176			status = "disabled";
1177
1178			i2c0: i2c@4a80000 {
1179				compatible = "qcom,geni-i2c";
1180				reg = <0x0 0x04a80000 0x0 0x4000>;
1181				interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1182				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1183				clock-names = "se";
1184				pinctrl-0 = <&qup_i2c0_default>;
1185				pinctrl-names = "default";
1186				dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
1187				       <&gpi_dma0 1 0 QCOM_GPI_I2C>;
1188				dma-names = "tx", "rx";
1189				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1190						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1191						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1192						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1193						<&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1194						 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1195				interconnect-names = "qup-core",
1196						     "qup-config",
1197						     "qup-memory";
1198				#address-cells = <1>;
1199				#size-cells = <0>;
1200				status = "disabled";
1201			};
1202
1203			spi0: spi@4a80000 {
1204				compatible = "qcom,geni-spi";
1205				reg = <0x0 0x04a80000 0x0 0x4000>;
1206				interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1207				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1208				clock-names = "se";
1209				pinctrl-0 = <&qup_spi0_default>;
1210				pinctrl-names = "default";
1211				dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
1212				       <&gpi_dma0 1 0 QCOM_GPI_SPI>;
1213				dma-names = "tx", "rx";
1214				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1215						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1216						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1217						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1218				interconnect-names = "qup-core",
1219						     "qup-config";
1220				#address-cells = <1>;
1221				#size-cells = <0>;
1222				status = "disabled";
1223			};
1224
1225			uart0: serial@4a80000 {
1226				compatible = "qcom,geni-uart";
1227				reg = <0x0 0x04a80000 0x0 0x4000>;
1228				interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1229				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1230				clock-names = "se";
1231				pinctrl-0 = <&qup_uart0_default>;
1232				pinctrl-names = "default";
1233				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1234						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1235						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1236						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1237				interconnect-names = "qup-core",
1238						     "qup-config";
1239				status = "disabled";
1240			};
1241
1242			i2c1: i2c@4a84000 {
1243				compatible = "qcom,geni-i2c";
1244				reg = <0x0 0x04a84000 0x0 0x4000>;
1245				interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1246				clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1247				clock-names = "se";
1248				pinctrl-0 = <&qup_i2c1_default>;
1249				pinctrl-names = "default";
1250				dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
1251				       <&gpi_dma0 1 1 QCOM_GPI_I2C>;
1252				dma-names = "tx", "rx";
1253				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1254						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1255						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1256						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1257						<&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1258						 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1259				interconnect-names = "qup-core",
1260						     "qup-config",
1261						     "qup-memory";
1262				#address-cells = <1>;
1263				#size-cells = <0>;
1264				status = "disabled";
1265			};
1266
1267			spi1: spi@4a84000 {
1268				compatible = "qcom,geni-spi";
1269				reg = <0x0 0x04a84000 0x0 0x4000>;
1270				interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1271				clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1272				clock-names = "se";
1273				pinctrl-0 = <&qup_spi1_default>;
1274				pinctrl-names = "default";
1275				dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
1276				       <&gpi_dma0 1 1 QCOM_GPI_SPI>;
1277				dma-names = "tx", "rx";
1278				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1279						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1280						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1281						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1282				interconnect-names = "qup-core",
1283						     "qup-config";
1284				#address-cells = <1>;
1285				#size-cells = <0>;
1286				status = "disabled";
1287			};
1288
1289			uart1: serial@4a84000 {
1290				compatible = "qcom,geni-uart";
1291				reg = <0x0 0x04a84000 0x0 0x4000>;
1292				interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1293				clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1294				clock-names = "se";
1295				pinctrl-0 = <&qup_uart1_default>;
1296				pinctrl-names = "default";
1297				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1298						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1299						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1300						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1301				interconnect-names = "qup-core",
1302						     "qup-config";
1303				status = "disabled";
1304			};
1305
1306			i2c2: i2c@4a88000 {
1307				compatible = "qcom,geni-i2c";
1308				reg = <0x0 0x04a88000 0x0 0x4000>;
1309				interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1310				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1311				clock-names = "se";
1312				pinctrl-0 = <&qup_i2c2_default>;
1313				pinctrl-names = "default";
1314				dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
1315				       <&gpi_dma0 1 2 QCOM_GPI_I2C>;
1316				dma-names = "tx", "rx";
1317				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1318						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1319						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1320						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1321						<&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1322						 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1323				interconnect-names = "qup-core",
1324						     "qup-config",
1325						     "qup-memory";
1326				#address-cells = <1>;
1327				#size-cells = <0>;
1328				status = "disabled";
1329			};
1330
1331			spi2: spi@4a88000 {
1332				compatible = "qcom,geni-spi";
1333				reg = <0x0 0x04a88000 0x0 0x4000>;
1334				interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1335				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1336				clock-names = "se";
1337				pinctrl-0 = <&qup_spi2_default>;
1338				pinctrl-names = "default";
1339				dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
1340				       <&gpi_dma0 1 2 QCOM_GPI_SPI>;
1341				dma-names = "tx", "rx";
1342				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1343						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1344						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1345						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1346				interconnect-names = "qup-core",
1347						     "qup-config";
1348				#address-cells = <1>;
1349				#size-cells = <0>;
1350				status = "disabled";
1351			};
1352
1353			uart2: serial@4a88000 {
1354				compatible = "qcom,geni-uart";
1355				reg = <0x0 0x04a88000 0x0 0x4000>;
1356				interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1357				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1358				clock-names = "se";
1359				pinctrl-0 = <&qup_uart2_default>;
1360				pinctrl-names = "default";
1361				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1362						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1363						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1364						 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1365				interconnect-names = "qup-core",
1366						     "qup-config";
1367				status = "disabled";
1368			};
1369
1370			i2c3: i2c@4a8c000 {
1371				compatible = "qcom,geni-i2c";
1372				reg = <0x0 0x04a8c000 0x0 0x4000>;
1373				interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1374				clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1375				clock-names = "se";
1376				pinctrl-0 = <&qup_i2c3_default>;
1377				pinctrl-names = "default";
1378				dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
1379				       <&gpi_dma0 1 3 QCOM_GPI_I2C>;
1380				dma-names = "tx", "rx";
1381				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1382						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1383						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1384						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1385						<&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1386						 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1387				interconnect-names = "qup-core",
1388						     "qup-config",
1389						     "qup-memory";
1390				#address-cells = <1>;
1391				#size-cells = <0>;
1392				status = "disabled";
1393			};
1394
1395			spi3: spi@4a8c000 {
1396				compatible = "qcom,geni-spi";
1397				reg = <0x0 0x04a8c000 0x0 0x4000>;
1398				interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1399				clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1400				clock-names = "se";
1401				pinctrl-0 = <&qup_spi3_default>;
1402				pinctrl-names = "default";
1403				dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
1404				       <&gpi_dma0 1 3 QCOM_GPI_SPI>;
1405				dma-names = "tx", "rx";
1406				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1407						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1408						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1409						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1410				interconnect-names = "qup-core",
1411						     "qup-config";
1412				#address-cells = <1>;
1413				#size-cells = <0>;
1414				status = "disabled";
1415			};
1416
1417			uart3: serial@4a8c000 {
1418				compatible = "qcom,geni-uart";
1419				reg = <0x0 0x04a8c000 0x0 0x4000>;
1420				interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1421				clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1422				clock-names = "se";
1423				pinctrl-0 = <&qup_uart3_default>;
1424				pinctrl-names = "default";
1425				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1426						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1427						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1428						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1429				interconnect-names = "qup-core",
1430						     "qup-config";
1431				status = "disabled";
1432			};
1433
1434			i2c4: i2c@4a90000 {
1435				compatible = "qcom,geni-i2c";
1436				reg = <0x0 0x04a90000 0x0 0x4000>;
1437				interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1438				clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1439				clock-names = "se";
1440				pinctrl-0 = <&qup_i2c4_default>;
1441				pinctrl-names = "default";
1442				dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
1443				       <&gpi_dma0 1 4 QCOM_GPI_I2C>;
1444				dma-names = "tx", "rx";
1445				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1446						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1447						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1448						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1449						<&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1450						 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1451				interconnect-names = "qup-core",
1452						     "qup-config",
1453						     "qup-memory";
1454				#address-cells = <1>;
1455				#size-cells = <0>;
1456				status = "disabled";
1457			};
1458
1459			spi4: spi@4a90000 {
1460				compatible = "qcom,geni-spi";
1461				reg = <0x0 0x04a90000 0x0 0x4000>;
1462				interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1463				clock-names = "se";
1464				clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1465				pinctrl-names = "default";
1466				pinctrl-0 = <&qup_spi4_default>;
1467				dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
1468				       <&gpi_dma0 1 4 QCOM_GPI_SPI>;
1469				dma-names = "tx", "rx";
1470				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1471						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1472						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1473						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1474				interconnect-names = "qup-core",
1475						     "qup-config";
1476				#address-cells = <1>;
1477				#size-cells = <0>;
1478				status = "disabled";
1479			};
1480
1481			uart4: serial@4a90000 {
1482				compatible = "qcom,geni-uart";
1483				reg = <0x0 0x04a90000 0x0 0x4000>;
1484				interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1485				clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1486				clock-names = "se";
1487				pinctrl-0 = <&qup_uart4_default>;
1488				pinctrl-names = "default";
1489				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1490						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1491						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1492						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1493				interconnect-names = "qup-core",
1494						     "qup-config";
1495				status = "disabled";
1496			};
1497
1498			i2c5: i2c@4a94000 {
1499				compatible = "qcom,geni-i2c";
1500				reg = <0x0 0x04a94000 0x0 0x4000>;
1501				interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1502				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1503				clock-names = "se";
1504				pinctrl-0 = <&qup_i2c5_default>;
1505				pinctrl-names = "default";
1506				dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
1507				       <&gpi_dma0 1 5 QCOM_GPI_I2C>;
1508				dma-names = "tx", "rx";
1509				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1510						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1511						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1512						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1513						<&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1514						 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1515				interconnect-names = "qup-core",
1516						     "qup-config",
1517						     "qup-memory";
1518				#address-cells = <1>;
1519				#size-cells = <0>;
1520				status = "disabled";
1521			};
1522
1523			spi5: spi@4a94000 {
1524				compatible = "qcom,geni-spi";
1525				reg = <0x0 0x04a94000 0x0 0x4000>;
1526				interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1527				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1528				clock-names = "se";
1529				pinctrl-0 = <&qup_spi5_default>;
1530				pinctrl-names = "default";
1531				dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
1532				       <&gpi_dma0 1 5 QCOM_GPI_SPI>;
1533				dma-names = "tx", "rx";
1534				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1535						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1536						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1537						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1538				interconnect-names = "qup-core",
1539						     "qup-config";
1540				#address-cells = <1>;
1541				#size-cells = <0>;
1542				status = "disabled";
1543			};
1544
1545			uart5: serial@4a94000 {
1546				compatible = "qcom,geni-uart";
1547				reg = <0x0 0x04a94000 0x0 0x4000>;
1548				interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1549				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1550				clock-names = "se";
1551				pinctrl-0 = <&qup_uart5_default>;
1552				pinctrl-names = "default";
1553				interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1554						 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1555						<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1556						 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1557				interconnect-names = "qup-core",
1558						     "qup-config";
1559				status = "disabled";
1560			};
1561		};
1562
1563		usb: usb@4ef8800 {
1564			compatible = "qcom,qcm2290-dwc3", "qcom,dwc3";
1565			reg = <0x0 0x04ef8800 0x0 0x400>;
1566			interrupts-extended = <&intc GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
1567					      <&mpm 12 IRQ_TYPE_LEVEL_HIGH>;
1568			interrupt-names = "hs_phy_irq",
1569					  "ss_phy_irq";
1570
1571			clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1572				 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1573				 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
1574				 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1575				 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1576				 <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
1577			clock-names = "cfg_noc",
1578				      "core",
1579				      "iface",
1580				      "sleep",
1581				      "mock_utmi",
1582				      "xo";
1583
1584			assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1585					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
1586			assigned-clock-rates = <19200000>, <133333333>;
1587
1588			resets = <&gcc GCC_USB30_PRIM_BCR>;
1589			power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
1590			/* TODO: USB<->IPA path */
1591			interconnects = <&system_noc MASTER_USB3_0 RPM_ALWAYS_TAG
1592					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1593					<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1594					 &config_noc SLAVE_USB3 RPM_ALWAYS_TAG>;
1595			interconnect-names = "usb-ddr",
1596					     "apps-usb";
1597			wakeup-source;
1598
1599			#address-cells = <2>;
1600			#size-cells = <2>;
1601			ranges;
1602
1603			status = "disabled";
1604
1605			usb_dwc3: usb@4e00000 {
1606				compatible = "snps,dwc3";
1607				reg = <0x0 0x04e00000 0x0 0xcd00>;
1608				interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
1609				phys = <&usb_hsphy>, <&usb_qmpphy>;
1610				phy-names = "usb2-phy", "usb3-phy";
1611				iommus = <&apps_smmu 0x120 0x0>;
1612				snps,dis_u2_susphy_quirk;
1613				snps,dis_enblslpm_quirk;
1614				snps,has-lpm-erratum;
1615				snps,hird-threshold = /bits/ 8 <0x10>;
1616				snps,usb3_lpm_capable;
1617				snps,parkmode-disable-ss-quirk;
1618				maximum-speed = "super-speed";
1619				dr_mode = "otg";
1620				usb-role-switch;
1621
1622				ports {
1623					#address-cells = <1>;
1624					#size-cells = <0>;
1625
1626					port@0 {
1627						reg = <0>;
1628
1629						usb_dwc3_hs: endpoint {
1630						};
1631					};
1632
1633					port@1 {
1634						reg = <1>;
1635
1636						usb_dwc3_ss: endpoint {
1637							remote-endpoint = <&usb_qmpphy_usb_ss_in>;
1638						};
1639					};
1640				};
1641			};
1642		};
1643
1644		gpu: gpu@5900000 {
1645			compatible = "qcom,adreno-07000200", "qcom,adreno";
1646			reg = <0x0 0x05900000 0x0 0x40000>,
1647			      <0x0 0x0599e000 0x0 0x1000>,
1648			      <0x0 0x05961000 0x0 0x800>;
1649			reg-names = "kgsl_3d0_reg_memory",
1650				    "cx_mem",
1651				    "cx_dbgc";
1652
1653			interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
1654
1655			clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
1656				 <&gpucc GPU_CC_AHB_CLK>,
1657				 <&gcc GCC_BIMC_GPU_AXI_CLK>,
1658				 <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
1659				 <&gpucc GPU_CC_CX_GMU_CLK>,
1660				 <&gpucc GPU_CC_CXO_CLK>;
1661			clock-names = "core",
1662				      "iface",
1663				      "mem_iface",
1664				      "alt_mem_iface",
1665				      "gmu",
1666				      "xo";
1667
1668			interconnects = <&bimc MASTER_GFX3D RPM_ALWAYS_TAG
1669					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1670			interconnect-names = "gfx-mem";
1671
1672			iommus = <&adreno_smmu 0 1>;
1673			operating-points-v2 = <&gpu_opp_table>;
1674			power-domains = <&rpmpd QCM2290_VDDCX>;
1675			qcom,gmu = <&gmu_wrapper>;
1676
1677			nvmem-cells = <&gpu_speed_bin>;
1678			nvmem-cell-names = "speed_bin";
1679			#cooling-cells = <2>;
1680
1681			status = "disabled";
1682
1683			gpu_zap_shader: zap-shader {
1684				memory-region = <&pil_gpu_mem>;
1685			};
1686
1687			gpu_opp_table: opp-table {
1688				compatible = "operating-points-v2";
1689
1690				/* TODO: Scale RPM_SMD_BIMC_GPU_CLK w/ turbo freqs */
1691				opp-1123200000 {
1692					opp-hz = /bits/ 64 <1123200000>;
1693					required-opps = <&rpmpd_opp_turbo_plus>;
1694					opp-peak-kBps = <6881000>;
1695					opp-supported-hw = <0x3>;
1696					turbo-mode;
1697				};
1698
1699				opp-1017600000 {
1700					opp-hz = /bits/ 64 <1017600000>;
1701					required-opps = <&rpmpd_opp_turbo>;
1702					opp-peak-kBps = <6881000>;
1703					opp-supported-hw = <0x3>;
1704					turbo-mode;
1705				};
1706
1707				opp-921600000 {
1708					opp-hz = /bits/ 64 <921600000>;
1709					required-opps = <&rpmpd_opp_nom_plus>;
1710					opp-peak-kBps = <6881000>;
1711					opp-supported-hw = <0x3>;
1712				};
1713
1714				opp-844800000 {
1715					opp-hz = /bits/ 64 <844800000>;
1716					required-opps = <&rpmpd_opp_nom>;
1717					opp-peak-kBps = <6881000>;
1718					opp-supported-hw = <0x7>;
1719				};
1720
1721				opp-672000000 {
1722					opp-hz = /bits/ 64 <672000000>;
1723					required-opps = <&rpmpd_opp_svs_plus>;
1724					opp-peak-kBps = <3879000>;
1725					opp-supported-hw = <0xf>;
1726				};
1727
1728				opp-537600000 {
1729					opp-hz = /bits/ 64 <537600000>;
1730					required-opps = <&rpmpd_opp_svs>;
1731					opp-peak-kBps = <2929000>;
1732					opp-supported-hw = <0xf>;
1733				};
1734
1735				opp-355200000 {
1736					opp-hz = /bits/ 64 <355200000>;
1737					required-opps = <&rpmpd_opp_low_svs>;
1738					opp-peak-kBps = <1720000>;
1739					opp-supported-hw = <0xf>;
1740				};
1741			};
1742		};
1743
1744		gmu_wrapper: gmu@596a000 {
1745			compatible = "qcom,adreno-gmu-wrapper";
1746			reg = <0x0 0x0596a000 0x0 0x30000>;
1747			reg-names = "gmu";
1748			power-domains = <&gpucc GPU_CX_GDSC>,
1749					<&gpucc GPU_GX_GDSC>;
1750			power-domain-names = "cx",
1751					     "gx";
1752		};
1753
1754		gpucc: clock-controller@5990000 {
1755			compatible = "qcom,qcm2290-gpucc";
1756			reg = <0x0 0x05990000 0x0 0x9000>;
1757			clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
1758				 <&rpmcc RPM_SMD_XO_CLK_SRC>,
1759				 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
1760				 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
1761			power-domains = <&rpmpd QCM2290_VDDCX>;
1762			required-opps = <&rpmpd_opp_low_svs>;
1763			#clock-cells = <1>;
1764			#reset-cells = <1>;
1765			#power-domain-cells = <1>;
1766		};
1767
1768		adreno_smmu: iommu@59a0000 {
1769			compatible = "qcom,qcm2290-smmu-500", "qcom,adreno-smmu",
1770				     "qcom,smmu-500", "arm,mmu-500";
1771			reg = <0x0 0x059a0000 0x0 0x10000>;
1772			interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
1773				     <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
1774				     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
1775				     <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
1776				     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1777				     <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
1778				     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
1779				     <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
1780				     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
1781
1782			clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
1783				 <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
1784				 <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
1785			clock-names = "mem",
1786				      "hlos",
1787				      "iface";
1788
1789			power-domains = <&gpucc GPU_CX_GDSC>;
1790
1791			#global-interrupts = <1>;
1792			#iommu-cells = <2>;
1793		};
1794
1795		cci: cci@5c1b000 {
1796			compatible = "qcom,qcm2290-cci", "qcom,msm8996-cci";
1797			reg = <0x0 0x5c1b000 0x0 0x1000>;
1798
1799			interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>;
1800
1801			clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>, <&gcc GCC_CAMSS_CCI_0_CLK>;
1802			clock-names = "ahb", "cci";
1803			assigned-clocks = <&gcc GCC_CAMSS_CCI_0_CLK>;
1804			assigned-clock-rates = <37500000>;
1805
1806			power-domains = <&gcc GCC_CAMSS_TOP_GDSC>;
1807
1808			pinctrl-0 = <&cci0_default &cci1_default>;
1809			pinctrl-names = "default";
1810
1811			#address-cells = <1>;
1812			#size-cells = <0>;
1813
1814			status = "disabled";
1815
1816			cci_i2c0: i2c-bus@0 {
1817				reg = <0>;
1818				clock-frequency = <400000>;
1819				#address-cells = <1>;
1820				#size-cells = <0>;
1821			};
1822
1823			cci_i2c1: i2c-bus@1 {
1824				reg = <1>;
1825				clock-frequency = <400000>;
1826				#address-cells = <1>;
1827				#size-cells = <0>;
1828			};
1829		};
1830
1831		camss: camss@5c11000 {
1832			compatible = "qcom,qcm2290-camss";
1833
1834			reg = <0x0 0x5c11000 0x0 0x1000>,
1835			      <0x0 0x5c6e000 0x0 0x1000>,
1836			      <0x0 0x5c75000 0x0 0x1000>,
1837			      <0x0 0x5c52000 0x0 0x1000>,
1838			      <0x0 0x5c53000 0x0 0x1000>,
1839			      <0x0 0x5c66000 0x0 0x400>,
1840			      <0x0 0x5c68000 0x0 0x400>,
1841			      <0x0 0x5c6f000 0x0 0x4000>,
1842			      <0x0 0x5c76000 0x0 0x4000>;
1843			reg-names = "top",
1844				    "csid0",
1845				    "csid1",
1846				    "csiphy0",
1847				    "csiphy1",
1848				    "csitpg0",
1849				    "csitpg1",
1850				    "vfe0",
1851				    "vfe1";
1852
1853			clocks = <&gcc GCC_CAMERA_AHB_CLK>,
1854				 <&gcc GCC_CAMSS_AXI_CLK>,
1855				 <&gcc GCC_CAMSS_NRT_AXI_CLK>,
1856				 <&gcc GCC_CAMSS_RT_AXI_CLK>,
1857				 <&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
1858				 <&gcc GCC_CAMSS_TFE_1_CSID_CLK>,
1859				 <&gcc GCC_CAMSS_CPHY_0_CLK>,
1860				 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
1861				 <&gcc GCC_CAMSS_CPHY_1_CLK>,
1862				 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
1863				 <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1864				 <&gcc GCC_CAMSS_TFE_0_CLK>,
1865				 <&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
1866				 <&gcc GCC_CAMSS_TFE_1_CLK>,
1867				 <&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK> ;
1868			clock-names = "ahb",
1869				      "axi",
1870				      "camnoc_nrt_axi",
1871				      "camnoc_rt_axi",
1872				      "csi0",
1873				      "csi1",
1874				      "csiphy0",
1875				      "csiphy0_timer",
1876				      "csiphy1",
1877				      "csiphy1_timer",
1878				      "top_ahb",
1879				      "vfe0",
1880				      "vfe0_cphy_rx",
1881				      "vfe1",
1882				      "vfe1_cphy_rx";
1883
1884			interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>,
1885				     <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>,
1886				     <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>,
1887				     <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>,
1888				     <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
1889				     <GIC_SPI 310 IRQ_TYPE_EDGE_RISING>,
1890				     <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>,
1891				     <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
1892			interrupt-names = "csid0",
1893					  "csid1",
1894					  "csiphy0",
1895					  "csiphy1",
1896					  "csitpg0",
1897					  "csitpg1",
1898					  "vfe0",
1899					  "vfe1";
1900
1901			interconnects = <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG
1902					 &config_noc SLAVE_CAMERA_CFG RPM_ACTIVE_TAG>,
1903					<&mmrt_virt MASTER_CAMNOC_HF RPM_ALWAYS_TAG
1904					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1905					<&mmnrt_virt MASTER_CAMNOC_SF RPM_ALWAYS_TAG
1906					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1907			interconnect-names = "ahb",
1908					     "hf_mnoc",
1909					     "sf_mnoc";
1910
1911			iommus = <&apps_smmu 0x400 0x0>,
1912				 <&apps_smmu 0x800 0x0>,
1913				 <&apps_smmu 0x820 0x0>,
1914				 <&apps_smmu 0x840 0x0>;
1915
1916			power-domains = <&gcc GCC_CAMSS_TOP_GDSC>;
1917
1918			status = "disabled";
1919
1920			ports {
1921				#address-cells = <1>;
1922				#size-cells = <0>;
1923
1924				port@0 {
1925					reg = <0>;
1926				};
1927
1928				port@1 {
1929					reg = <1>;
1930				};
1931			};
1932		};
1933
1934		mdss: display-subsystem@5e00000 {
1935			compatible = "qcom,qcm2290-mdss";
1936			reg = <0x0 0x05e00000 0x0 0x1000>;
1937			reg-names = "mdss";
1938			interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
1939			interrupt-controller;
1940			#interrupt-cells = <1>;
1941
1942			clocks = <&gcc GCC_DISP_AHB_CLK>,
1943				 <&gcc GCC_DISP_HF_AXI_CLK>,
1944				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
1945			clock-names = "iface",
1946				      "bus",
1947				      "core";
1948
1949			resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
1950
1951			power-domains = <&dispcc MDSS_GDSC>;
1952
1953			iommus = <&apps_smmu 0x420 0x2>;
1954			interconnects = <&mmrt_virt MASTER_MDP0 RPM_ALWAYS_TAG
1955					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1956					<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1957					 &config_noc SLAVE_DISPLAY_CFG RPM_ALWAYS_TAG>;
1958			interconnect-names = "mdp0-mem",
1959					     "cpu-cfg";
1960
1961			#address-cells = <2>;
1962			#size-cells = <2>;
1963			ranges;
1964
1965			status = "disabled";
1966
1967			mdp: display-controller@5e01000 {
1968				compatible = "qcom,qcm2290-dpu";
1969				reg = <0x0 0x05e01000 0x0 0x8f000>,
1970				      <0x0 0x05eb0000 0x0 0x3000>;
1971				reg-names = "mdp",
1972					    "vbif";
1973
1974				interrupt-parent = <&mdss>;
1975				interrupts = <0>;
1976
1977				clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1978					 <&dispcc DISP_CC_MDSS_AHB_CLK>,
1979					 <&dispcc DISP_CC_MDSS_MDP_CLK>,
1980					 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
1981					 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
1982				clock-names = "bus",
1983					      "iface",
1984					      "core",
1985					      "lut",
1986					      "vsync";
1987
1988				operating-points-v2 = <&mdp_opp_table>;
1989				power-domains = <&rpmpd QCM2290_VDDCX>;
1990
1991				ports {
1992					#address-cells = <1>;
1993					#size-cells = <0>;
1994
1995					port@0 {
1996						reg = <0>;
1997						dpu_intf1_out: endpoint {
1998							remote-endpoint = <&mdss_dsi0_in>;
1999						};
2000					};
2001				};
2002
2003				mdp_opp_table: opp-table {
2004					compatible = "operating-points-v2";
2005
2006					opp-19200000 {
2007						opp-hz = /bits/ 64 <19200000>;
2008						required-opps = <&rpmpd_opp_min_svs>;
2009					};
2010
2011					opp-192000000 {
2012						opp-hz = /bits/ 64 <192000000>;
2013						required-opps = <&rpmpd_opp_low_svs>;
2014					};
2015
2016					opp-256000000 {
2017						opp-hz = /bits/ 64 <256000000>;
2018						required-opps = <&rpmpd_opp_svs>;
2019					};
2020
2021					opp-307200000 {
2022						opp-hz = /bits/ 64 <307200000>;
2023						required-opps = <&rpmpd_opp_svs_plus>;
2024					};
2025
2026					opp-384000000 {
2027						opp-hz = /bits/ 64 <384000000>;
2028						required-opps = <&rpmpd_opp_nom>;
2029					};
2030				};
2031			};
2032
2033			mdss_dsi0: dsi@5e94000 {
2034				compatible = "qcom,qcm2290-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2035				reg = <0x0 0x05e94000 0x0 0x400>;
2036				reg-names = "dsi_ctrl";
2037
2038				interrupt-parent = <&mdss>;
2039				interrupts = <4>;
2040
2041				clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
2042					 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
2043					 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
2044					 <&dispcc DISP_CC_MDSS_ESC0_CLK>,
2045					 <&dispcc DISP_CC_MDSS_AHB_CLK>,
2046					 <&gcc GCC_DISP_HF_AXI_CLK>;
2047				clock-names = "byte",
2048					      "byte_intf",
2049					      "pixel",
2050					      "core",
2051					      "iface",
2052					      "bus";
2053
2054				assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
2055						  <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
2056				assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
2057							 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
2058
2059				operating-points-v2 = <&dsi_opp_table>;
2060				power-domains = <&rpmpd QCM2290_VDDCX>;
2061				phys = <&mdss_dsi0_phy>;
2062
2063				#address-cells = <1>;
2064				#size-cells = <0>;
2065
2066				status = "disabled";
2067
2068				dsi_opp_table: opp-table {
2069					compatible = "operating-points-v2";
2070
2071					opp-19200000 {
2072						opp-hz = /bits/ 64 <19200000>;
2073						required-opps = <&rpmpd_opp_min_svs>;
2074					};
2075
2076					opp-164000000 {
2077						opp-hz = /bits/ 64 <164000000>;
2078						required-opps = <&rpmpd_opp_low_svs>;
2079					};
2080
2081					opp-187500000 {
2082						opp-hz = /bits/ 64 <187500000>;
2083						required-opps = <&rpmpd_opp_svs>;
2084					};
2085				};
2086
2087				ports {
2088					#address-cells = <1>;
2089					#size-cells = <0>;
2090
2091					port@0 {
2092						reg = <0>;
2093
2094						mdss_dsi0_in: endpoint {
2095							remote-endpoint = <&dpu_intf1_out>;
2096						};
2097					};
2098
2099					port@1 {
2100						reg = <1>;
2101
2102						mdss_dsi0_out: endpoint {
2103						};
2104					};
2105				};
2106			};
2107
2108			mdss_dsi0_phy: phy@5e94400 {
2109				compatible = "qcom,dsi-phy-14nm-2290";
2110				reg = <0x0 0x05e94400 0x0 0x100>,
2111				      <0x0 0x05e94500 0x0 0x300>,
2112				      <0x0 0x05e94800 0x0 0x188>;
2113				reg-names = "dsi_phy",
2114					    "dsi_phy_lane",
2115					    "dsi_pll";
2116
2117				clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2118					 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2119				clock-names = "iface",
2120					      "ref";
2121
2122				power-domains = <&rpmpd QCM2290_VDDMX>;
2123				required-opps = <&rpmpd_opp_nom>;
2124
2125				#clock-cells = <1>;
2126				#phy-cells = <0>;
2127
2128				status = "disabled";
2129			};
2130		};
2131
2132		dispcc: clock-controller@5f00000 {
2133			compatible = "qcom,qcm2290-dispcc";
2134			reg = <0x0 0x05f00000 0x0 0x20000>;
2135			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
2136				 <&rpmcc RPM_SMD_XO_A_CLK_SRC>,
2137				 <&gcc GCC_DISP_GPLL0_CLK_SRC>,
2138				 <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
2139				 <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
2140				 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
2141			clock-names = "bi_tcxo",
2142				      "bi_tcxo_ao",
2143				      "gcc_disp_gpll0_clk_src",
2144				      "gcc_disp_gpll0_div_clk_src",
2145				      "dsi0_phy_pll_out_byteclk",
2146				      "dsi0_phy_pll_out_dsiclk";
2147			#power-domain-cells = <1>;
2148			#clock-cells = <1>;
2149			#reset-cells = <1>;
2150		};
2151
2152		remoteproc_mpss: remoteproc@6080000 {
2153			compatible = "qcom,qcm2290-mpss-pas", "qcom,sm6115-mpss-pas";
2154			reg = <0x0 0x06080000 0x0 0x100>;
2155
2156			interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
2157					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2158					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2159					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2160					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
2161					      <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
2162			interrupt-names = "wdog",
2163					  "fatal",
2164					  "ready",
2165					  "handover",
2166					  "stop-ack",
2167					  "shutdown-ack";
2168
2169			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
2170			clock-names = "xo";
2171
2172			power-domains = <&rpmpd QCM2290_VDDCX>;
2173
2174			memory-region = <&pil_modem_mem>;
2175
2176			qcom,smem-states = <&modem_smp2p_out 0>;
2177			qcom,smem-state-names = "stop";
2178
2179			status = "disabled";
2180
2181			glink-edge {
2182				interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
2183				label = "mpss";
2184				qcom,remote-pid = <1>;
2185				mboxes = <&apcs_glb 12>;
2186			};
2187		};
2188
2189		remoteproc_adsp: remoteproc@ab00000 {
2190			compatible = "qcom,qcm2290-adsp-pas", "qcom,sm6115-adsp-pas";
2191			reg = <0x0 0x0ab00000 0x0 0x100>;
2192
2193			interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
2194					      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2195					      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2196					      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2197					      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
2198			interrupt-names = "wdog",
2199					  "fatal",
2200					  "ready",
2201					  "handover",
2202					  "stop-ack";
2203
2204			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
2205			clock-names = "xo";
2206
2207			power-domains = <&rpmpd QCM2290_VDD_LPI_CX>,
2208					<&rpmpd QCM2290_VDD_LPI_MX>;
2209
2210			memory-region = <&pil_adsp_mem>;
2211
2212			qcom,smem-states = <&adsp_smp2p_out 0>;
2213			qcom,smem-state-names = "stop";
2214
2215			status = "disabled";
2216
2217			glink-edge {
2218				interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
2219				label = "lpass";
2220				qcom,remote-pid = <2>;
2221				mboxes = <&apcs_glb 8>;
2222
2223				apr {
2224					compatible = "qcom,apr-v2";
2225					qcom,glink-channels = "apr_audio_svc";
2226					qcom,domain = <APR_DOMAIN_ADSP>;
2227					#address-cells = <1>;
2228					#size-cells = <0>;
2229
2230					service@3 {
2231						reg = <APR_SVC_ADSP_CORE>;
2232						compatible = "qcom,q6core";
2233						qcom,protection-domain = "avs/audio",
2234									 "msm/adsp/audio_pd";
2235					};
2236
2237					q6afe: service@4 {
2238						compatible = "qcom,q6afe";
2239						reg = <APR_SVC_AFE>;
2240						qcom,protection-domain = "avs/audio",
2241									 "msm/adsp/audio_pd";
2242						q6afedai: dais {
2243							compatible = "qcom,q6afe-dais";
2244							#address-cells = <1>;
2245							#size-cells = <0>;
2246							#sound-dai-cells = <1>;
2247						};
2248
2249						q6afecc: clock-controller {
2250							compatible = "qcom,q6afe-clocks";
2251							#clock-cells = <2>;
2252						};
2253					};
2254
2255					q6asm: service@7 {
2256						compatible = "qcom,q6asm";
2257						reg = <APR_SVC_ASM>;
2258						qcom,protection-domain = "avs/audio",
2259									 "msm/adsp/audio_pd";
2260						q6asmdai: dais {
2261							compatible = "qcom,q6asm-dais";
2262							#address-cells = <1>;
2263							#size-cells = <0>;
2264							#sound-dai-cells = <1>;
2265							iommus = <&apps_smmu 0x1c1 0x0>;
2266
2267							dai@0 {
2268								reg = <MSM_FRONTEND_DAI_MULTIMEDIA1>;
2269							};
2270
2271							dai@1 {
2272								reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>;
2273							};
2274
2275							dai@2 {
2276								reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>;
2277							};
2278						};
2279					};
2280
2281					q6adm: service@8 {
2282						compatible = "qcom,q6adm";
2283						reg = <APR_SVC_ADM>;
2284						qcom,protection-domain = "avs/audio",
2285									 "msm/adsp/audio_pd";
2286						q6routing: routing {
2287							compatible = "qcom,q6adm-routing";
2288							#sound-dai-cells = <0>;
2289						};
2290					};
2291				};
2292
2293				fastrpc {
2294					compatible = "qcom,fastrpc";
2295					qcom,glink-channels = "fastrpcglink-apps-dsp";
2296					label = "adsp";
2297
2298					qcom,non-secure-domain;
2299
2300					#address-cells = <1>;
2301					#size-cells = <0>;
2302
2303					compute-cb@3 {
2304						compatible = "qcom,fastrpc-compute-cb";
2305						reg = <3>;
2306						iommus = <&apps_smmu 0x1c3 0x0>;
2307					};
2308
2309					compute-cb@4 {
2310						compatible = "qcom,fastrpc-compute-cb";
2311						reg = <4>;
2312						iommus = <&apps_smmu 0x1c4 0x0>;
2313					};
2314
2315					compute-cb@5 {
2316						compatible = "qcom,fastrpc-compute-cb";
2317						reg = <5>;
2318						iommus = <&apps_smmu 0x1c5 0x0>;
2319					};
2320
2321					compute-cb@6 {
2322						compatible = "qcom,fastrpc-compute-cb";
2323						reg = <6>;
2324						iommus = <&apps_smmu 0x1c6 0x0>;
2325					};
2326
2327					compute-cb@7 {
2328						compatible = "qcom,fastrpc-compute-cb";
2329						reg = <7>;
2330						iommus = <&apps_smmu 0x1c7 0x0>;
2331					};
2332				};
2333			};
2334		};
2335
2336		apps_smmu: iommu@c600000 {
2337			compatible = "qcom,qcm2290-smmu-500", "qcom,smmu-500", "arm,mmu-500";
2338			reg = <0x0 0x0c600000 0x0 0x80000>;
2339			#iommu-cells = <2>;
2340			#global-interrupts = <1>;
2341
2342			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
2343				     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
2344				     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
2345				     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
2346				     <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
2347				     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
2348				     <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
2349				     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
2350				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
2351				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
2352				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
2353				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
2354				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
2355				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
2356				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
2357				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
2358				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
2359				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
2360				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
2361				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
2362				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
2363				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
2364				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
2365				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
2366				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
2367				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
2368				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
2369				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
2370				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
2371				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
2372				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
2373				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
2374				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
2375				     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
2376				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
2377				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
2378				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
2379				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
2380				     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
2381				     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
2382				     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
2383				     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
2384				     <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
2385				     <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
2386				     <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
2387				     <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
2388				     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
2389				     <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
2390				     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
2391				     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
2392				     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
2393				     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
2394				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
2395				     <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
2396				     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
2397				     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
2398				     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
2399				     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
2400				     <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
2401				     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
2402				     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
2403				     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
2404				     <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
2405				     <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
2406				     <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
2407		};
2408
2409		venus: video-codec@5a00000 {
2410			compatible = "qcom,qcm2290-venus";
2411			reg = <0 0x5a00000 0 0xf0000>;
2412			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
2413
2414			power-domains = <&gcc GCC_VENUS_GDSC>,
2415					<&gcc GCC_VCODEC0_GDSC>,
2416					<&rpmpd QCM2290_VDDCX>;
2417			power-domain-names = "venus",
2418					     "vcodec0",
2419					     "cx";
2420			operating-points-v2 = <&venus_opp_table>;
2421
2422			clocks = <&gcc GCC_VIDEO_VENUS_CTL_CLK>,
2423				 <&gcc GCC_VIDEO_AHB_CLK>,
2424				 <&gcc GCC_VENUS_CTL_AXI_CLK>,
2425				 <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>,
2426				 <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>,
2427				 <&gcc GCC_VCODEC0_AXI_CLK>;
2428			clock-names = "core",
2429				      "iface",
2430				      "bus",
2431				      "throttle",
2432				      "vcodec0_core",
2433				      "vcodec0_bus";
2434
2435			memory-region = <&pil_video_mem>;
2436			iommus = <&apps_smmu 0x860 0x0>,
2437				 <&apps_smmu 0x880 0x0>;
2438
2439			interconnects = <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG
2440					 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
2441					<&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG
2442					 &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>;
2443			interconnect-names = "video-mem",
2444					     "cpu-cfg";
2445
2446			venus_opp_table: opp-table {
2447				compatible = "operating-points-v2";
2448
2449				opp-133333333 {
2450					opp-hz = /bits/ 64 <133333333>;
2451					required-opps = <&rpmpd_opp_low_svs>;
2452				};
2453
2454				opp-240000000 {
2455					opp-hz = /bits/ 64 <240000000>;
2456					required-opps = <&rpmpd_opp_svs>;
2457				};
2458			};
2459		};
2460
2461		wifi: wifi@c800000 {
2462			compatible = "qcom,wcn3990-wifi";
2463			reg = <0x0 0x0c800000 0x0 0x800000>;
2464			reg-names = "membase";
2465			memory-region = <&wlan_msa_mem>;
2466			interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
2467				     <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
2468				     <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
2469				     <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
2470				     <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
2471				     <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>,
2472				     <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>,
2473				     <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>,
2474				     <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
2475				     <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
2476				     <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
2477				     <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
2478			iommus = <&apps_smmu 0x1a0 0x1>;
2479			qcom,msa-fixed-perm;
2480			status = "disabled";
2481		};
2482
2483		watchdog@f017000 {
2484			compatible = "qcom,apss-wdt-qcm2290", "qcom,kpss-wdt";
2485			reg = <0x0 0x0f017000 0x0 0x1000>;
2486			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
2487				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
2488			clocks = <&sleep_clk>;
2489		};
2490
2491		apcs_glb: mailbox@f111000 {
2492			compatible = "qcom,qcm2290-apcs-hmss-global";
2493			reg = <0x0 0x0f111000 0x0 0x1000>;
2494			#mbox-cells = <1>;
2495		};
2496
2497		timer@f120000 {
2498			compatible = "arm,armv7-timer-mem";
2499			reg = <0x0 0x0f120000 0x0 0x1000>;
2500			#address-cells = <1>;
2501			#size-cells = <1>;
2502			ranges = <0 0x0 0x0f121000 0x8000>;
2503
2504			frame@0 {
2505				reg = <0x0 0x1000>,
2506				      <0x1000 0x1000>;
2507				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
2508					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
2509				frame-number = <0>;
2510			};
2511
2512			frame@2000 {
2513				reg = <0x2000 0x1000>;
2514				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
2515				frame-number = <1>;
2516				status = "disabled";
2517			};
2518
2519			frame@3000 {
2520				reg = <0x3000 0x1000>;
2521				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2522				frame-number = <2>;
2523				status = "disabled";
2524			};
2525
2526			frame@4000 {
2527				reg = <0x4000 0x1000>;
2528				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
2529				frame-number = <3>;
2530				status = "disabled";
2531			};
2532
2533			frame@5000 {
2534				reg = <0x5000 0x1000>;
2535				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
2536				frame-number = <4>;
2537				status = "disabled";
2538			};
2539
2540			frame@6000 {
2541				reg = <0x6000 0x1000>;
2542				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
2543				frame-number = <5>;
2544				status = "disabled";
2545			};
2546
2547			frame@7000 {
2548				reg = <0x7000 0x1000>;
2549				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
2550				frame-number = <6>;
2551				status = "disabled";
2552			};
2553		};
2554
2555		intc: interrupt-controller@f200000 {
2556			compatible = "arm,gic-v3";
2557			reg = <0x0 0x0f200000 0x0 0x10000>,
2558			      <0x0 0x0f300000 0x0 0x100000>;
2559			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
2560			#interrupt-cells = <3>;
2561			interrupt-controller;
2562			interrupt-parent = <&intc>;
2563			#redistributor-regions = <1>;
2564			redistributor-stride = <0x0 0x20000>;
2565		};
2566
2567		cpufreq_hw: cpufreq@f521000 {
2568			compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw";
2569			reg = <0x0 0x0f521000 0x0 0x1000>;
2570			reg-names = "freq-domain0";
2571			interrupts-extended = <&lmh_cluster 0>;
2572			interrupt-names = "dcvsh-irq-0";
2573			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
2574			clock-names = "xo", "alternate";
2575
2576			#freq-domain-cells = <1>;
2577			#clock-cells = <1>;
2578		};
2579
2580		lmh_cluster: lmh@f550800 {
2581			compatible = "qcom,qcm2290-lmh", "qcom,sm8150-lmh";
2582			reg = <0x0 0x0f550800 0x0 0x400>;
2583			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
2584			cpus = <&cpu0>;
2585			qcom,lmh-temp-arm-millicelsius = <65000>;
2586			qcom,lmh-temp-low-millicelsius = <94500>;
2587			qcom,lmh-temp-high-millicelsius = <95000>;
2588			interrupt-controller;
2589			#interrupt-cells = <1>;
2590		};
2591	};
2592
2593	thermal-zones {
2594		mapss-thermal {
2595			thermal-sensors = <&tsens0 0>;
2596
2597			trips {
2598				mapss_alert0: trip-point0 {
2599					temperature = <90000>;
2600					hysteresis = <2000>;
2601					type = "passive";
2602				};
2603
2604				mapss_alert1: trip-point1 {
2605					temperature = <95000>;
2606					hysteresis = <2000>;
2607					type = "passive";
2608				};
2609
2610				mapss_crit: mapss-crit {
2611					temperature = <110000>;
2612					hysteresis = <1000>;
2613					type = "critical";
2614				};
2615			};
2616		};
2617
2618		video-thermal {
2619			thermal-sensors = <&tsens0 1>;
2620
2621			trips {
2622				video_alert0: trip-point0 {
2623					temperature = <90000>;
2624					hysteresis = <2000>;
2625					type = "passive";
2626				};
2627
2628				video_alert1: trip-point1 {
2629					temperature = <95000>;
2630					hysteresis = <2000>;
2631					type = "passive";
2632				};
2633
2634				video_crit: video-crit {
2635					temperature = <110000>;
2636					hysteresis = <1000>;
2637					type = "critical";
2638				};
2639			};
2640		};
2641
2642		wlan-thermal {
2643			thermal-sensors = <&tsens0 2>;
2644
2645			trips {
2646				wlan_alert0: trip-point0 {
2647					temperature = <90000>;
2648					hysteresis = <2000>;
2649					type = "passive";
2650				};
2651
2652				wlan_alert1: trip-point1 {
2653					temperature = <95000>;
2654					hysteresis = <2000>;
2655					type = "passive";
2656				};
2657
2658				wlan_crit: wlan-crit {
2659					temperature = <110000>;
2660					hysteresis = <1000>;
2661					type = "critical";
2662				};
2663			};
2664		};
2665
2666		cpuss0-thermal {
2667			thermal-sensors = <&tsens0 3>;
2668
2669			trips {
2670				cpuss0_alert0: trip-point0 {
2671					temperature = <90000>;
2672					hysteresis = <2000>;
2673					type = "passive";
2674				};
2675
2676				cpuss0_alert1: trip-point1 {
2677					temperature = <95000>;
2678					hysteresis = <2000>;
2679					type = "passive";
2680				};
2681
2682				cpuss0_crit: cpuss0-crit {
2683					temperature = <110000>;
2684					hysteresis = <1000>;
2685					type = "critical";
2686				};
2687			};
2688		};
2689
2690		cpuss1-thermal {
2691			thermal-sensors = <&tsens0 4>;
2692
2693			trips {
2694				cpuss1_alert0: trip-point0 {
2695					temperature = <90000>;
2696					hysteresis = <2000>;
2697					type = "passive";
2698				};
2699
2700				cpuss1_alert1: trip-point1 {
2701					temperature = <95000>;
2702					hysteresis = <2000>;
2703					type = "passive";
2704				};
2705
2706				cpuss1_crit: cpuss1-crit {
2707					temperature = <110000>;
2708					hysteresis = <1000>;
2709					type = "critical";
2710				};
2711			};
2712		};
2713
2714		mdm0-thermal {
2715			thermal-sensors = <&tsens0 5>;
2716
2717			trips {
2718				mdm0_alert0: trip-point0 {
2719					temperature = <90000>;
2720					hysteresis = <2000>;
2721					type = "passive";
2722				};
2723
2724				mdm0_alert1: trip-point1 {
2725					temperature = <95000>;
2726					hysteresis = <2000>;
2727					type = "passive";
2728				};
2729
2730				mdm0_crit: mdm0-crit {
2731					temperature = <110000>;
2732					hysteresis = <1000>;
2733					type = "critical";
2734				};
2735			};
2736		};
2737
2738		mdm1-thermal {
2739			thermal-sensors = <&tsens0 6>;
2740
2741			trips {
2742				mdm1_alert0: trip-point0 {
2743					temperature = <90000>;
2744					hysteresis = <2000>;
2745					type = "passive";
2746				};
2747
2748				mdm1_alert1: trip-point1 {
2749					temperature = <95000>;
2750					hysteresis = <2000>;
2751					type = "passive";
2752				};
2753
2754				mdm1_crit: mdm1-crit {
2755					temperature = <110000>;
2756					hysteresis = <1000>;
2757					type = "critical";
2758				};
2759			};
2760		};
2761
2762		gpu-thermal {
2763			thermal-sensors = <&tsens0 7>;
2764
2765			trips {
2766				gpu_alert0: trip-point0 {
2767					temperature = <90000>;
2768					hysteresis = <2000>;
2769					type = "passive";
2770				};
2771
2772				gpu_alert1: trip-point1 {
2773					temperature = <95000>;
2774					hysteresis = <2000>;
2775					type = "passive";
2776				};
2777
2778				gpu_crit: gpu-crit {
2779					temperature = <110000>;
2780					hysteresis = <1000>;
2781					type = "critical";
2782				};
2783			};
2784		};
2785
2786		hm-center-thermal {
2787			thermal-sensors = <&tsens0 8>;
2788
2789			trips {
2790				hm_center_alert0: trip-point0 {
2791					temperature = <90000>;
2792					hysteresis = <2000>;
2793					type = "passive";
2794				};
2795
2796				hm_center_alert1: trip-point1 {
2797					temperature = <95000>;
2798					hysteresis = <2000>;
2799					type = "passive";
2800				};
2801
2802				hm_center_crit: hm-center-crit {
2803					temperature = <110000>;
2804					hysteresis = <1000>;
2805					type = "critical";
2806				};
2807			};
2808		};
2809
2810		camera-thermal {
2811			thermal-sensors = <&tsens0 9>;
2812
2813			trips {
2814				camera_alert0: trip-point0 {
2815					temperature = <90000>;
2816					hysteresis = <2000>;
2817					type = "passive";
2818				};
2819
2820				camera_alert1: trip-point1 {
2821					temperature = <95000>;
2822					hysteresis = <2000>;
2823					type = "passive";
2824				};
2825
2826				camera_crit: camera-crit {
2827					temperature = <110000>;
2828					hysteresis = <1000>;
2829					type = "critical";
2830				};
2831			};
2832		};
2833	};
2834
2835	timer {
2836		compatible = "arm,armv8-timer";
2837		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
2838			     <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
2839			     <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
2840			     <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
2841	};
2842};
2843