xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sc7280.dtsi (revision 132f5a8d)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * sc7280 SoC device tree source
4 *
5 * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
6 */
7
8#include <dt-bindings/clock/qcom,gcc-sc7280.h>
9#include <dt-bindings/clock/qcom,rpmh.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/mailbox/qcom-ipcc.h>
12#include <dt-bindings/power/qcom-aoss-qmp.h>
13#include <dt-bindings/power/qcom-rpmpd.h>
14#include <dt-bindings/soc/qcom,rpmh-rsc.h>
15
16/ {
17	interrupt-parent = <&intc>;
18
19	#address-cells = <2>;
20	#size-cells = <2>;
21
22	chosen { };
23
24	clocks {
25		xo_board: xo-board {
26			compatible = "fixed-clock";
27			clock-frequency = <76800000>;
28			#clock-cells = <0>;
29		};
30
31		sleep_clk: sleep-clk {
32			compatible = "fixed-clock";
33			clock-frequency = <32000>;
34			#clock-cells = <0>;
35		};
36	};
37
38	reserved-memory {
39		#address-cells = <2>;
40		#size-cells = <2>;
41		ranges;
42
43		aop_mem: memory@80800000 {
44			reg = <0x0 0x80800000 0x0 0x60000>;
45			no-map;
46		};
47
48		aop_cmd_db_mem: memory@80860000 {
49			reg = <0x0 0x80860000 0x0 0x20000>;
50			compatible = "qcom,cmd-db";
51			no-map;
52		};
53
54		cpucp_mem: memory@80b00000 {
55			no-map;
56			reg = <0x0 0x80b00000 0x0 0x100000>;
57		};
58	};
59
60	cpus {
61		#address-cells = <2>;
62		#size-cells = <0>;
63
64		CPU0: cpu@0 {
65			device_type = "cpu";
66			compatible = "arm,kryo";
67			reg = <0x0 0x0>;
68			enable-method = "psci";
69			cpu-idle-states = <&LITTLE_CPU_SLEEP_0
70					   &LITTLE_CPU_SLEEP_1
71					   &CLUSTER_SLEEP_0>;
72			next-level-cache = <&L2_0>;
73			L2_0: l2-cache {
74				compatible = "cache";
75				next-level-cache = <&L3_0>;
76				L3_0: l3-cache {
77					compatible = "cache";
78				};
79			};
80		};
81
82		CPU1: cpu@100 {
83			device_type = "cpu";
84			compatible = "arm,kryo";
85			reg = <0x0 0x100>;
86			enable-method = "psci";
87			cpu-idle-states = <&LITTLE_CPU_SLEEP_0
88					   &LITTLE_CPU_SLEEP_1
89					   &CLUSTER_SLEEP_0>;
90			next-level-cache = <&L2_100>;
91			L2_100: l2-cache {
92				compatible = "cache";
93				next-level-cache = <&L3_0>;
94			};
95		};
96
97		CPU2: cpu@200 {
98			device_type = "cpu";
99			compatible = "arm,kryo";
100			reg = <0x0 0x200>;
101			enable-method = "psci";
102			cpu-idle-states = <&LITTLE_CPU_SLEEP_0
103					   &LITTLE_CPU_SLEEP_1
104					   &CLUSTER_SLEEP_0>;
105			next-level-cache = <&L2_200>;
106			L2_200: l2-cache {
107				compatible = "cache";
108				next-level-cache = <&L3_0>;
109			};
110		};
111
112		CPU3: cpu@300 {
113			device_type = "cpu";
114			compatible = "arm,kryo";
115			reg = <0x0 0x300>;
116			enable-method = "psci";
117			cpu-idle-states = <&LITTLE_CPU_SLEEP_0
118					   &LITTLE_CPU_SLEEP_1
119					   &CLUSTER_SLEEP_0>;
120			next-level-cache = <&L2_300>;
121			L2_300: l2-cache {
122				compatible = "cache";
123				next-level-cache = <&L3_0>;
124			};
125		};
126
127		CPU4: cpu@400 {
128			device_type = "cpu";
129			compatible = "arm,kryo";
130			reg = <0x0 0x400>;
131			enable-method = "psci";
132			cpu-idle-states = <&BIG_CPU_SLEEP_0
133					   &BIG_CPU_SLEEP_1
134					   &CLUSTER_SLEEP_0>;
135			next-level-cache = <&L2_400>;
136			L2_400: l2-cache {
137				compatible = "cache";
138				next-level-cache = <&L3_0>;
139			};
140		};
141
142		CPU5: cpu@500 {
143			device_type = "cpu";
144			compatible = "arm,kryo";
145			reg = <0x0 0x500>;
146			enable-method = "psci";
147			cpu-idle-states = <&BIG_CPU_SLEEP_0
148					   &BIG_CPU_SLEEP_1
149					   &CLUSTER_SLEEP_0>;
150			next-level-cache = <&L2_500>;
151			L2_500: l2-cache {
152				compatible = "cache";
153				next-level-cache = <&L3_0>;
154			};
155		};
156
157		CPU6: cpu@600 {
158			device_type = "cpu";
159			compatible = "arm,kryo";
160			reg = <0x0 0x600>;
161			enable-method = "psci";
162			cpu-idle-states = <&BIG_CPU_SLEEP_0
163					   &BIG_CPU_SLEEP_1
164					   &CLUSTER_SLEEP_0>;
165			next-level-cache = <&L2_600>;
166			L2_600: l2-cache {
167				compatible = "cache";
168				next-level-cache = <&L3_0>;
169			};
170		};
171
172		CPU7: cpu@700 {
173			device_type = "cpu";
174			compatible = "arm,kryo";
175			reg = <0x0 0x700>;
176			enable-method = "psci";
177			cpu-idle-states = <&BIG_CPU_SLEEP_0
178					   &BIG_CPU_SLEEP_1
179					   &CLUSTER_SLEEP_0>;
180			next-level-cache = <&L2_700>;
181			L2_700: l2-cache {
182				compatible = "cache";
183				next-level-cache = <&L3_0>;
184			};
185		};
186
187		idle-states {
188			entry-method = "psci";
189
190			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
191				compatible = "arm,idle-state";
192				idle-state-name = "little-power-down";
193				arm,psci-suspend-param = <0x40000003>;
194				entry-latency-us = <549>;
195				exit-latency-us = <901>;
196				min-residency-us = <1774>;
197				local-timer-stop;
198			};
199
200			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
201				compatible = "arm,idle-state";
202				idle-state-name = "little-rail-power-down";
203				arm,psci-suspend-param = <0x40000004>;
204				entry-latency-us = <702>;
205				exit-latency-us = <915>;
206				min-residency-us = <4001>;
207				local-timer-stop;
208			};
209
210			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
211				compatible = "arm,idle-state";
212				idle-state-name = "big-power-down";
213				arm,psci-suspend-param = <0x40000003>;
214				entry-latency-us = <523>;
215				exit-latency-us = <1244>;
216				min-residency-us = <2207>;
217				local-timer-stop;
218			};
219
220			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
221				compatible = "arm,idle-state";
222				idle-state-name = "big-rail-power-down";
223				arm,psci-suspend-param = <0x40000004>;
224				entry-latency-us = <526>;
225				exit-latency-us = <1854>;
226				min-residency-us = <5555>;
227				local-timer-stop;
228			};
229
230			CLUSTER_SLEEP_0: cluster-sleep-0 {
231				compatible = "arm,idle-state";
232				idle-state-name = "cluster-power-down";
233				arm,psci-suspend-param = <0x40003444>;
234				entry-latency-us = <3263>;
235				exit-latency-us = <6562>;
236				min-residency-us = <9926>;
237				local-timer-stop;
238			};
239		};
240	};
241
242	memory@80000000 {
243		device_type = "memory";
244		/* We expect the bootloader to fill in the size */
245		reg = <0 0x80000000 0 0>;
246	};
247
248	firmware {
249		scm {
250			compatible = "qcom,scm-sc7280", "qcom,scm";
251		};
252	};
253
254	pmu {
255		compatible = "arm,armv8-pmuv3";
256		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
257	};
258
259	psci {
260		compatible = "arm,psci-1.0";
261		method = "smc";
262	};
263
264	soc: soc@0 {
265		#address-cells = <2>;
266		#size-cells = <2>;
267		ranges = <0 0 0 0 0x10 0>;
268		dma-ranges = <0 0 0 0 0x10 0>;
269		compatible = "simple-bus";
270
271		gcc: clock-controller@100000 {
272			compatible = "qcom,gcc-sc7280";
273			reg = <0 0x00100000 0 0x1f0000>;
274			clocks = <&rpmhcc RPMH_CXO_CLK>,
275				 <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
276				 <0>, <0>, <0>, <0>, <0>, <0>;
277			clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
278				      "pcie_0_pipe_clk", "pcie_1_pipe-clk",
279				      "ufs_phy_rx_symbol_0_clk", "ufs_phy_rx_symbol_1_clk",
280				      "ufs_phy_tx_symbol_0_clk",
281				      "usb3_phy_wrapper_gcc_usb30_pipe_clk";
282			#clock-cells = <1>;
283			#reset-cells = <1>;
284			#power-domain-cells = <1>;
285		};
286
287		ipcc: mailbox@408000 {
288			compatible = "qcom,sc7280-ipcc", "qcom,ipcc";
289			reg = <0 0x00408000 0 0x1000>;
290			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
291			interrupt-controller;
292			#interrupt-cells = <3>;
293			#mbox-cells = <2>;
294		};
295
296		qupv3_id_0: geniqup@9c0000 {
297			compatible = "qcom,geni-se-qup";
298			reg = <0 0x009c0000 0 0x2000>;
299			clock-names = "m-ahb", "s-ahb";
300			clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
301				 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
302			#address-cells = <2>;
303			#size-cells = <2>;
304			ranges;
305			status = "disabled";
306
307			uart5: serial@994000 {
308				compatible = "qcom,geni-debug-uart";
309				reg = <0 0x00994000 0 0x4000>;
310				clock-names = "se";
311				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
312				pinctrl-names = "default";
313				pinctrl-0 = <&qup_uart5_default>;
314				interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
315				status = "disabled";
316			};
317		};
318
319		stm@6002000 {
320			compatible = "arm,coresight-stm", "arm,primecell";
321			reg = <0 0x06002000 0 0x1000>,
322			      <0 0x16280000 0 0x180000>;
323			reg-names = "stm-base", "stm-stimulus-base";
324
325			clocks = <&aoss_qmp>;
326			clock-names = "apb_pclk";
327
328			out-ports {
329				port {
330					stm_out: endpoint {
331						remote-endpoint = <&funnel0_in7>;
332					};
333				};
334			};
335		};
336
337		funnel@6041000 {
338			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
339			reg = <0 0x06041000 0 0x1000>;
340
341			clocks = <&aoss_qmp>;
342			clock-names = "apb_pclk";
343
344			out-ports {
345				port {
346					funnel0_out: endpoint {
347						remote-endpoint = <&merge_funnel_in0>;
348					};
349				};
350			};
351
352			in-ports {
353				#address-cells = <1>;
354				#size-cells = <0>;
355
356				port@7 {
357					reg = <7>;
358					funnel0_in7: endpoint {
359						remote-endpoint = <&stm_out>;
360					};
361				};
362			};
363		};
364
365		funnel@6042000 {
366			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
367			reg = <0 0x06042000 0 0x1000>;
368
369			clocks = <&aoss_qmp>;
370			clock-names = "apb_pclk";
371
372			out-ports {
373				port {
374					funnel1_out: endpoint {
375						remote-endpoint = <&merge_funnel_in1>;
376					};
377				};
378			};
379
380			in-ports {
381				#address-cells = <1>;
382				#size-cells = <0>;
383
384				port@4 {
385					reg = <4>;
386					funnel1_in4: endpoint {
387						remote-endpoint = <&apss_merge_funnel_out>;
388					};
389				};
390			};
391		};
392
393		funnel@6045000 {
394			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
395			reg = <0 0x06045000 0 0x1000>;
396
397			clocks = <&aoss_qmp>;
398			clock-names = "apb_pclk";
399
400			out-ports {
401				port {
402					merge_funnel_out: endpoint {
403						remote-endpoint = <&swao_funnel_in>;
404					};
405				};
406			};
407
408			in-ports {
409				#address-cells = <1>;
410				#size-cells = <0>;
411
412				port@0 {
413					reg = <0>;
414					merge_funnel_in0: endpoint {
415						remote-endpoint = <&funnel0_out>;
416					};
417				};
418
419				port@1 {
420					reg = <1>;
421					merge_funnel_in1: endpoint {
422						remote-endpoint = <&funnel1_out>;
423					};
424				};
425			};
426		};
427
428		replicator@6046000 {
429			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
430			reg = <0 0x06046000 0 0x1000>;
431
432			clocks = <&aoss_qmp>;
433			clock-names = "apb_pclk";
434
435			out-ports {
436				port {
437					replicator_out: endpoint {
438						remote-endpoint = <&etr_in>;
439					};
440				};
441			};
442
443			in-ports {
444				port {
445					replicator_in: endpoint {
446						remote-endpoint = <&swao_replicator_out>;
447					};
448				};
449			};
450		};
451
452		etr@6048000 {
453			compatible = "arm,coresight-tmc", "arm,primecell";
454			reg = <0 0x06048000 0 0x1000>;
455			iommus = <&apps_smmu 0x04c0 0>;
456
457			clocks = <&aoss_qmp>;
458			clock-names = "apb_pclk";
459			arm,scatter-gather;
460
461			in-ports {
462				port {
463					etr_in: endpoint {
464						remote-endpoint = <&replicator_out>;
465					};
466				};
467			};
468		};
469
470		funnel@6b04000 {
471			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
472			reg = <0 0x06b04000 0 0x1000>;
473
474			clocks = <&aoss_qmp>;
475			clock-names = "apb_pclk";
476
477			out-ports {
478				port {
479					swao_funnel_out: endpoint {
480						remote-endpoint = <&etf_in>;
481					};
482				};
483			};
484
485			in-ports {
486				#address-cells = <1>;
487				#size-cells = <0>;
488
489				port@7 {
490					reg = <7>;
491					swao_funnel_in: endpoint {
492						remote-endpoint = <&merge_funnel_out>;
493					};
494				};
495			};
496		};
497
498		etf@6b05000 {
499			compatible = "arm,coresight-tmc", "arm,primecell";
500			reg = <0 0x06b05000 0 0x1000>;
501
502			clocks = <&aoss_qmp>;
503			clock-names = "apb_pclk";
504
505			out-ports {
506				port {
507					etf_out: endpoint {
508						remote-endpoint = <&swao_replicator_in>;
509					};
510				};
511			};
512
513			in-ports {
514				port {
515					etf_in: endpoint {
516						remote-endpoint = <&swao_funnel_out>;
517					};
518				};
519			};
520		};
521
522		replicator@6b06000 {
523			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
524			reg = <0 0x06b06000 0 0x1000>;
525
526			clocks = <&aoss_qmp>;
527			clock-names = "apb_pclk";
528			qcom,replicator-loses-context;
529
530			out-ports {
531				port {
532					swao_replicator_out: endpoint {
533						remote-endpoint = <&replicator_in>;
534					};
535				};
536			};
537
538			in-ports {
539				port {
540					swao_replicator_in: endpoint {
541						remote-endpoint = <&etf_out>;
542					};
543				};
544			};
545		};
546
547		etm@7040000 {
548			compatible = "arm,coresight-etm4x", "arm,primecell";
549			reg = <0 0x07040000 0 0x1000>;
550
551			cpu = <&CPU0>;
552
553			clocks = <&aoss_qmp>;
554			clock-names = "apb_pclk";
555			arm,coresight-loses-context-with-cpu;
556			qcom,skip-power-up;
557
558			out-ports {
559				port {
560					etm0_out: endpoint {
561						remote-endpoint = <&apss_funnel_in0>;
562					};
563				};
564			};
565		};
566
567		etm@7140000 {
568			compatible = "arm,coresight-etm4x", "arm,primecell";
569			reg = <0 0x07140000 0 0x1000>;
570
571			cpu = <&CPU1>;
572
573			clocks = <&aoss_qmp>;
574			clock-names = "apb_pclk";
575			arm,coresight-loses-context-with-cpu;
576			qcom,skip-power-up;
577
578			out-ports {
579				port {
580					etm1_out: endpoint {
581						remote-endpoint = <&apss_funnel_in1>;
582					};
583				};
584			};
585		};
586
587		etm@7240000 {
588			compatible = "arm,coresight-etm4x", "arm,primecell";
589			reg = <0 0x07240000 0 0x1000>;
590
591			cpu = <&CPU2>;
592
593			clocks = <&aoss_qmp>;
594			clock-names = "apb_pclk";
595			arm,coresight-loses-context-with-cpu;
596			qcom,skip-power-up;
597
598			out-ports {
599				port {
600					etm2_out: endpoint {
601						remote-endpoint = <&apss_funnel_in2>;
602					};
603				};
604			};
605		};
606
607		etm@7340000 {
608			compatible = "arm,coresight-etm4x", "arm,primecell";
609			reg = <0 0x07340000 0 0x1000>;
610
611			cpu = <&CPU3>;
612
613			clocks = <&aoss_qmp>;
614			clock-names = "apb_pclk";
615			arm,coresight-loses-context-with-cpu;
616			qcom,skip-power-up;
617
618			out-ports {
619				port {
620					etm3_out: endpoint {
621						remote-endpoint = <&apss_funnel_in3>;
622					};
623				};
624			};
625		};
626
627		etm@7440000 {
628			compatible = "arm,coresight-etm4x", "arm,primecell";
629			reg = <0 0x07440000 0 0x1000>;
630
631			cpu = <&CPU4>;
632
633			clocks = <&aoss_qmp>;
634			clock-names = "apb_pclk";
635			arm,coresight-loses-context-with-cpu;
636			qcom,skip-power-up;
637
638			out-ports {
639				port {
640					etm4_out: endpoint {
641						remote-endpoint = <&apss_funnel_in4>;
642					};
643				};
644			};
645		};
646
647		etm@7540000 {
648			compatible = "arm,coresight-etm4x", "arm,primecell";
649			reg = <0 0x07540000 0 0x1000>;
650
651			cpu = <&CPU5>;
652
653			clocks = <&aoss_qmp>;
654			clock-names = "apb_pclk";
655			arm,coresight-loses-context-with-cpu;
656			qcom,skip-power-up;
657
658			out-ports {
659				port {
660					etm5_out: endpoint {
661						remote-endpoint = <&apss_funnel_in5>;
662					};
663				};
664			};
665		};
666
667		etm@7640000 {
668			compatible = "arm,coresight-etm4x", "arm,primecell";
669			reg = <0 0x07640000 0 0x1000>;
670
671			cpu = <&CPU6>;
672
673			clocks = <&aoss_qmp>;
674			clock-names = "apb_pclk";
675			arm,coresight-loses-context-with-cpu;
676			qcom,skip-power-up;
677
678			out-ports {
679				port {
680					etm6_out: endpoint {
681						remote-endpoint = <&apss_funnel_in6>;
682					};
683				};
684			};
685		};
686
687		etm@7740000 {
688			compatible = "arm,coresight-etm4x", "arm,primecell";
689			reg = <0 0x07740000 0 0x1000>;
690
691			cpu = <&CPU7>;
692
693			clocks = <&aoss_qmp>;
694			clock-names = "apb_pclk";
695			arm,coresight-loses-context-with-cpu;
696			qcom,skip-power-up;
697
698			out-ports {
699				port {
700					etm7_out: endpoint {
701						remote-endpoint = <&apss_funnel_in7>;
702					};
703				};
704			};
705		};
706
707		funnel@7800000 { /* APSS Funnel */
708			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
709			reg = <0 0x07800000 0 0x1000>;
710
711			clocks = <&aoss_qmp>;
712			clock-names = "apb_pclk";
713
714			out-ports {
715				port {
716					apss_funnel_out: endpoint {
717						remote-endpoint = <&apss_merge_funnel_in>;
718					};
719				};
720			};
721
722			in-ports {
723				#address-cells = <1>;
724				#size-cells = <0>;
725
726				port@0 {
727					reg = <0>;
728					apss_funnel_in0: endpoint {
729						remote-endpoint = <&etm0_out>;
730					};
731				};
732
733				port@1 {
734					reg = <1>;
735					apss_funnel_in1: endpoint {
736						remote-endpoint = <&etm1_out>;
737					};
738				};
739
740				port@2 {
741					reg = <2>;
742					apss_funnel_in2: endpoint {
743						remote-endpoint = <&etm2_out>;
744					};
745				};
746
747				port@3 {
748					reg = <3>;
749					apss_funnel_in3: endpoint {
750						remote-endpoint = <&etm3_out>;
751					};
752				};
753
754				port@4 {
755					reg = <4>;
756					apss_funnel_in4: endpoint {
757						remote-endpoint = <&etm4_out>;
758					};
759				};
760
761				port@5 {
762					reg = <5>;
763					apss_funnel_in5: endpoint {
764						remote-endpoint = <&etm5_out>;
765					};
766				};
767
768				port@6 {
769					reg = <6>;
770					apss_funnel_in6: endpoint {
771						remote-endpoint = <&etm6_out>;
772					};
773				};
774
775				port@7 {
776					reg = <7>;
777					apss_funnel_in7: endpoint {
778						remote-endpoint = <&etm7_out>;
779					};
780				};
781			};
782		};
783
784		funnel@7810000 {
785			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
786			reg = <0 0x07810000 0 0x1000>;
787
788			clocks = <&aoss_qmp>;
789			clock-names = "apb_pclk";
790
791			out-ports {
792				port {
793					apss_merge_funnel_out: endpoint {
794						remote-endpoint = <&funnel1_in4>;
795					};
796				};
797			};
798
799			in-ports {
800				port {
801					apss_merge_funnel_in: endpoint {
802						remote-endpoint = <&apss_funnel_out>;
803					};
804				};
805			};
806		};
807
808		system-cache-controller@9200000 {
809			compatible = "qcom,sc7280-llcc";
810			reg = <0 0x09200000 0 0xd0000>, <0 0x09600000 0 0x50000>;
811			reg-names = "llcc_base", "llcc_broadcast_base";
812			interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
813		};
814
815		pdc: interrupt-controller@b220000 {
816			compatible = "qcom,sc7280-pdc", "qcom,pdc";
817			reg = <0 0x0b220000 0 0x30000>;
818			qcom,pdc-ranges = <0 480 40>, <40 140 14>, <54 263 1>,
819					  <55 306 4>, <59 312 3>, <62 374 2>,
820					  <64 434 2>, <66 438 3>, <69 86 1>,
821					  <70 520 54>, <124 609 31>, <155 63 1>,
822					  <156 716 12>;
823			#interrupt-cells = <2>;
824			interrupt-parent = <&intc>;
825			interrupt-controller;
826		};
827
828		tsens0: thermal-sensor@c263000 {
829			compatible = "qcom,sc7280-tsens","qcom,tsens-v2";
830			reg = <0 0x0c263000 0 0x1ff>, /* TM */
831				<0 0x0c222000 0 0x1ff>; /* SROT */
832			#qcom,sensors = <15>;
833			interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
834				     <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
835			interrupt-names = "uplow","critical";
836			#thermal-sensor-cells = <1>;
837		};
838
839		tsens1: thermal-sensor@c265000 {
840			compatible = "qcom,sc7280-tsens","qcom,tsens-v2";
841			reg = <0 0x0c265000 0 0x1ff>, /* TM */
842				<0 0x0c223000 0 0x1ff>; /* SROT */
843			#qcom,sensors = <12>;
844			interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
845				     <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
846			interrupt-names = "uplow","critical";
847			#thermal-sensor-cells = <1>;
848		};
849
850		aoss_qmp: power-controller@c300000 {
851			compatible = "qcom,sc7280-aoss-qmp";
852			reg = <0 0x0c300000 0 0x100000>;
853			interrupts-extended = <&ipcc IPCC_CLIENT_AOP
854						     IPCC_MPROC_SIGNAL_GLINK_QMP
855						     IRQ_TYPE_EDGE_RISING>;
856			mboxes = <&ipcc IPCC_CLIENT_AOP
857					IPCC_MPROC_SIGNAL_GLINK_QMP>;
858
859			#clock-cells = <0>;
860			#power-domain-cells = <1>;
861		};
862
863		spmi_bus: spmi@c440000 {
864			compatible = "qcom,spmi-pmic-arb";
865			reg = <0 0x0c440000 0 0x1100>,
866			      <0 0x0c600000 0 0x2000000>,
867			      <0 0x0e600000 0 0x100000>,
868			      <0 0x0e700000 0 0xa0000>,
869			      <0 0x0c40a000 0 0x26000>;
870			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
871			interrupt-names = "periph_irq";
872			interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
873			qcom,ee = <0>;
874			qcom,channel = <0>;
875			#address-cells = <1>;
876			#size-cells = <1>;
877			interrupt-controller;
878			#interrupt-cells = <4>;
879		};
880
881		tlmm: pinctrl@f100000 {
882			compatible = "qcom,sc7280-pinctrl";
883			reg = <0 0x0f100000 0 0x300000>;
884			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
885			gpio-controller;
886			#gpio-cells = <2>;
887			interrupt-controller;
888			#interrupt-cells = <2>;
889			gpio-ranges = <&tlmm 0 0 175>;
890			wakeup-parent = <&pdc>;
891
892			qup_uart5_default: qup-uart5-default {
893				pins = "gpio46", "gpio47";
894				function = "qup13";
895			};
896		};
897
898		apps_smmu: iommu@15000000 {
899			compatible = "qcom,sc7280-smmu-500", "arm,mmu-500";
900			reg = <0 0x15000000 0 0x100000>;
901			#iommu-cells = <2>;
902			#global-interrupts = <1>;
903			dma-coherent;
904			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
905				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
906				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
907				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
908				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
909				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
910				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
911				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
912				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
913				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
914				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
915				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
916				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
917				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
918				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
919				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
920				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
921				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
922				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
923				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
924				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
925				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
926				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
927				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
928				     <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
929				     <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
930				     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
931				     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
932				     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
933				     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
934				     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
935				     <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
936				     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
937				     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
938				     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
939				     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
940				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
941				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
942				     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
943				     <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
944				     <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
945				     <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
946				     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
947				     <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
948				     <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
949				     <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
950				     <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
951				     <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
952				     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
953				     <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
954				     <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
955				     <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
956				     <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
957				     <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
958				     <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
959				     <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
960				     <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
961				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
962				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
963				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
964				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
965				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
966				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
967				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
968				     <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
969				     <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
970				     <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
971				     <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
972				     <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
973				     <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
974				     <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
975				     <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
976				     <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
977				     <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
978				     <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
979				     <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
980				     <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
981				     <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
982				     <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
983				     <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
984				     <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>;
985		};
986
987		intc: interrupt-controller@17a00000 {
988			compatible = "arm,gic-v3";
989			#address-cells = <2>;
990			#size-cells = <2>;
991			ranges;
992			#interrupt-cells = <3>;
993			interrupt-controller;
994			reg = <0 0x17a00000 0 0x10000>,     /* GICD */
995			      <0 0x17a60000 0 0x100000>;    /* GICR * 8 */
996			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
997
998			gic-its@17a40000 {
999				compatible = "arm,gic-v3-its";
1000				msi-controller;
1001				#msi-cells = <1>;
1002				reg = <0 0x17a40000 0 0x20000>;
1003				status = "disabled";
1004			};
1005		};
1006
1007		watchdog@17c10000 {
1008			compatible = "qcom,apss-wdt-sc7280", "qcom,kpss-wdt";
1009			reg = <0 0x17c10000 0 0x1000>;
1010			clocks = <&sleep_clk>;
1011			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
1012		};
1013
1014		timer@17c20000 {
1015			#address-cells = <2>;
1016			#size-cells = <2>;
1017			ranges;
1018			compatible = "arm,armv7-timer-mem";
1019			reg = <0 0x17c20000 0 0x1000>;
1020
1021			frame@17c21000 {
1022				frame-number = <0>;
1023				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1024					     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1025				reg = <0 0x17c21000 0 0x1000>,
1026				      <0 0x17c22000 0 0x1000>;
1027			};
1028
1029			frame@17c23000 {
1030				frame-number = <1>;
1031				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1032				reg = <0 0x17c23000 0 0x1000>;
1033				status = "disabled";
1034			};
1035
1036			frame@17c25000 {
1037				frame-number = <2>;
1038				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1039				reg = <0 0x17c25000 0 0x1000>;
1040				status = "disabled";
1041			};
1042
1043			frame@17c27000 {
1044				frame-number = <3>;
1045				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1046				reg = <0 0x17c27000 0 0x1000>;
1047				status = "disabled";
1048			};
1049
1050			frame@17c29000 {
1051				frame-number = <4>;
1052				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1053				reg = <0 0x17c29000 0 0x1000>;
1054				status = "disabled";
1055			};
1056
1057			frame@17c2b000 {
1058				frame-number = <5>;
1059				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1060				reg = <0 0x17c2b000 0 0x1000>;
1061				status = "disabled";
1062			};
1063
1064			frame@17c2d000 {
1065				frame-number = <6>;
1066				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1067				reg = <0 0x17c2d000 0 0x1000>;
1068				status = "disabled";
1069			};
1070		};
1071
1072		apps_rsc: rsc@18200000 {
1073			compatible = "qcom,rpmh-rsc";
1074			reg = <0 0x18200000 0 0x10000>,
1075			      <0 0x18210000 0 0x10000>,
1076			      <0 0x18220000 0 0x10000>;
1077			reg-names = "drv-0", "drv-1", "drv-2";
1078			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1079				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1080				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1081			qcom,tcs-offset = <0xd00>;
1082			qcom,drv-id = <2>;
1083			qcom,tcs-config = <ACTIVE_TCS  2>,
1084					  <SLEEP_TCS   3>,
1085					  <WAKE_TCS    3>,
1086					  <CONTROL_TCS 1>;
1087
1088			rpmhpd: power-controller {
1089				compatible = "qcom,sc7280-rpmhpd";
1090				#power-domain-cells = <1>;
1091				operating-points-v2 = <&rpmhpd_opp_table>;
1092
1093				rpmhpd_opp_table: opp-table {
1094					compatible = "operating-points-v2";
1095
1096					rpmhpd_opp_ret: opp1 {
1097						opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1098					};
1099
1100					rpmhpd_opp_low_svs: opp2 {
1101						opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1102					};
1103
1104					rpmhpd_opp_svs: opp3 {
1105						opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1106					};
1107
1108					rpmhpd_opp_svs_l1: opp4 {
1109						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1110					};
1111
1112					rpmhpd_opp_svs_l2: opp5 {
1113						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
1114					};
1115
1116					rpmhpd_opp_nom: opp6 {
1117						opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1118					};
1119
1120					rpmhpd_opp_nom_l1: opp7 {
1121						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1122					};
1123
1124					rpmhpd_opp_turbo: opp8 {
1125						opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1126					};
1127
1128					rpmhpd_opp_turbo_l1: opp9 {
1129						opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1130					};
1131				};
1132			};
1133
1134			rpmhcc: clock-controller {
1135				compatible = "qcom,sc7280-rpmh-clk";
1136				clocks = <&xo_board>;
1137				clock-names = "xo";
1138				#clock-cells = <1>;
1139			};
1140		};
1141	};
1142
1143	timer {
1144		compatible = "arm,armv8-timer";
1145		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
1146			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
1147			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
1148			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
1149	};
1150};
1151