xref: /rk3399_ARM-atf/fdts/tc-base.dtsi (revision 8de6021b083c1b218ea8a96683e578b1d2b93bef)
1/*
2 * Copyright (c) 2020-2025, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#define LIT_CAPACITY			239
8#define MID_CAPACITY			686
9#define BIG_CAPACITY			1024
10
11#define MHU_TX_COMPAT			"arm,mhuv3"
12#define MHU_TX_INT_NAME			""
13
14#define MHU_RX_COMPAT			"arm,mhuv3"
15#define MHU_OFFSET			0x10000
16#define MHU_MBOX_CELLS			3
17#define MHU_RX_INT_NUM			300
18#define MHU_RX_INT_NAME			"combined"
19
20#define DSU_MPAM_ADDR			0x0 0x5f010000 /* 0x5f01_0000 */
21
22#if TARGET_FLAVOUR_FVP
23#define DPU_ADDR			4000000000
24#define DPU_IRQ				579
25#endif
26
27/* If SCMI power domain control is enabled */
28#if TC_SCMI_PD_CTRL_EN
29#define GPU_SCMI_PD_IDX		(PLAT_MAX_CPUS_PER_CLUSTER + 1)
30#define DPU_SCMI_PD_IDX		(PLAT_MAX_CPUS_PER_CLUSTER + 2)
31#endif /* TC_SCMI_PD_CTRL_EN */
32
33/* Use SCMI controlled clocks */
34#if TC_DPU_USE_SCMI_CLK
35#define DPU_CLK_ATTR1								\
36	clocks = <&scmi_clk 0>;							\
37	clock-names = "aclk"
38
39#define DPU_CLK_ATTR2								\
40	clocks = <&scmi_clk 1>;							\
41	clock-names = "pxclk"
42
43#define DPU_CLK_ATTR3								\
44	clocks = <&scmi_clk 2>;							\
45	clock-names = "pxclk"							\
46/* Use fixed clocks */
47#else /* !TC_DPU_USE_SCMI_CLK */
48#define DPU_CLK_ATTR1								\
49	clocks = <&dpu_aclk>;							\
50	clock-names = "aclk"
51
52#define DPU_CLK_ATTR2								\
53	clocks = <&dpu_pixel_clk>, <&dpu_aclk>;					\
54	clock-names = "pxclk", "aclk"
55
56#define DPU_CLK_ATTR3 DPU_CLK_ATTR2
57#endif /* !TC_DPU_USE_SCMI_CLK */
58
59/ {
60	compatible = "arm,tc";
61	interrupt-parent = <&gic>;
62	#address-cells = <2>;
63	#size-cells = <2>;
64
65	aliases {
66		serial0 = &os_uart;
67	};
68
69	cpus {
70		#address-cells = <1>;
71		#size-cells = <0>;
72
73		cpu-map {
74			cluster0 {
75				core0 {
76					cpu = <&CPU0>;
77				};
78				core1 {
79					cpu = <&CPU1>;
80				};
81				core2 {
82					cpu = <&CPU2>;
83				};
84				core3 {
85					cpu = <&CPU3>;
86				};
87				core4 {
88					cpu = <&CPU4>;
89				};
90				core5 {
91					cpu = <&CPU5>;
92				};
93				core6 {
94					cpu = <&CPU6>;
95				};
96				core7 {
97					cpu = <&CPU7>;
98				};
99			};
100		};
101
102		/*
103		 * The timings below are just to demonstrate working cpuidle.
104		 * These values may be inaccurate.
105		 */
106		idle-states {
107			entry-method = "psci";
108
109			CPU_SLEEP_0: cpu-sleep-0 {
110				compatible = "arm,idle-state";
111				arm,psci-suspend-param = <0x0010000>;
112				local-timer-stop;
113				entry-latency-us = <300>;
114				exit-latency-us = <1200>;
115				min-residency-us = <2000>;
116			};
117			CLUSTER_SLEEP_0: cluster-sleep-0 {
118				compatible = "arm,idle-state";
119				arm,psci-suspend-param = <0x1010000>;
120				local-timer-stop;
121				entry-latency-us = <400>;
122				exit-latency-us = <1200>;
123				min-residency-us = <2500>;
124			};
125		};
126
127		CPU0:cpu@0 {
128			device_type = "cpu";
129			compatible = "arm,armv8";
130			reg = <0x0>;
131			enable-method = "psci";
132			clocks = <&scmi_dvfs 0>;
133			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
134			capacity-dmips-mhz = <LIT_CAPACITY>;
135		};
136
137		CPU1:cpu@100 {
138			device_type = "cpu";
139			compatible = "arm,armv8";
140			reg = <0x100>;
141			enable-method = "psci";
142			clocks = <&scmi_dvfs 0>;
143			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
144			capacity-dmips-mhz = <LIT_CAPACITY>;
145		};
146
147		CPU2:cpu@200 {
148			device_type = "cpu";
149			compatible = "arm,armv8";
150			reg = <0x200>;
151			enable-method = "psci";
152			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
153		};
154
155		CPU3:cpu@300 {
156			device_type = "cpu";
157			compatible = "arm,armv8";
158			reg = <0x300>;
159			enable-method = "psci";
160			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
161		};
162
163		CPU4:cpu@400 {
164			device_type = "cpu";
165			compatible = "arm,armv8";
166			reg = <0x400>;
167			enable-method = "psci";
168			clocks = <&scmi_dvfs 1>;
169			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
170			capacity-dmips-mhz = <MID_CAPACITY>;
171		};
172
173		CPU5:cpu@500 {
174			device_type = "cpu";
175			compatible = "arm,armv8";
176			reg = <0x500>;
177			enable-method = "psci";
178			clocks = <&scmi_dvfs 1>;
179			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
180			capacity-dmips-mhz = <MID_CAPACITY>;
181		};
182
183		CPU6:cpu@600 {
184			device_type = "cpu";
185			compatible = "arm,armv8";
186			reg = <0x600>;
187			enable-method = "psci";
188			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
189		};
190
191		CPU7:cpu@700 {
192			device_type = "cpu";
193			compatible = "arm,armv8";
194			reg = <0x700>;
195			enable-method = "psci";
196			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
197		};
198	};
199
200	reserved-memory {
201		#address-cells = <2>;
202		#size-cells = <2>;
203		ranges;
204
205		linux,cma {
206			compatible = "shared-dma-pool";
207			reusable;
208			size = <0x0 0x8000000>;
209			linux,cma-default;
210		};
211
212		optee {
213			compatible = "restricted-dma-pool";
214			reg = <0x0 TC_NS_OPTEE_BASE 0x0 TC_NS_OPTEE_SIZE>;
215		};
216
217	};
218
219	memory {
220		device_type = "memory";
221		reg = <0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>,
222		      <HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE)
223		       HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>;
224	};
225
226	psci {
227		compatible = "arm,psci-1.0", "arm,psci-0.2";
228		method = "smc";
229	};
230
231	cpu-pmu-little {
232		compatible = LIT_CPU_PMU_COMPATIBLE;
233		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_little>;
234		status = "okay";
235	};
236
237	cpu-pmu-mid {
238		compatible = MID_CPU_PMU_COMPATIBLE;
239		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>;
240		status = "okay";
241	};
242
243	cpu-pmu-big {
244		compatible = BIG_CPU_PMU_COMPATIBLE;
245		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>;
246		status = "okay";
247	};
248
249	sram: sram@6000000 {
250		compatible = "mmio-sram";
251		reg = <0x0 PLAT_ARM_NSRAM_BASE 0x0 PLAT_ARM_NSRAM_SIZE>;
252
253		#address-cells = <1>;
254		#size-cells = <1>;
255		ranges = <0 0x0 PLAT_ARM_NSRAM_BASE PLAT_ARM_NSRAM_SIZE>;
256
257		cpu_scp_scmi_a2p: scp-shmem@0 {
258			compatible = "arm,scmi-shmem";
259			reg = <0x0 0x80>;
260		};
261	};
262
263	mbox_db_rx: mhu@MHU_RX_ADDR {
264		compatible = MHU_RX_COMPAT;
265		reg = <0x0 ADDRESSIFY(MHU_RX_ADDR) 0x0 MHU_OFFSET>;
266		clocks = <&soc_refclk>;
267		clock-names = "apb_pclk";
268		#mbox-cells = <MHU_MBOX_CELLS>;
269		interrupts = <GIC_SPI MHU_RX_INT_NUM IRQ_TYPE_LEVEL_HIGH 0>;
270		interrupt-names = MHU_RX_INT_NAME;
271	};
272
273	mbox_db_tx: mhu@MHU_TX_ADDR {
274		compatible = MHU_TX_COMPAT;
275		reg = <0x0 ADDRESSIFY(MHU_TX_ADDR) 0x0 MHU_OFFSET>;
276		clocks = <&soc_refclk>;
277		clock-names = "apb_pclk";
278		#mbox-cells = <MHU_MBOX_CELLS>;
279		interrupt-names = MHU_TX_INT_NAME;
280	};
281
282	firmware {
283		scmi {
284			compatible = "arm,scmi";
285			mbox-names = "tx", "rx";
286			#address-cells = <1>;
287			#size-cells = <0>;
288
289#if TC_SCMI_PD_CTRL_EN
290			scmi_devpd: protocol@11 {
291				reg = <0x11>;
292				#power-domain-cells = <1>;
293			};
294#endif /* TC_SCMI_PD_CTRL_EN */
295
296			scmi_dvfs: protocol@13 {
297				reg = <0x13>;
298				#clock-cells = <1>;
299			};
300
301			scmi_clk: protocol@14 {
302				reg = <0x14>;
303				#clock-cells = <1>;
304			};
305		};
306	};
307
308	gic: interrupt-controller@GIC_CTRL_ADDR {
309		compatible = "arm,gic-v3";
310		#address-cells = <2>;
311		#interrupt-cells = <4>;
312		#size-cells = <2>;
313		ranges;
314		interrupt-controller;
315		reg = <0x0 0x30000000 0 0x10000>, /* GICD */
316		      <0x0 0x30080000 0 GIC_GICR_OFFSET>; /* GICR */
317		interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW 0>;
318	};
319
320	timer {
321		compatible = "arm,armv8-timer";
322		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
323			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
324			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
325			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
326	};
327
328	spe-pmu-mid {
329		compatible = "arm,statistical-profiling-extension-v1";
330		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>;
331		status = "disabled";
332	};
333
334	spe-pmu-big {
335		compatible = "arm,statistical-profiling-extension-v1";
336		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>;
337		status = "disabled";
338	};
339
340	soc_refclk: refclk {
341		compatible = "fixed-clock";
342		#clock-cells = <0>;
343		clock-frequency = <1000000000>;
344		clock-output-names = "apb_pclk";
345	};
346
347	soc_refclk60mhz: refclk60mhz {
348		compatible = "fixed-clock";
349		#clock-cells = <0>;
350		clock-frequency = <60000000>;
351		clock-output-names = "iofpga_clk";
352	};
353
354	soc_uartclk: uartclk {
355		compatible = "fixed-clock";
356		#clock-cells = <0>;
357		clock-frequency = <TC_UARTCLK>;
358		clock-output-names = "uartclk";
359	};
360
361	/* soc_uart0 on FPGA, ap_ns_uart on FVP */
362	os_uart: serial@2a400000 {
363		compatible = "arm,pl011", "arm,primecell";
364		reg = <0x0 0x2A400000 0x0 UART_OFFSET>;
365		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH 0>;
366		clocks = <&soc_uartclk>, <&soc_refclk>;
367		clock-names = "uartclk", "apb_pclk";
368		status = "okay";
369	};
370
371#if !TC_DPU_USE_SCMI_CLK
372	dpu_aclk: dpu_aclk {
373		compatible = "fixed-clock";
374		#clock-cells = <0>;
375		clock-frequency = <LCD_TIMING_CLK>;
376		clock-output-names = "fpga:dpu_aclk";
377	};
378
379	dpu_pixel_clk: dpu-pixel-clk {
380		compatible = "fixed-clock";
381		#clock-cells = <0>;
382		clock-frequency = <LCD_TIMING_CLK>;
383		clock-output-names = "pxclk";
384	};
385#endif /* !TC_DPU_USE_SCMI_CLK */
386
387#if TC_DPU_USE_SIMPLE_PANEL
388	vpanel {
389		compatible = "panel-dpi";
390		post-init-providers = <&pl0>;
391		port {
392			lcd_in: endpoint {
393				remote-endpoint = <&dp_pl0_out0>;
394			};
395		};
396
397		panel-timing {
398			LCD_TIMING;
399		};
400	};
401
402#else
403	vencoder {
404		compatible = "drm,virtual-encoder";
405		port {
406			lcd_in: endpoint {
407				remote-endpoint = <&dp_pl0_out0>;
408			};
409		};
410
411		display-timings {
412			timing-panel {
413				LCD_TIMING;
414			};
415		};
416
417	};
418#endif
419	ethernet: ethernet@ETHERNET_ADDR {
420		reg = <0x0 ADDRESSIFY(ETHERNET_ADDR) 0x0 0x10000>;
421		interrupts = <GIC_SPI ETHERNET_INT IRQ_TYPE_LEVEL_HIGH 0>;
422
423		reg-io-width = <2>;
424		smsc,irq-push-pull;
425	};
426
427	bp_clock24mhz: clock24mhz {
428		compatible = "fixed-clock";
429		#clock-cells = <0>;
430		clock-frequency = <24000000>;
431		clock-output-names = "bp:clock24mhz";
432	};
433
434	sysreg: sysreg@SYS_REGS_ADDR {
435		compatible = "arm,vexpress-sysreg";
436		reg = <0x0 ADDRESSIFY(SYS_REGS_ADDR) 0x0 0x1000>;
437		gpio-controller;
438		#gpio-cells = <2>;
439	};
440
441	fixed_3v3: v2m-3v3 {
442		compatible = "regulator-fixed";
443		regulator-name = "3V3";
444		regulator-min-microvolt = <3300000>;
445		regulator-max-microvolt = <3300000>;
446		regulator-always-on;
447	};
448
449	mmci: mmci@MMC_ADDR {
450		compatible = "arm,pl180", "arm,primecell";
451		reg = <0x0 ADDRESSIFY(MMC_ADDR) 0x0 0x1000>;
452		interrupts = <GIC_SPI MMC_INT_0 IRQ_TYPE_LEVEL_HIGH 0>,
453			     <GIC_SPI MMC_INT_1 IRQ_TYPE_LEVEL_HIGH 0>;
454		wp-gpios = <&sysreg 1 0>;
455		bus-width = <4>;
456		max-frequency = <25000000>;
457		vmmc-supply = <&fixed_3v3>;
458		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
459		clock-names = "mclk", "apb_pclk";
460	};
461
462	gpu_clk: gpu_clk {
463		compatible = "fixed-clock";
464		#clock-cells = <0>;
465		clock-frequency = <1000000000>;
466	};
467
468	gpu_core_clk: gpu_core_clk {
469		compatible = "fixed-clock";
470		#clock-cells = <0>;
471		clock-frequency = <1000000000>;
472	};
473
474	gpu: gpu@2d000000 {
475		compatible = "arm,mali-midgard";
476		reg = <0x0 0x2d000000 0x0 0x200000>;
477		clocks = <&gpu_core_clk>;
478		clock-names = "shadercores";
479#if TC_SCMI_PD_CTRL_EN
480		power-domains = <&scmi_devpd GPU_SCMI_PD_IDX>;
481		scmi-perf-domain = <3>;
482#endif /* TC_SCMI_PD_CTRL_EN */
483
484		pbha {
485			int-id-override = <0 0x22>, <2 0x23>, <4 0x23>, <7 0x22>,
486					  <8 0x22>, <9 0x22>, <10 0x22>, <11 0x22>,
487					  <12 0x22>, <13 0x22>, <16 0x22>, <17 0x32>,
488					  <18 0x32>, <19 0x22>, <20 0x22>, <21 0x32>,
489					  <22 0x32>, <24 0x22>, <28 0x32>;
490			propagate-bits = <0x0f>;
491		};
492	};
493
494	power_model_simple {
495		/*
496		 * Numbers used are irrelevant to Titan,
497		 * it helps suppressing the kernel warnings.
498		 */
499		compatible = "arm,mali-simple-power-model";
500		static-coefficient = <2427750>;
501		dynamic-coefficient = <4687>;
502		ts = <20000 2000 (-20) 2>;
503		thermal-zone = "";
504	};
505
506	smmu_600: smmu@2ce00000 {
507		compatible = "arm,smmu-v3";
508		reg = <0 0x2ce00000 0 0x20000>;
509		interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING 0>,
510			     <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>,
511			     <GIC_SPI 76 IRQ_TYPE_EDGE_RISING 0>,
512			     <GIC_SPI 77 IRQ_TYPE_EDGE_RISING 0>;
513		interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
514		#iommu-cells = <1>;
515		status = "disabled";
516	};
517
518	smmu_700: iommu@3f000000 {
519		#iommu-cells = <1>;
520		compatible = "arm,smmu-v3";
521		reg = <0x0 0x3f000000 0x0 0x5000000>;
522		interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING 0>,
523			     <GIC_SPI 229 IRQ_TYPE_EDGE_RISING 0>,
524			     <GIC_SPI 230 IRQ_TYPE_EDGE_RISING 0>;
525		interrupt-names = "eventq", "cmdq-sync", "gerror";
526		dma-coherent;
527		status = "disabled";
528	};
529
530	smmu_700_dpu: iommu@4002a00000 {
531		#iommu-cells = <1>;
532		compatible = "arm,smmu-v3";
533		reg = <HI(0x4002a00000) LO(0x4002a00000) 0x0 0x5000000>;
534		interrupts = <GIC_SPI 481 IRQ_TYPE_EDGE_RISING 0>,
535			     <GIC_SPI 482 IRQ_TYPE_EDGE_RISING 0>,
536			     <GIC_SPI 483 IRQ_TYPE_EDGE_RISING 0>;
537		interrupt-names = "eventq", "cmdq-sync", "gerror";
538		dma-coherent;
539		status = "disabled";
540	};
541
542	dp0: display@DPU_ADDR {
543		#address-cells = <1>;
544		#size-cells = <0>;
545		compatible = "arm,mali-d71";
546		reg = <HI(ADDRESSIFY(DPU_ADDR)) LO(ADDRESSIFY(DPU_ADDR)) 0 0x20000>;
547		interrupts = <GIC_SPI DPU_IRQ IRQ_TYPE_LEVEL_HIGH 0>;
548		interrupt-names = "DPU";
549		DPU_CLK_ATTR1;
550
551		pl0: pipeline@0 {
552			reg = <0>;
553			DPU_CLK_ATTR2;
554			pl_id = <0>;
555			ports {
556				#address-cells = <1>;
557				#size-cells = <0>;
558				port@0 {
559					reg = <0>;
560					dp_pl0_out0: endpoint {
561						remote-endpoint = <&lcd_in>;
562					};
563				};
564			};
565		};
566
567		pl1: pipeline@1 {
568			reg = <1>;
569			DPU_CLK_ATTR3;
570			pl_id = <1>;
571			ports {
572				#address-cells = <1>;
573				#size-cells = <0>;
574				port@0 {
575					reg = <0>;
576				};
577			};
578		};
579	};
580
581	/*
582	 * L3 cache in the DSU is the Memory System Component (MSC)
583	 * The MPAM registers are accessed through utility bus in the DSU
584	 */
585	dsu-msc0 {
586		compatible = "arm,mpam-msc";
587		reg = <DSU_MPAM_ADDR 0x0 0x2000>;
588	};
589
590	ete0 {
591		compatible = "arm,embedded-trace-extension";
592		cpu = <&CPU0>;
593	};
594
595	ete1 {
596		compatible = "arm,embedded-trace-extension";
597		cpu = <&CPU1>;
598	};
599
600	ete2 {
601		compatible = "arm,embedded-trace-extension";
602		cpu = <&CPU2>;
603	};
604
605	ete3 {
606		compatible = "arm,embedded-trace-extension";
607		cpu = <&CPU3>;
608	};
609
610	ete4 {
611		compatible = "arm,embedded-trace-extension";
612		cpu = <&CPU4>;
613	};
614
615	ete5 {
616		compatible = "arm,embedded-trace-extension";
617		cpu = <&CPU5>;
618	};
619
620	ete6 {
621		compatible = "arm,embedded-trace-extension";
622		cpu = <&CPU6>;
623	};
624
625	ete7 {
626		compatible = "arm,embedded-trace-extension";
627		cpu = <&CPU7>;
628	};
629
630	trbe {
631		compatible = "arm,trace-buffer-extension";
632		interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW 0>;
633	};
634
635	trusty {
636		#size-cells = <0x02>;
637		#address-cells = <0x02>;
638		ranges = <0x00>;
639		compatible = "android,trusty-v1";
640
641		virtio {
642			compatible = "android,trusty-virtio-v1";
643		};
644
645		test {
646			compatible = "android,trusty-test-v1";
647		};
648
649		log {
650			compatible = "android,trusty-log-v1";
651		};
652
653		irq {
654			ipi-range = <0x08 0x0f 0x08>;
655			interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>;
656			interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>;
657			compatible = "android,trusty-irq-v1";
658		};
659	};
660
661	/* used in U-boot, Linux doesn't care */
662	arm_ffa {
663		compatible = "arm,ffa";
664		method = "smc";
665	};
666};
667
668/ {
669	cpus {
670		CPU2:cpu@200 {
671			clocks = <&scmi_dvfs 1>;
672			capacity-dmips-mhz = <MID_CAPACITY>;
673		};
674
675		CPU3:cpu@300 {
676			clocks = <&scmi_dvfs 1>;
677			capacity-dmips-mhz = <MID_CAPACITY>;
678		};
679
680		CPU6:cpu@600 {
681			clocks = <&scmi_dvfs 2>;
682			capacity-dmips-mhz = <BIG_CAPACITY>;
683		};
684
685		CPU7:cpu@700 {
686			clocks = <&scmi_dvfs 2>;
687			capacity-dmips-mhz = <BIG_CAPACITY>;
688		};
689	};
690
691	rse_mbox_db_rx: mhu@RSE_MHU_RX_ADDR {
692		compatible = MHU_RX_COMPAT;
693		reg = <0x0 ADDRESSIFY(RSE_MHU_RX_ADDR) 0x0 MHU_OFFSET>;
694		clocks = <&soc_refclk>;
695		clock-names = "apb_pclk";
696		#mbox-cells = <MHU_MBOX_CELLS>;
697		interrupts = <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 0>;
698		interrupt-names = MHU_RX_INT_NAME;
699#if TARGET_FLAVOUR_FPGA
700		status = "disabled";
701#endif
702	};
703
704	rse_mbox_db_tx: mhu@RSE_MHU_TX_ADDR {
705		compatible = MHU_TX_COMPAT;
706		reg = <0x0 ADDRESSIFY(RSE_MHU_TX_ADDR) 0x0 MHU_OFFSET>;
707		clocks = <&soc_refclk>;
708		clock-names = "apb_pclk";
709		#mbox-cells = <MHU_MBOX_CELLS>;
710		interrupt-names = MHU_TX_INT_NAME;
711#if TARGET_FLAVOUR_FPGA
712		status = "disabled";
713#endif
714	};
715
716	gic: interrupt-controller@GIC_CTRL_ADDR {
717		ppi-partitions {
718			ppi_partition_little: interrupt-partition-0 {
719				affinity = <&CPU0>, <&CPU1>;
720			};
721
722			ppi_partition_mid: interrupt-partition-1 {
723				affinity = <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>;
724			};
725
726			ppi_partition_big: interrupt-partition-2 {
727				affinity = <&CPU6>, <&CPU7>;
728			};
729		};
730	};
731
732	sram: sram@6000000 {
733		cpu_scp_scmi_p2a: scp-shmem@80 {
734			compatible = "arm,scmi-shmem";
735			reg = <0x80 0x80>;
736		};
737	};
738
739	firmware {
740		scmi {
741			mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 1>;
742			shmem = <&cpu_scp_scmi_a2p &cpu_scp_scmi_p2a>;
743		};
744
745		rse {
746			compatible = "arm,rse";
747			mbox-names = "tx", "rx";
748			mboxes = <&rse_mbox_db_tx 0 0 0>, <&rse_mbox_db_rx 0 0 0>;
749#if TARGET_FLAVOUR_FPGA
750			status = "disabled";
751#endif
752		};
753	};
754
755	dsu-pmu {
756		compatible = "arm,dsu-pmu";
757		cpus = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>;
758	};
759
760	cs-pmu@0 {
761		compatible = "arm,coresight-pmu";
762		reg = <0x0 MCN_PMU_ADDR(0) 0x0 0xffc>;
763	};
764
765	cs-pmu@1 {
766		compatible = "arm,coresight-pmu";
767		reg = <0x0 MCN_PMU_ADDR(1) 0x0 0xffc>;
768	};
769
770	cs-pmu@2 {
771		compatible = "arm,coresight-pmu";
772		reg = <0x0 MCN_PMU_ADDR(2) 0x0 0xffc>;
773	};
774
775	cs-pmu@3 {
776		compatible = "arm,coresight-pmu";
777		reg = <0x0 MCN_PMU_ADDR(3) 0x0 0xffc>;
778	};
779};
780