1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
4 */
5
6#include <dt-bindings/clock/qcom,gcc-sm6350.h>
7#include <dt-bindings/clock/qcom,rpmh.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/mailbox/qcom-ipcc.h>
11#include <dt-bindings/power/qcom-rpmpd.h>
12#include <dt-bindings/soc/qcom,rpmh-rsc.h>
13
14/ {
15	interrupt-parent = <&intc>;
16	#address-cells = <2>;
17	#size-cells = <2>;
18
19	clocks {
20		xo_board: xo-board {
21			compatible = "fixed-clock";
22			#clock-cells = <0>;
23			clock-frequency = <76800000>;
24			clock-output-names = "xo_board";
25		};
26
27		sleep_clk: sleep-clk {
28			compatible = "fixed-clock";
29			clock-frequency = <32764>;
30			#clock-cells = <0>;
31		};
32	};
33
34	cpus {
35		#address-cells = <2>;
36		#size-cells = <0>;
37
38		CPU0: cpu@0 {
39			device_type = "cpu";
40			compatible = "qcom,kryo560";
41			reg = <0x0 0x0>;
42			enable-method = "psci";
43			capacity-dmips-mhz = <1024>;
44			dynamic-power-coefficient = <100>;
45			next-level-cache = <&L2_0>;
46			qcom,freq-domain = <&cpufreq_hw 0>;
47			#cooling-cells = <2>;
48			L2_0: l2-cache {
49				compatible = "cache";
50				next-level-cache = <&L3_0>;
51				L3_0: l3-cache {
52					compatible = "cache";
53				};
54			};
55		};
56
57		CPU1: cpu@100 {
58			device_type = "cpu";
59			compatible = "qcom,kryo560";
60			reg = <0x0 0x100>;
61			enable-method = "psci";
62			capacity-dmips-mhz = <1024>;
63			dynamic-power-coefficient = <100>;
64			next-level-cache = <&L2_100>;
65			qcom,freq-domain = <&cpufreq_hw 0>;
66			#cooling-cells = <2>;
67			L2_100: l2-cache {
68				compatible = "cache";
69				next-level-cache = <&L3_0>;
70			};
71		};
72
73		CPU2: cpu@200 {
74			device_type = "cpu";
75			compatible = "qcom,kryo560";
76			reg = <0x0 0x200>;
77			enable-method = "psci";
78			capacity-dmips-mhz = <1024>;
79			dynamic-power-coefficient = <100>;
80			next-level-cache = <&L2_200>;
81			qcom,freq-domain = <&cpufreq_hw 0>;
82			#cooling-cells = <2>;
83			L2_200: l2-cache {
84				compatible = "cache";
85				next-level-cache = <&L3_0>;
86			};
87		};
88
89		CPU3: cpu@300 {
90			device_type = "cpu";
91			compatible = "qcom,kryo560";
92			reg = <0x0 0x300>;
93			enable-method = "psci";
94			capacity-dmips-mhz = <1024>;
95			dynamic-power-coefficient = <100>;
96			next-level-cache = <&L2_300>;
97			qcom,freq-domain = <&cpufreq_hw 0>;
98			#cooling-cells = <2>;
99			L2_300: l2-cache {
100				compatible = "cache";
101				next-level-cache = <&L3_0>;
102			};
103		};
104
105		CPU4: cpu@400 {
106			device_type = "cpu";
107			compatible = "qcom,kryo560";
108			reg = <0x0 0x400>;
109			enable-method = "psci";
110			capacity-dmips-mhz = <1024>;
111			dynamic-power-coefficient = <100>;
112			next-level-cache = <&L2_400>;
113			qcom,freq-domain = <&cpufreq_hw 0>;
114			#cooling-cells = <2>;
115			L2_400: l2-cache {
116				compatible = "cache";
117				next-level-cache = <&L3_0>;
118			};
119		};
120
121		CPU5: cpu@500 {
122			device_type = "cpu";
123			compatible = "qcom,kryo560";
124			reg = <0x0 0x500>;
125			enable-method = "psci";
126			capacity-dmips-mhz = <1024>;
127			dynamic-power-coefficient = <100>;
128			next-level-cache = <&L2_500>;
129			qcom,freq-domain = <&cpufreq_hw 0>;
130			#cooling-cells = <2>;
131			L2_500: l2-cache {
132				compatible = "cache";
133				next-level-cache = <&L3_0>;
134			};
135
136		};
137
138		CPU6: cpu@600 {
139			device_type = "cpu";
140			compatible = "qcom,kryo560";
141			reg = <0x0 0x600>;
142			enable-method = "psci";
143			capacity-dmips-mhz = <1894>;
144			dynamic-power-coefficient = <703>;
145			next-level-cache = <&L2_600>;
146			qcom,freq-domain = <&cpufreq_hw 1>;
147			#cooling-cells = <2>;
148			L2_600: l2-cache {
149				compatible = "cache";
150				next-level-cache = <&L3_0>;
151			};
152		};
153
154		CPU7: cpu@700 {
155			device_type = "cpu";
156			compatible = "qcom,kryo560";
157			reg = <0x0 0x700>;
158			enable-method = "psci";
159			capacity-dmips-mhz = <1894>;
160			dynamic-power-coefficient = <703>;
161			next-level-cache = <&L2_700>;
162			qcom,freq-domain = <&cpufreq_hw 1>;
163			#cooling-cells = <2>;
164			L2_700: l2-cache {
165				compatible = "cache";
166				next-level-cache = <&L3_0>;
167			};
168		};
169
170		cpu-map {
171			cluster0 {
172				core0 {
173					cpu = <&CPU0>;
174				};
175
176				core1 {
177					cpu = <&CPU1>;
178				};
179
180				core2 {
181					cpu = <&CPU2>;
182				};
183
184				core3 {
185					cpu = <&CPU3>;
186				};
187
188				core4 {
189					cpu = <&CPU4>;
190				};
191
192				core5 {
193					cpu = <&CPU5>;
194				};
195
196				core6 {
197					cpu = <&CPU6>;
198				};
199
200				core7 {
201					cpu = <&CPU7>;
202				};
203			};
204		};
205	};
206
207	firmware {
208		scm: scm {
209			compatible = "qcom,scm-sm6350", "qcom,scm";
210			#reset-cells = <1>;
211		};
212	};
213
214	memory@80000000 {
215		device_type = "memory";
216		/* We expect the bootloader to fill in the size */
217		reg = <0x0 0x80000000 0x0 0x0>;
218	};
219
220	pmu {
221		compatible = "arm,armv8-pmuv3";
222		interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_LOW>;
223	};
224
225	psci {
226		compatible = "arm,psci-1.0";
227		method = "smc";
228	};
229
230	reserved_memory: reserved-memory {
231		#address-cells = <2>;
232		#size-cells = <2>;
233		ranges;
234
235		hyp_mem: memory@80000000 {
236			reg = <0 0x80000000 0 0x600000>;
237			no-map;
238		};
239
240		xbl_aop_mem: memory@80700000 {
241			reg = <0 0x80700000 0 0x160000>;
242			no-map;
243		};
244
245		cmd_db: memory@80860000 {
246			compatible = "qcom,cmd-db";
247			reg = <0 0x80860000 0 0x20000>;
248			no-map;
249		};
250
251		sec_apps_mem: memory@808ff000 {
252			reg = <0 0x808ff000 0 0x1000>;
253			no-map;
254		};
255
256		smem_mem: memory@80900000 {
257			reg = <0 0x80900000 0 0x200000>;
258			no-map;
259		};
260
261		cdsp_sec_mem: memory@80b00000 {
262			reg = <0 0x80b00000 0 0x1e00000>;
263			no-map;
264		};
265
266		pil_camera_mem: memory@86000000 {
267			reg = <0 0x86000000 0 0x500000>;
268			no-map;
269		};
270
271		pil_npu_mem: memory@86500000 {
272			reg = <0 0x86500000 0 0x500000>;
273			no-map;
274		};
275
276		pil_video_mem: memory@86a00000 {
277			reg = <0 0x86a00000 0 0x500000>;
278			no-map;
279		};
280
281		pil_cdsp_mem: memory@86f00000 {
282			reg = <0 0x86f00000 0 0x1e00000>;
283			no-map;
284		};
285
286		pil_adsp_mem: memory@88d00000 {
287			reg = <0 0x88d00000 0 0x2800000>;
288			no-map;
289		};
290
291		wlan_fw_mem: memory@8b500000 {
292			reg = <0 0x8b500000 0 0x200000>;
293			no-map;
294		};
295
296		pil_ipa_fw_mem: memory@8b700000 {
297			reg = <0 0x8b700000 0 0x10000>;
298			no-map;
299		};
300
301		pil_ipa_gsi_mem: memory@8b710000 {
302			reg = <0 0x8b710000 0 0x5400>;
303			no-map;
304		};
305
306		pil_gpu_mem: memory@8b715400 {
307			reg = <0 0x8b715400 0 0x2000>;
308			no-map;
309		};
310
311		pil_modem_mem: memory@8b800000 {
312			reg = <0 0x8b800000 0 0xf800000>;
313			no-map;
314		};
315
316		cont_splash_memory: memory@a0000000 {
317			reg = <0 0xa0000000 0 0x2300000>;
318			no-map;
319		};
320
321		dfps_data_memory: memory@a2300000 {
322			reg = <0 0xa2300000 0 0x100000>;
323			no-map;
324		};
325
326		removed_region: memory@c0000000 {
327			reg = <0 0xc0000000 0 0x3900000>;
328			no-map;
329		};
330
331		debug_region: memory@ffb00000 {
332			reg = <0 0xffb00000 0 0xc0000>;
333			no-map;
334		};
335
336		last_log_region: memory@ffbc0000 {
337			reg = <0 0xffbc0000 0 0x40000>;
338			no-map;
339		};
340
341		ramoops: ramoops@ffc00000 {
342			compatible = "removed-dma-pool", "ramoops";
343			reg = <0 0xffc00000 0 0x00100000>;
344			record-size = <0x1000>;
345			console-size = <0x40000>;
346			ftrace-size = <0x0>;
347			msg-size = <0x20000 0x20000>;
348			cc-size = <0x0>;
349			no-map;
350		};
351
352		cmdline_region: memory@ffd00000 {
353			reg = <0 0xffd00000 0 0x1000>;
354			no-map;
355		};
356	};
357
358	smem {
359		compatible = "qcom,smem";
360		memory-region = <&smem_mem>;
361		hwlocks = <&tcsr_mutex 3>;
362	};
363
364	smp2p-adsp {
365		compatible = "qcom,smp2p";
366		qcom,smem = <443>, <429>;
367		interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
368					     IPCC_MPROC_SIGNAL_SMP2P
369					     IRQ_TYPE_EDGE_RISING>;
370		mboxes = <&ipcc IPCC_CLIENT_LPASS
371				IPCC_MPROC_SIGNAL_SMP2P>;
372
373		qcom,local-pid = <0>;
374		qcom,remote-pid = <2>;
375
376		smp2p_adsp_out: master-kernel {
377			qcom,entry-name = "master-kernel";
378			#qcom,smem-state-cells = <1>;
379		};
380
381		smp2p_adsp_in: slave-kernel {
382			qcom,entry-name = "slave-kernel";
383			interrupt-controller;
384			#interrupt-cells = <2>;
385		};
386	};
387
388	smp2p-cdsp {
389		compatible = "qcom,smp2p";
390		qcom,smem = <94>, <432>;
391		interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
392					     IPCC_MPROC_SIGNAL_SMP2P
393					     IRQ_TYPE_EDGE_RISING>;
394		mboxes = <&ipcc IPCC_CLIENT_CDSP
395				IPCC_MPROC_SIGNAL_SMP2P>;
396
397		qcom,local-pid = <0>;
398		qcom,remote-pid = <5>;
399
400		smp2p_cdsp_out: master-kernel {
401			qcom,entry-name = "master-kernel";
402			#qcom,smem-state-cells = <1>;
403		};
404
405		smp2p_cdsp_in: slave-kernel {
406			qcom,entry-name = "slave-kernel";
407			interrupt-controller;
408			#interrupt-cells = <2>;
409		};
410	};
411
412	smp2p-mpss {
413		compatible = "qcom,smp2p";
414		qcom,smem = <435>, <428>;
415
416		interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
417					     IPCC_MPROC_SIGNAL_SMP2P
418					     IRQ_TYPE_EDGE_RISING>;
419		mboxes = <&ipcc IPCC_CLIENT_MPSS
420				IPCC_MPROC_SIGNAL_SMP2P>;
421
422		qcom,local-pid = <0>;
423		qcom,remote-pid = <1>;
424
425		modem_smp2p_out: master-kernel {
426			qcom,entry-name = "master-kernel";
427			#qcom,smem-state-cells = <1>;
428		};
429
430		modem_smp2p_in: slave-kernel {
431			qcom,entry-name = "slave-kernel";
432
433			interrupt-controller;
434			#interrupt-cells = <2>;
435		};
436	};
437
438	soc: soc@0 {
439		#address-cells = <2>;
440		#size-cells = <2>;
441		ranges = <0 0 0 0 0x10 0>;
442		dma-ranges = <0 0 0 0 0x10 0>;
443		compatible = "simple-bus";
444
445		gcc: clock-controller@100000 {
446			compatible = "qcom,gcc-sm6350";
447			reg = <0 0x00100000 0 0x1f0000>;
448			#clock-cells = <1>;
449			#reset-cells = <1>;
450			#power-domain-cells = <1>;
451			clock-names = "bi_tcxo",
452				      "bi_tcxo_ao",
453				      "sleep_clk";
454			clocks = <&rpmhcc RPMH_CXO_CLK>,
455				 <&rpmhcc RPMH_CXO_CLK_A>,
456				 <&sleep_clk>;
457		};
458
459		ipcc: mailbox@408000 {
460			compatible = "qcom,sm6350-ipcc", "qcom,ipcc";
461			reg = <0 0x00408000 0 0x1000>;
462			interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
463			interrupt-controller;
464			#interrupt-cells = <3>;
465			#mbox-cells = <2>;
466		};
467
468		rng: rng@793000 {
469			compatible = "qcom,prng-ee";
470			reg = <0 0x00793000 0 0x1000>;
471			clocks = <&gcc GCC_PRNG_AHB_CLK>;
472			clock-names = "core";
473		};
474
475		sdhc_1: mmc@7c4000 {
476			compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
477			reg = <0 0x007c4000 0 0x1000>,
478				<0 0x007c5000 0 0x1000>,
479				<0 0x007c8000 0 0x8000>;
480			reg-names = "hc", "cqhci", "ice";
481
482			interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
483				     <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
484			interrupt-names = "hc_irq", "pwr_irq";
485
486			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
487				 <&gcc GCC_SDCC1_APPS_CLK>,
488				 <&rpmhcc RPMH_CXO_CLK>;
489			clock-names = "iface", "core", "xo";
490			qcom,dll-config = <0x000f642c>;
491			qcom,ddr-config = <0x80040868>;
492			power-domains = <&rpmhpd SM6350_CX>;
493			operating-points-v2 = <&sdhc1_opp_table>;
494			bus-width = <8>;
495			non-removable;
496			supports-cqe;
497
498			status = "disabled";
499
500			sdhc1_opp_table: opp-table {
501				compatible = "operating-points-v2";
502
503				opp-19200000 {
504					opp-hz = /bits/ 64 <19200000>;
505					required-opps = <&rpmhpd_opp_min_svs>;
506				};
507
508				opp-100000000 {
509					opp-hz = /bits/ 64 <100000000>;
510					required-opps = <&rpmhpd_opp_low_svs>;
511				};
512
513				opp-384000000 {
514					opp-hz = /bits/ 64 <384000000>;
515					required-opps = <&rpmhpd_opp_svs_l1>;
516				};
517			};
518		};
519
520		qupv3_id_0: geniqup@8c0000 {
521			compatible = "qcom,geni-se-qup";
522			reg = <0x0 0x8c0000 0x0 0x2000>;
523			clock-names = "m-ahb", "s-ahb";
524			clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
525				 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
526			#address-cells = <2>;
527			#size-cells = <2>;
528			iommus = <&apps_smmu 0x43 0x0>;
529			ranges;
530			status = "disabled";
531
532			i2c0: i2c@880000 {
533				compatible = "qcom,geni-i2c";
534				reg = <0 0x00880000 0 0x4000>;
535				clock-names = "se";
536				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
537				pinctrl-names = "default";
538				pinctrl-0 = <&qup_i2c0_default>;
539				interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
540				#address-cells = <1>;
541				#size-cells = <0>;
542				status = "disabled";
543			};
544
545			i2c2: i2c@888000 {
546				compatible = "qcom,geni-i2c";
547				reg = <0 0x00888000 0 0x4000>;
548				clock-names = "se";
549				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
550				pinctrl-names = "default";
551				pinctrl-0 = <&qup_i2c2_default>;
552				interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
553				#address-cells = <1>;
554				#size-cells = <0>;
555				status = "disabled";
556			};
557		};
558
559		qupv3_id_1: geniqup@9c0000 {
560			compatible = "qcom,geni-se-qup";
561			reg = <0x0 0x9c0000 0x0 0x2000>;
562			clock-names = "m-ahb", "s-ahb";
563			clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
564				 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
565			#address-cells = <2>;
566			#size-cells = <2>;
567			iommus = <&apps_smmu 0x4c3 0x0>;
568			ranges;
569			status = "disabled";
570
571			i2c6: i2c@980000 {
572				compatible = "qcom,geni-i2c";
573				reg = <0 0x00980000 0 0x4000>;
574				clock-names = "se";
575				clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
576				pinctrl-names = "default";
577				pinctrl-0 = <&qup_i2c6_default>;
578				interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
579				#address-cells = <1>;
580				#size-cells = <0>;
581				status = "disabled";
582			};
583
584			i2c7: i2c@984000 {
585				compatible = "qcom,geni-i2c";
586				reg = <0 0x00984000 0 0x4000>;
587				clock-names = "se";
588				clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
589				pinctrl-names = "default";
590				pinctrl-0 = <&qup_i2c7_default>;
591				interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
592				#address-cells = <1>;
593				#size-cells = <0>;
594				status = "disabled";
595			};
596
597			i2c8: i2c@988000 {
598				compatible = "qcom,geni-i2c";
599				reg = <0 0x00988000 0 0x4000>;
600				clock-names = "se";
601				clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
602				pinctrl-names = "default";
603				pinctrl-0 = <&qup_i2c8_default>;
604				interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
605				#address-cells = <1>;
606				#size-cells = <0>;
607				status = "disabled";
608			};
609
610			uart9: serial@98c000 {
611				compatible = "qcom,geni-debug-uart";
612				reg = <0 0x98c000 0 0x4000>;
613				clock-names = "se";
614				clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
615				pinctrl-names = "default";
616				pinctrl-0 = <&qup_uart9_default>;
617				interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
618				status = "disabled";
619			};
620
621			i2c10: i2c@990000 {
622				compatible = "qcom,geni-i2c";
623				reg = <0 0x00990000 0 0x4000>;
624				clock-names = "se";
625				clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
626				pinctrl-names = "default";
627				pinctrl-0 = <&qup_i2c10_default>;
628				interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
629				#address-cells = <1>;
630				#size-cells = <0>;
631				status = "disabled";
632			};
633
634		};
635
636		ufs_mem_hc: ufs@1d84000 {
637			compatible = "qcom,sm6350-ufshc", "qcom,ufshc",
638				     "jedec,ufs-2.0";
639			reg = <0 0x01d84000 0 0x3000>,
640			      <0 0x01d90000 0 0x8000>;
641			reg-names = "std", "ice";
642			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
643			phys = <&ufs_mem_phy_lanes>;
644			phy-names = "ufsphy";
645			lanes-per-direction = <2>;
646			#reset-cells = <1>;
647			resets = <&gcc GCC_UFS_PHY_BCR>;
648			reset-names = "rst";
649
650			power-domains = <&gcc UFS_PHY_GDSC>;
651
652			iommus = <&apps_smmu 0x80 0x0>;
653
654			clock-names = "core_clk",
655				      "bus_aggr_clk",
656				      "iface_clk",
657				      "core_clk_unipro",
658				      "ref_clk",
659				      "tx_lane0_sync_clk",
660				      "rx_lane0_sync_clk",
661				      "rx_lane1_sync_clk",
662				      "ice_core_clk";
663			clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
664				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
665				 <&gcc GCC_UFS_PHY_AHB_CLK>,
666				 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
667				 <&rpmhcc RPMH_QLINK_CLK>,
668				 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
669				 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
670				 <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>,
671				 <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
672			freq-table-hz =
673				<50000000 200000000>,
674				<0 0>,
675				<0 0>,
676				<37500000 150000000>,
677				<75000000 300000000>,
678				<0 0>,
679				<0 0>,
680				<0 0>,
681				<0 0>;
682
683			status = "disabled";
684		};
685
686		ufs_mem_phy: phy@1d87000 {
687			compatible = "qcom,sm6350-qmp-ufs-phy";
688			reg = <0 0x01d87000 0 0x18c>;
689			#address-cells = <2>;
690			#size-cells = <2>;
691			ranges;
692
693			clock-names = "ref",
694				      "ref_aux";
695			clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
696				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
697
698			resets = <&ufs_mem_hc 0>;
699			reset-names = "ufsphy";
700
701			status = "disabled";
702
703			ufs_mem_phy_lanes: phy@1d87400 {
704				reg = <0 0x01d87400 0 0x128>,
705				      <0 0x01d87600 0 0x1fc>,
706				      <0 0x01d87c00 0 0x1dc>,
707				      <0 0x01d87800 0 0x128>,
708				      <0 0x01d87a00 0 0x1fc>;
709				#phy-cells = <0>;
710			};
711		};
712
713		tcsr_mutex: hwlock@1f40000 {
714			compatible = "qcom,tcsr-mutex";
715			reg = <0x0 0x01f40000 0x0 0x40000>;
716			#hwlock-cells = <1>;
717		};
718
719		adsp: remoteproc@3000000 {
720			compatible = "qcom,sm6350-adsp-pas";
721			reg = <0 0x03000000 0 0x100>;
722
723			interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
724					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
725					      <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
726					      <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
727					      <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
728			interrupt-names = "wdog", "fatal", "ready",
729					  "handover", "stop-ack";
730
731			clocks = <&rpmhcc RPMH_CXO_CLK>;
732			clock-names = "xo";
733
734			power-domains = <&rpmhpd SM6350_LCX>,
735					<&rpmhpd SM6350_LMX>;
736			power-domain-names = "lcx", "lmx";
737
738			memory-region = <&pil_adsp_mem>;
739
740			qcom,qmp = <&aoss_qmp>;
741
742			qcom,smem-states = <&smp2p_adsp_out 0>;
743			qcom,smem-state-names = "stop";
744
745			status = "disabled";
746
747			glink-edge {
748				interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
749							     IPCC_MPROC_SIGNAL_GLINK_QMP
750							     IRQ_TYPE_EDGE_RISING>;
751				mboxes = <&ipcc IPCC_CLIENT_LPASS
752						IPCC_MPROC_SIGNAL_GLINK_QMP>;
753
754				label = "lpass";
755				qcom,remote-pid = <2>;
756
757				fastrpc {
758					compatible = "qcom,fastrpc";
759					qcom,glink-channels = "fastrpcglink-apps-dsp";
760					label = "adsp";
761					#address-cells = <1>;
762					#size-cells = <0>;
763
764					compute-cb@3 {
765						compatible = "qcom,fastrpc-compute-cb";
766						reg = <3>;
767						iommus = <&apps_smmu 0x1003 0x0>;
768					};
769
770					compute-cb@4 {
771						compatible = "qcom,fastrpc-compute-cb";
772						reg = <4>;
773						iommus = <&apps_smmu 0x1004 0x0>;
774					};
775
776					compute-cb@5 {
777						compatible = "qcom,fastrpc-compute-cb";
778						reg = <5>;
779						iommus = <&apps_smmu 0x1005 0x0>;
780						qcom,nsessions = <5>;
781					};
782				};
783			};
784		};
785
786		mpss: remoteproc@4080000 {
787			compatible = "qcom,sm6350-mpss-pas";
788			reg = <0x0 0x04080000 0x0 0x4040>;
789
790			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
791					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
792					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
793					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
794					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
795					      <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
796			interrupt-names = "wdog", "fatal", "ready", "handover",
797					  "stop-ack", "shutdown-ack";
798
799			clocks = <&rpmhcc RPMH_CXO_CLK>;
800			clock-names = "xo";
801
802			power-domains = <&rpmhpd SM6350_CX>,
803					<&rpmhpd SM6350_MSS>;
804			power-domain-names = "cx", "mss";
805
806			memory-region = <&pil_modem_mem>;
807
808			qcom,qmp = <&aoss_qmp>;
809
810			qcom,smem-states = <&modem_smp2p_out 0>;
811			qcom,smem-state-names = "stop";
812
813			status = "disabled";
814
815			glink-edge {
816				interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
817							     IPCC_MPROC_SIGNAL_GLINK_QMP
818							     IRQ_TYPE_EDGE_RISING>;
819				mboxes = <&ipcc IPCC_CLIENT_MPSS
820						IPCC_MPROC_SIGNAL_GLINK_QMP>;
821				label = "modem";
822				qcom,remote-pid = <1>;
823			};
824		};
825
826		cdsp: remoteproc@8300000 {
827			compatible = "qcom,sm6350-cdsp-pas";
828			reg = <0 0x08300000 0 0x10000>;
829
830			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
831					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
832					      <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
833					      <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
834					      <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
835			interrupt-names = "wdog", "fatal", "ready",
836					  "handover", "stop-ack";
837
838			clocks = <&rpmhcc RPMH_CXO_CLK>;
839			clock-names = "xo";
840
841			power-domains = <&rpmhpd SM6350_CX>,
842					<&rpmhpd SM6350_MX>;
843			power-domain-names = "cx", "mx";
844
845			memory-region = <&pil_cdsp_mem>;
846
847			qcom,qmp = <&aoss_qmp>;
848
849			qcom,smem-states = <&smp2p_cdsp_out 0>;
850			qcom,smem-state-names = "stop";
851
852			status = "disabled";
853
854			glink-edge {
855				interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
856							     IPCC_MPROC_SIGNAL_GLINK_QMP
857							     IRQ_TYPE_EDGE_RISING>;
858				mboxes = <&ipcc IPCC_CLIENT_CDSP
859						IPCC_MPROC_SIGNAL_GLINK_QMP>;
860
861				label = "cdsp";
862				qcom,remote-pid = <5>;
863
864				fastrpc {
865					compatible = "qcom,fastrpc";
866					qcom,glink-channels = "fastrpcglink-apps-dsp";
867					label = "cdsp";
868					#address-cells = <1>;
869					#size-cells = <0>;
870
871					compute-cb@1 {
872						compatible = "qcom,fastrpc-compute-cb";
873						reg = <1>;
874						iommus = <&apps_smmu 0x1401 0x20>;
875					};
876
877					compute-cb@2 {
878						compatible = "qcom,fastrpc-compute-cb";
879						reg = <2>;
880						iommus = <&apps_smmu 0x1402 0x20>;
881					};
882
883					compute-cb@3 {
884						compatible = "qcom,fastrpc-compute-cb";
885						reg = <3>;
886						iommus = <&apps_smmu 0x1403 0x20>;
887					};
888
889					compute-cb@4 {
890						compatible = "qcom,fastrpc-compute-cb";
891						reg = <4>;
892						iommus = <&apps_smmu 0x1404 0x20>;
893					};
894
895					compute-cb@5 {
896						compatible = "qcom,fastrpc-compute-cb";
897						reg = <5>;
898						iommus = <&apps_smmu 0x1405 0x20>;
899					};
900
901					compute-cb@6 {
902						compatible = "qcom,fastrpc-compute-cb";
903						reg = <6>;
904						iommus = <&apps_smmu 0x1406 0x20>;
905					};
906
907					compute-cb@7 {
908						compatible = "qcom,fastrpc-compute-cb";
909						reg = <7>;
910						iommus = <&apps_smmu 0x1407 0x20>;
911					};
912
913					compute-cb@8 {
914						compatible = "qcom,fastrpc-compute-cb";
915						reg = <8>;
916						iommus = <&apps_smmu 0x1408 0x20>;
917					};
918
919					/* note: secure cb9 in downstream */
920				};
921			};
922		};
923
924		sdhc_2: mmc@8804000 {
925			compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
926			reg = <0 0x08804000 0 0x1000>;
927
928			interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
929				     <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
930			interrupt-names = "hc_irq", "pwr_irq";
931
932			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
933				 <&gcc GCC_SDCC2_APPS_CLK>,
934				 <&rpmhcc RPMH_CXO_CLK>;
935			clock-names = "iface", "core", "xo";
936			qcom,dll-config = <0x0007642c>;
937			qcom,ddr-config = <0x80040868>;
938			power-domains = <&rpmhpd SM6350_CX>;
939			operating-points-v2 = <&sdhc2_opp_table>;
940			bus-width = <4>;
941
942			status = "disabled";
943
944			sdhc2_opp_table: opp-table {
945				compatible = "operating-points-v2";
946
947				opp-100000000 {
948					opp-hz = /bits/ 64 <100000000>;
949					required-opps = <&rpmhpd_opp_svs_l1>;
950				};
951
952				opp-202000000 {
953					opp-hz = /bits/ 64 <202000000>;
954					required-opps = <&rpmhpd_opp_nom>;
955				};
956			};
957		};
958
959		usb_1_hsphy: phy@88e3000 {
960			compatible = "qcom,sm6350-qusb2-phy", "qcom,qusb2-v2-phy";
961			reg = <0 0x088e3000 0 0x400>;
962			status = "disabled";
963			#phy-cells = <0>;
964
965			clocks = <&xo_board>, <&rpmhcc RPMH_CXO_CLK>;
966			clock-names = "cfg_ahb", "ref";
967
968			resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
969		};
970
971		usb_1_qmpphy: phy@88e9000 {
972			compatible = "qcom,sc7180-qmp-usb3-dp-phy";
973			reg = <0 0x088e9000 0 0x200>,
974			      <0 0x088e8000 0 0x40>,
975			      <0 0x088ea000 0 0x200>;
976			status = "disabled";
977			#address-cells = <2>;
978			#size-cells = <2>;
979			ranges;
980
981			clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
982				 <&xo_board>,
983				 <&rpmhcc RPMH_QLINK_CLK>,
984				 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
985			clock-names = "aux", "cfg_ahb", "ref", "com_aux";
986
987			resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
988				 <&gcc GCC_USB3_PHY_PRIM_BCR>;
989			reset-names = "phy", "common";
990
991			usb_1_ssphy: usb3-phy@88e9200 {
992				reg = <0 0x088e9200 0 0x200>,
993				      <0 0x088e9400 0 0x200>,
994				      <0 0x088e9c00 0 0x400>,
995				      <0 0x088e9600 0 0x200>,
996				      <0 0x088e9800 0 0x200>,
997				      <0 0x088e9a00 0 0x100>;
998				#clock-cells = <0>;
999				#phy-cells = <0>;
1000				clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
1001				clock-names = "pipe0";
1002				clock-output-names = "usb3_phy_pipe_clk_src";
1003			};
1004
1005			dp_phy: dp-phy@88ea200 {
1006				reg = <0 0x088ea200 0 0x200>,
1007				      <0 0x088ea400 0 0x200>,
1008				      <0 0x088eac00 0 0x400>,
1009				      <0 0x088ea600 0 0x200>,
1010				      <0 0x088ea800 0 0x200>,
1011				      <0 0x088eaa00 0 0x100>;
1012				#phy-cells = <0>;
1013				#clock-cells = <1>;
1014				clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
1015				clock-names = "pipe0";
1016				clock-output-names = "usb3_phy_pipe_clk_src";
1017			};
1018		};
1019
1020		system-cache-controller@9200000 {
1021			compatible = "qcom,sm6350-llcc";
1022			reg = <0 0x09200000 0 0x50000>, <0 0x09600000 0 0x50000>;
1023			reg-names = "llcc_base", "llcc_broadcast_base";
1024		};
1025
1026		usb_1: usb@a6f8800 {
1027			compatible = "qcom,sm6350-dwc3", "qcom,dwc3";
1028			reg = <0 0x0a6f8800 0 0x400>;
1029			status = "disabled";
1030			#address-cells = <2>;
1031			#size-cells = <2>;
1032			ranges;
1033
1034			clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1035				 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1036				 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
1037				 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1038				 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
1039			clock-names = "cfg_noc",
1040				      "core",
1041				      "iface",
1042				      "sleep",
1043				      "mock_utmi";
1044
1045			interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
1046					      <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
1047					      <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
1048					      <&pdc 14 IRQ_TYPE_EDGE_BOTH>;
1049
1050			interrupt-names = "hs_phy_irq", "ss_phy_irq",
1051					  "dm_hs_phy_irq", "dp_hs_phy_irq";
1052
1053			power-domains = <&gcc USB30_PRIM_GDSC>;
1054
1055			resets = <&gcc GCC_USB30_PRIM_BCR>;
1056
1057			usb_1_dwc3: usb@a600000 {
1058				compatible = "snps,dwc3";
1059				reg = <0 0x0a600000 0 0xcd00>;
1060				interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
1061				iommus = <&apps_smmu 0x540 0x0>;
1062				snps,dis_u2_susphy_quirk;
1063				snps,dis_enblslpm_quirk;
1064				snps,has-lpm-erratum;
1065				snps,hird-threshold = /bits/ 8 <0x10>;
1066				phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
1067				phy-names = "usb2-phy", "usb3-phy";
1068			};
1069		};
1070
1071		pdc: interrupt-controller@b220000 {
1072			compatible = "qcom,sm6350-pdc", "qcom,pdc";
1073			reg = <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x64>;
1074			qcom,pdc-ranges = <0 480 94>, <94 609 31>,
1075					  <125 63 1>, <126 655 12>, <138 139 15>;
1076			#interrupt-cells = <2>;
1077			interrupt-parent = <&intc>;
1078			interrupt-controller;
1079		};
1080
1081		tsens0: thermal-sensor@c263000 {
1082			compatible = "qcom,sm6350-tsens", "qcom,tsens-v2";
1083			reg = <0 0x0c263000 0 0x1ff>, /* TM */
1084			      <0 0x0c222000 0 0x8>; /* SROT */
1085			#qcom,sensors = <16>;
1086			interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
1087				     <&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
1088			interrupt-names = "uplow", "critical";
1089			#thermal-sensor-cells = <1>;
1090		};
1091
1092		tsens1: thermal-sensor@c265000 {
1093			compatible = "qcom,sm6350-tsens", "qcom,tsens-v2";
1094			reg = <0 0x0c265000 0 0x1ff>, /* TM */
1095			      <0 0x0c223000 0 0x8>; /* SROT */
1096			#qcom,sensors = <16>;
1097			interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
1098				     <&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
1099			interrupt-names = "uplow", "critical";
1100			#thermal-sensor-cells = <1>;
1101		};
1102
1103		aoss_qmp: power-controller@c300000 {
1104			compatible = "qcom,sm6350-aoss-qmp", "qcom,aoss-qmp";
1105			reg = <0 0x0c300000 0 0x1000>;
1106			interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
1107						     IRQ_TYPE_EDGE_RISING>;
1108			mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
1109
1110			#clock-cells = <0>;
1111		};
1112
1113		spmi_bus: spmi@c440000 {
1114			compatible = "qcom,spmi-pmic-arb";
1115			reg = <0 0xc440000 0 0x1100>,
1116			      <0 0xc600000 0 0x2000000>,
1117			      <0 0xe600000 0 0x100000>,
1118			      <0 0xe700000 0 0xa0000>,
1119			      <0 0xc40a000 0 0x26000>;
1120			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1121			interrupt-names = "periph_irq";
1122			interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
1123			qcom,ee = <0>;
1124			qcom,channel = <0>;
1125			#address-cells = <2>;
1126			#size-cells = <0>;
1127			interrupt-controller;
1128			#interrupt-cells = <4>;
1129		};
1130
1131		tlmm: pinctrl@f100000 {
1132			compatible = "qcom,sm6350-tlmm";
1133			reg = <0 0x0f100000 0 0x300000>;
1134			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
1135					<GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
1136					<GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
1137					<GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
1138					<GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
1139					<GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
1140					<GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
1141					<GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
1142					<GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
1143			gpio-controller;
1144			#gpio-cells = <2>;
1145			interrupt-controller;
1146			#interrupt-cells = <2>;
1147			gpio-ranges = <&tlmm 0 0 157>;
1148
1149			qup_uart9_default: qup-uart9-default {
1150				pins = "gpio25", "gpio26";
1151				function = "qup13_f2";
1152				drive-strength = <2>;
1153				bias-disable;
1154			};
1155
1156			qup_i2c0_default: qup-i2c0-default {
1157				pins = "gpio0", "gpio1";
1158				function = "qup00";
1159				drive-strength = <2>;
1160				bias-pull-up;
1161			};
1162
1163			qup_i2c2_default: qup-i2c2-default {
1164				pins = "gpio45", "gpio46";
1165				function = "qup02";
1166				drive-strength = <2>;
1167				bias-pull-up;
1168			};
1169
1170			qup_i2c6_default: qup-i2c6-default {
1171				pins = "gpio13", "gpio14";
1172				function = "qup10";
1173				drive-strength = <2>;
1174				bias-pull-up;
1175			};
1176
1177			qup_i2c7_default: qup-i2c7-default {
1178				pins = "gpio27", "gpio28";
1179				function = "qup11";
1180				drive-strength = <2>;
1181				bias-pull-up;
1182			};
1183
1184			qup_i2c8_default: qup-i2c8-default {
1185				pins = "gpio19", "gpio20";
1186				function = "qup12";
1187				drive-strength = <2>;
1188				bias-pull-up;
1189			};
1190
1191			qup_i2c10_default: qup-i2c10-default {
1192				pins = "gpio4", "gpio5";
1193				function = "qup14";
1194				drive-strength = <2>;
1195				bias-pull-up;
1196			};
1197		};
1198
1199		apps_smmu: iommu@15000000 {
1200			compatible = "qcom,sm6350-smmu-500", "arm,mmu-500";
1201			reg = <0 0x15000000 0 0x100000>;
1202			#iommu-cells = <2>;
1203			#global-interrupts = <1>;
1204			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1205				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1206				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1207				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1208				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1209				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1210				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1211				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1212				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1213				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1214				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1215				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1216				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1217				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1218				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1219				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1220				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1221				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1222				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1223				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1224				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1225				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1226				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1227				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1228				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1229				     <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
1230				     <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
1231				     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
1232				     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
1233				     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
1234				     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
1235				     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
1236				     <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
1237				     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
1238				     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
1239				     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
1240				     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
1241				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
1242				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
1243				     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
1244				     <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
1245				     <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
1246				     <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
1247				     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
1248				     <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
1249				     <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
1250				     <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
1251				     <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
1252				     <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
1253				     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
1254				     <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
1255				     <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
1256				     <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
1257				     <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
1258				     <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
1259				     <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
1260				     <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
1261				     <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
1262				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
1263				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
1264				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
1265				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
1266				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
1267				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
1268				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
1269				     <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
1270				     <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
1271				     <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
1272				     <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
1273				     <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
1274				     <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
1275				     <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
1276				     <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
1277				     <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
1278				     <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
1279				     <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
1280				     <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
1281				     <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
1282				     <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
1283				     <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
1284				     <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>;
1285		};
1286
1287		intc: interrupt-controller@17a00000 {
1288			compatible = "arm,gic-v3";
1289			#interrupt-cells = <3>;
1290			interrupt-controller;
1291			reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
1292			      <0x0 0x17a60000 0x0 0x100000>;    /* GICR * 8 */
1293			interrupts = <GIC_PPI 8 IRQ_TYPE_LEVEL_HIGH>;
1294		};
1295
1296		watchdog@17c10000 {
1297			compatible = "qcom,apss-wdt-sm6350", "qcom,kpss-wdt";
1298			reg = <0 0x17c10000 0 0x1000>;
1299			clocks = <&sleep_clk>;
1300			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
1301		};
1302
1303		timer@17c20000 {
1304			compatible = "arm,armv7-timer-mem";
1305			reg = <0x0 0x17c20000 0x0 0x1000>;
1306			clock-frequency = <19200000>;
1307			#address-cells = <1>;
1308			#size-cells = <1>;
1309			ranges = <0 0 0 0x20000000>;
1310
1311			frame@17c21000 {
1312				frame-number = <0>;
1313				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1314					     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1315				reg = <0x17c21000 0x1000>,
1316				      <0x17c22000 0x1000>;
1317			};
1318
1319			frame@17c23000 {
1320				frame-number = <1>;
1321				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1322				reg = <0x17c23000 0x1000>;
1323				status = "disabled";
1324			};
1325
1326			frame@17c25000 {
1327				frame-number = <2>;
1328				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1329				reg = <0x17c25000 0x1000>;
1330				status = "disabled";
1331			};
1332
1333			frame@17c27000 {
1334				frame-number = <3>;
1335				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1336				reg = <0x17c27000 0x1000>;
1337				status = "disabled";
1338			};
1339
1340			frame@17c29000 {
1341				frame-number = <4>;
1342				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1343				reg = <0x17c29000 0x1000>;
1344				status = "disabled";
1345			};
1346
1347			frame@17c2b000 {
1348				frame-number = <5>;
1349				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1350				reg = <0x17c2b000 0x1000>;
1351				status = "disabled";
1352			};
1353
1354			frame@17c2d000 {
1355				frame-number = <6>;
1356				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1357				reg = <0x17c2d000 0x1000>;
1358				status = "disabled";
1359			};
1360		};
1361
1362		wifi: wifi@18800000 {
1363			compatible = "qcom,wcn3990-wifi";
1364			reg = <0 0x18800000 0 0x800000>;
1365			reg-names = "membase";
1366			memory-region = <&wlan_fw_mem>;
1367			interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
1368				     <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
1369				     <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
1370				     <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
1371				     <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
1372				     <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
1373				     <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
1374				     <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
1375				     <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
1376				     <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
1377				     <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
1378				     <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
1379			iommus = <&apps_smmu 0x20 0x1>;
1380			qcom,msa-fixed-perm;
1381			status = "disabled";
1382		};
1383
1384		apps_rsc: rsc@18200000 {
1385			compatible = "qcom,rpmh-rsc";
1386			label = "apps_rsc";
1387			reg = <0x0 0x18200000 0x0 0x10000>,
1388				<0x0 0x18210000 0x0 0x10000>,
1389				<0x0 0x18220000 0x0 0x10000>;
1390			reg-names = "drv-0", "drv-1", "drv-2";
1391			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1392				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1393				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1394			qcom,tcs-offset = <0xd00>;
1395			qcom,drv-id = <2>;
1396			qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
1397					  <WAKE_TCS 3>, <CONTROL_TCS 1>;
1398
1399			rpmhcc: clock-controller {
1400				compatible = "qcom,sm6350-rpmh-clk";
1401				#clock-cells = <1>;
1402				clock-names = "xo";
1403				clocks = <&xo_board>;
1404			};
1405
1406			rpmhpd: power-controller {
1407				compatible = "qcom,sm6350-rpmhpd";
1408				#power-domain-cells = <1>;
1409				operating-points-v2 = <&rpmhpd_opp_table>;
1410
1411				rpmhpd_opp_table: opp-table {
1412					compatible = "operating-points-v2";
1413
1414					rpmhpd_opp_ret: opp1 {
1415						opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1416					};
1417
1418					rpmhpd_opp_min_svs: opp2 {
1419						opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1420					};
1421
1422					rpmhpd_opp_low_svs: opp3 {
1423						opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1424					};
1425
1426					rpmhpd_opp_svs: opp4 {
1427						opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1428					};
1429
1430					rpmhpd_opp_svs_l1: opp5 {
1431						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1432					};
1433
1434					rpmhpd_opp_nom: opp6 {
1435						opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1436					};
1437
1438					rpmhpd_opp_nom_l1: opp7 {
1439						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1440					};
1441
1442					rpmhpd_opp_nom_l2: opp8 {
1443						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
1444					};
1445
1446					rpmhpd_opp_turbo: opp9 {
1447						opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1448					};
1449
1450					rpmhpd_opp_turbo_l1: opp10 {
1451						opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1452					};
1453				};
1454			};
1455
1456			apps_bcm_voter: bcm-voter {
1457				compatible = "qcom,bcm-voter";
1458			};
1459		};
1460
1461		cpufreq_hw: cpufreq@18323000 {
1462			compatible = "qcom,cpufreq-hw";
1463			reg = <0 0x18323000 0 0x1000>, <0 0x18325800 0 0x1000>;
1464			reg-names = "freq-domain0", "freq-domain1";
1465			clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
1466			clock-names = "xo", "alternate";
1467
1468			#freq-domain-cells = <1>;
1469		};
1470	};
1471
1472	timer {
1473		compatible = "arm,armv8-timer";
1474		clock-frequency = <19200000>;
1475		interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1476			     <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1477			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1478			     <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
1479	};
1480};
1481