xref: /rk3399_ARM-atf/fdts/tc-base.dtsi (revision 2b6ae948ddc61dfcf940dcb4b5cd9287b3482cfd)
1b3a9737cSLeo Yan/*
2*8de6021bSRyan Everett * Copyright (c) 2020-2025, Arm Limited. All rights reserved.
3b3a9737cSLeo Yan *
4b3a9737cSLeo Yan * SPDX-License-Identifier: BSD-3-Clause
5b3a9737cSLeo Yan */
6b3a9737cSLeo Yan
7*8de6021bSRyan Everett#define LIT_CAPACITY			239
8*8de6021bSRyan Everett#define MID_CAPACITY			686
9*8de6021bSRyan Everett#define BIG_CAPACITY			1024
10*8de6021bSRyan Everett
11*8de6021bSRyan Everett#define MHU_TX_COMPAT			"arm,mhuv3"
12*8de6021bSRyan Everett#define MHU_TX_INT_NAME			""
13*8de6021bSRyan Everett
14*8de6021bSRyan Everett#define MHU_RX_COMPAT			"arm,mhuv3"
15*8de6021bSRyan Everett#define MHU_OFFSET			0x10000
16*8de6021bSRyan Everett#define MHU_MBOX_CELLS			3
17*8de6021bSRyan Everett#define MHU_RX_INT_NUM			300
18*8de6021bSRyan Everett#define MHU_RX_INT_NAME			"combined"
19*8de6021bSRyan Everett
20*8de6021bSRyan Everett#define DSU_MPAM_ADDR			0x0 0x5f010000 /* 0x5f01_0000 */
21*8de6021bSRyan Everett
22*8de6021bSRyan Everett#if TARGET_FLAVOUR_FVP
23*8de6021bSRyan Everett#define DPU_ADDR			4000000000
24*8de6021bSRyan Everett#define DPU_IRQ				579
25*8de6021bSRyan Everett#endif
26*8de6021bSRyan Everett
2779c6ede0SLeo Yan/* If SCMI power domain control is enabled */
2879c6ede0SLeo Yan#if TC_SCMI_PD_CTRL_EN
2979c6ede0SLeo Yan#define GPU_SCMI_PD_IDX		(PLAT_MAX_CPUS_PER_CLUSTER + 1)
3079c6ede0SLeo Yan#define DPU_SCMI_PD_IDX		(PLAT_MAX_CPUS_PER_CLUSTER + 2)
3179c6ede0SLeo Yan#endif /* TC_SCMI_PD_CTRL_EN */
3279c6ede0SLeo Yan
3379c6ede0SLeo Yan/* Use SCMI controlled clocks */
3479c6ede0SLeo Yan#if TC_DPU_USE_SCMI_CLK
3579c6ede0SLeo Yan#define DPU_CLK_ATTR1								\
3679c6ede0SLeo Yan	clocks = <&scmi_clk 0>;							\
3779c6ede0SLeo Yan	clock-names = "aclk"
3879c6ede0SLeo Yan
3979c6ede0SLeo Yan#define DPU_CLK_ATTR2								\
4079c6ede0SLeo Yan	clocks = <&scmi_clk 1>;							\
4179c6ede0SLeo Yan	clock-names = "pxclk"
4279c6ede0SLeo Yan
4379c6ede0SLeo Yan#define DPU_CLK_ATTR3								\
4479c6ede0SLeo Yan	clocks = <&scmi_clk 2>;							\
4579c6ede0SLeo Yan	clock-names = "pxclk"							\
4679c6ede0SLeo Yan/* Use fixed clocks */
4779c6ede0SLeo Yan#else /* !TC_DPU_USE_SCMI_CLK */
4879c6ede0SLeo Yan#define DPU_CLK_ATTR1								\
4979c6ede0SLeo Yan	clocks = <&dpu_aclk>;							\
5079c6ede0SLeo Yan	clock-names = "aclk"
5179c6ede0SLeo Yan
5279c6ede0SLeo Yan#define DPU_CLK_ATTR2								\
5379c6ede0SLeo Yan	clocks = <&dpu_pixel_clk>, <&dpu_aclk>;					\
5479c6ede0SLeo Yan	clock-names = "pxclk", "aclk"
5579c6ede0SLeo Yan
5679c6ede0SLeo Yan#define DPU_CLK_ATTR3 DPU_CLK_ATTR2
5779c6ede0SLeo Yan#endif /* !TC_DPU_USE_SCMI_CLK */
58b3a9737cSLeo Yan
59b3a9737cSLeo Yan/ {
60b3a9737cSLeo Yan	compatible = "arm,tc";
61b3a9737cSLeo Yan	interrupt-parent = <&gic>;
62b3a9737cSLeo Yan	#address-cells = <2>;
63b3a9737cSLeo Yan	#size-cells = <2>;
64b3a9737cSLeo Yan
65b3a9737cSLeo Yan	aliases {
66b3a9737cSLeo Yan		serial0 = &os_uart;
67b3a9737cSLeo Yan	};
68b3a9737cSLeo Yan
69b3a9737cSLeo Yan	cpus {
70b3a9737cSLeo Yan		#address-cells = <1>;
71b3a9737cSLeo Yan		#size-cells = <0>;
72b3a9737cSLeo Yan
73b3a9737cSLeo Yan		cpu-map {
74b3a9737cSLeo Yan			cluster0 {
75b3a9737cSLeo Yan				core0 {
76b3a9737cSLeo Yan					cpu = <&CPU0>;
77b3a9737cSLeo Yan				};
78b3a9737cSLeo Yan				core1 {
79b3a9737cSLeo Yan					cpu = <&CPU1>;
80b3a9737cSLeo Yan				};
81b3a9737cSLeo Yan				core2 {
82b3a9737cSLeo Yan					cpu = <&CPU2>;
83b3a9737cSLeo Yan				};
84b3a9737cSLeo Yan				core3 {
85b3a9737cSLeo Yan					cpu = <&CPU3>;
86b3a9737cSLeo Yan				};
87b3a9737cSLeo Yan				core4 {
88b3a9737cSLeo Yan					cpu = <&CPU4>;
89b3a9737cSLeo Yan				};
90b3a9737cSLeo Yan				core5 {
91b3a9737cSLeo Yan					cpu = <&CPU5>;
92b3a9737cSLeo Yan				};
93b3a9737cSLeo Yan				core6 {
94b3a9737cSLeo Yan					cpu = <&CPU6>;
95b3a9737cSLeo Yan				};
96b3a9737cSLeo Yan				core7 {
97b3a9737cSLeo Yan					cpu = <&CPU7>;
98b3a9737cSLeo Yan				};
99b3a9737cSLeo Yan			};
100b3a9737cSLeo Yan		};
101b3a9737cSLeo Yan
102b3a9737cSLeo Yan		/*
103b3a9737cSLeo Yan		 * The timings below are just to demonstrate working cpuidle.
104b3a9737cSLeo Yan		 * These values may be inaccurate.
105b3a9737cSLeo Yan		 */
106b3a9737cSLeo Yan		idle-states {
107b3a9737cSLeo Yan			entry-method = "psci";
108b3a9737cSLeo Yan
109b3a9737cSLeo Yan			CPU_SLEEP_0: cpu-sleep-0 {
110b3a9737cSLeo Yan				compatible = "arm,idle-state";
111b3a9737cSLeo Yan				arm,psci-suspend-param = <0x0010000>;
112b3a9737cSLeo Yan				local-timer-stop;
113b3a9737cSLeo Yan				entry-latency-us = <300>;
114b3a9737cSLeo Yan				exit-latency-us = <1200>;
115b3a9737cSLeo Yan				min-residency-us = <2000>;
116b3a9737cSLeo Yan			};
117b3a9737cSLeo Yan			CLUSTER_SLEEP_0: cluster-sleep-0 {
118b3a9737cSLeo Yan				compatible = "arm,idle-state";
119b3a9737cSLeo Yan				arm,psci-suspend-param = <0x1010000>;
120b3a9737cSLeo Yan				local-timer-stop;
121b3a9737cSLeo Yan				entry-latency-us = <400>;
122b3a9737cSLeo Yan				exit-latency-us = <1200>;
123b3a9737cSLeo Yan				min-residency-us = <2500>;
124b3a9737cSLeo Yan			};
125b3a9737cSLeo Yan		};
126b3a9737cSLeo Yan
127b3a9737cSLeo Yan		CPU0:cpu@0 {
128b3a9737cSLeo Yan			device_type = "cpu";
129b3a9737cSLeo Yan			compatible = "arm,armv8";
130b3a9737cSLeo Yan			reg = <0x0>;
131b3a9737cSLeo Yan			enable-method = "psci";
132b3a9737cSLeo Yan			clocks = <&scmi_dvfs 0>;
133b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
134b3a9737cSLeo Yan			capacity-dmips-mhz = <LIT_CAPACITY>;
135b3a9737cSLeo Yan		};
136b3a9737cSLeo Yan
137b3a9737cSLeo Yan		CPU1:cpu@100 {
138b3a9737cSLeo Yan			device_type = "cpu";
139b3a9737cSLeo Yan			compatible = "arm,armv8";
140b3a9737cSLeo Yan			reg = <0x100>;
141b3a9737cSLeo Yan			enable-method = "psci";
142b3a9737cSLeo Yan			clocks = <&scmi_dvfs 0>;
143b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
144b3a9737cSLeo Yan			capacity-dmips-mhz = <LIT_CAPACITY>;
145b3a9737cSLeo Yan		};
146b3a9737cSLeo Yan
147b3a9737cSLeo Yan		CPU2:cpu@200 {
148b3a9737cSLeo Yan			device_type = "cpu";
149b3a9737cSLeo Yan			compatible = "arm,armv8";
150b3a9737cSLeo Yan			reg = <0x200>;
151b3a9737cSLeo Yan			enable-method = "psci";
152b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
153b3a9737cSLeo Yan		};
154b3a9737cSLeo Yan
155b3a9737cSLeo Yan		CPU3:cpu@300 {
156b3a9737cSLeo Yan			device_type = "cpu";
157b3a9737cSLeo Yan			compatible = "arm,armv8";
158b3a9737cSLeo Yan			reg = <0x300>;
159b3a9737cSLeo Yan			enable-method = "psci";
160b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
161b3a9737cSLeo Yan		};
162b3a9737cSLeo Yan
163b3a9737cSLeo Yan		CPU4:cpu@400 {
164b3a9737cSLeo Yan			device_type = "cpu";
165b3a9737cSLeo Yan			compatible = "arm,armv8";
166b3a9737cSLeo Yan			reg = <0x400>;
167b3a9737cSLeo Yan			enable-method = "psci";
168b3a9737cSLeo Yan			clocks = <&scmi_dvfs 1>;
169b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
170b3a9737cSLeo Yan			capacity-dmips-mhz = <MID_CAPACITY>;
171b3a9737cSLeo Yan		};
172b3a9737cSLeo Yan
173b3a9737cSLeo Yan		CPU5:cpu@500 {
174b3a9737cSLeo Yan			device_type = "cpu";
175b3a9737cSLeo Yan			compatible = "arm,armv8";
176b3a9737cSLeo Yan			reg = <0x500>;
177b3a9737cSLeo Yan			enable-method = "psci";
178b3a9737cSLeo Yan			clocks = <&scmi_dvfs 1>;
179b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
180b3a9737cSLeo Yan			capacity-dmips-mhz = <MID_CAPACITY>;
181b3a9737cSLeo Yan		};
182b3a9737cSLeo Yan
183b3a9737cSLeo Yan		CPU6:cpu@600 {
184b3a9737cSLeo Yan			device_type = "cpu";
185b3a9737cSLeo Yan			compatible = "arm,armv8";
186b3a9737cSLeo Yan			reg = <0x600>;
187b3a9737cSLeo Yan			enable-method = "psci";
188b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
189b3a9737cSLeo Yan		};
190b3a9737cSLeo Yan
191b3a9737cSLeo Yan		CPU7:cpu@700 {
192b3a9737cSLeo Yan			device_type = "cpu";
193b3a9737cSLeo Yan			compatible = "arm,armv8";
194b3a9737cSLeo Yan			reg = <0x700>;
195b3a9737cSLeo Yan			enable-method = "psci";
196b3a9737cSLeo Yan			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
197b3a9737cSLeo Yan		};
198b3a9737cSLeo Yan	};
199b3a9737cSLeo Yan
200b3a9737cSLeo Yan	reserved-memory {
201b3a9737cSLeo Yan		#address-cells = <2>;
202b3a9737cSLeo Yan		#size-cells = <2>;
203b3a9737cSLeo Yan		ranges;
204b3a9737cSLeo Yan
205b3a9737cSLeo Yan		linux,cma {
206b3a9737cSLeo Yan			compatible = "shared-dma-pool";
207b3a9737cSLeo Yan			reusable;
208b3a9737cSLeo Yan			size = <0x0 0x8000000>;
209b3a9737cSLeo Yan			linux,cma-default;
210b3a9737cSLeo Yan		};
211b3a9737cSLeo Yan
212b3a9737cSLeo Yan		optee {
213b3a9737cSLeo Yan			compatible = "restricted-dma-pool";
214b3a9737cSLeo Yan			reg = <0x0 TC_NS_OPTEE_BASE 0x0 TC_NS_OPTEE_SIZE>;
215b3a9737cSLeo Yan		};
216b3a9737cSLeo Yan
217b3a9737cSLeo Yan	};
218b3a9737cSLeo Yan
219b3a9737cSLeo Yan	memory {
220b3a9737cSLeo Yan		device_type = "memory";
221b3a9737cSLeo Yan		reg = <0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>,
222b3a9737cSLeo Yan		      <HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE)
223b3a9737cSLeo Yan		       HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>;
224b3a9737cSLeo Yan	};
225b3a9737cSLeo Yan
226b3a9737cSLeo Yan	psci {
227b3a9737cSLeo Yan		compatible = "arm,psci-1.0", "arm,psci-0.2";
228b3a9737cSLeo Yan		method = "smc";
229b3a9737cSLeo Yan	};
230b3a9737cSLeo Yan
2317aca660cSJagdish Gediya	cpu-pmu-little {
2327aca660cSJagdish Gediya		compatible = LIT_CPU_PMU_COMPATIBLE;
2337aca660cSJagdish Gediya		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_little>;
2347aca660cSJagdish Gediya		status = "okay";
2357aca660cSJagdish Gediya	};
2367aca660cSJagdish Gediya
2377aca660cSJagdish Gediya	cpu-pmu-mid {
2387aca660cSJagdish Gediya		compatible = MID_CPU_PMU_COMPATIBLE;
2397aca660cSJagdish Gediya		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>;
2407aca660cSJagdish Gediya		status = "okay";
2417aca660cSJagdish Gediya	};
2427aca660cSJagdish Gediya
2437aca660cSJagdish Gediya	cpu-pmu-big {
2447aca660cSJagdish Gediya		compatible = BIG_CPU_PMU_COMPATIBLE;
2457aca660cSJagdish Gediya		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>;
2467aca660cSJagdish Gediya		status = "okay";
247b3a9737cSLeo Yan	};
248b3a9737cSLeo Yan
249b3a9737cSLeo Yan	sram: sram@6000000 {
250b3a9737cSLeo Yan		compatible = "mmio-sram";
251b3a9737cSLeo Yan		reg = <0x0 PLAT_ARM_NSRAM_BASE 0x0 PLAT_ARM_NSRAM_SIZE>;
252b3a9737cSLeo Yan
253b3a9737cSLeo Yan		#address-cells = <1>;
254b3a9737cSLeo Yan		#size-cells = <1>;
255b3a9737cSLeo Yan		ranges = <0 0x0 PLAT_ARM_NSRAM_BASE PLAT_ARM_NSRAM_SIZE>;
256b3a9737cSLeo Yan
257f2596ff1SBoyan Karatotev		cpu_scp_scmi_a2p: scp-shmem@0 {
258b3a9737cSLeo Yan			compatible = "arm,scmi-shmem";
259b3a9737cSLeo Yan			reg = <0x0 0x80>;
260b3a9737cSLeo Yan		};
261b3a9737cSLeo Yan	};
262b3a9737cSLeo Yan
263b3a9737cSLeo Yan	mbox_db_rx: mhu@MHU_RX_ADDR {
2646c069e71SBoyan Karatotev		compatible = MHU_RX_COMPAT;
2656c069e71SBoyan Karatotev		reg = <0x0 ADDRESSIFY(MHU_RX_ADDR) 0x0 MHU_OFFSET>;
266b3a9737cSLeo Yan		clocks = <&soc_refclk>;
267b3a9737cSLeo Yan		clock-names = "apb_pclk";
2686c069e71SBoyan Karatotev		#mbox-cells = <MHU_MBOX_CELLS>;
2691300bbceSJagdish Gediya		interrupts = <GIC_SPI MHU_RX_INT_NUM IRQ_TYPE_LEVEL_HIGH 0>;
2706c069e71SBoyan Karatotev		interrupt-names = MHU_RX_INT_NAME;
271b3a9737cSLeo Yan	};
272b3a9737cSLeo Yan
273b3a9737cSLeo Yan	mbox_db_tx: mhu@MHU_TX_ADDR {
2746c069e71SBoyan Karatotev		compatible = MHU_TX_COMPAT;
2756c069e71SBoyan Karatotev		reg = <0x0 ADDRESSIFY(MHU_TX_ADDR) 0x0 MHU_OFFSET>;
276b3a9737cSLeo Yan		clocks = <&soc_refclk>;
277b3a9737cSLeo Yan		clock-names = "apb_pclk";
2786c069e71SBoyan Karatotev		#mbox-cells = <MHU_MBOX_CELLS>;
2796c069e71SBoyan Karatotev		interrupt-names = MHU_TX_INT_NAME;
280b3a9737cSLeo Yan	};
281b3a9737cSLeo Yan
282d42987c3SBoyan Karatotev	firmware {
283b3a9737cSLeo Yan		scmi {
284b3a9737cSLeo Yan			compatible = "arm,scmi";
285b3a9737cSLeo Yan			mbox-names = "tx", "rx";
286b3a9737cSLeo Yan			#address-cells = <1>;
287b3a9737cSLeo Yan			#size-cells = <0>;
288b3a9737cSLeo Yan
289b3a9737cSLeo Yan#if TC_SCMI_PD_CTRL_EN
290b3a9737cSLeo Yan			scmi_devpd: protocol@11 {
291b3a9737cSLeo Yan				reg = <0x11>;
292b3a9737cSLeo Yan				#power-domain-cells = <1>;
293b3a9737cSLeo Yan			};
294b3a9737cSLeo Yan#endif /* TC_SCMI_PD_CTRL_EN */
295b3a9737cSLeo Yan
296b3a9737cSLeo Yan			scmi_dvfs: protocol@13 {
297b3a9737cSLeo Yan				reg = <0x13>;
298b3a9737cSLeo Yan				#clock-cells = <1>;
299b3a9737cSLeo Yan			};
300b3a9737cSLeo Yan
301b3a9737cSLeo Yan			scmi_clk: protocol@14 {
302b3a9737cSLeo Yan				reg = <0x14>;
303b3a9737cSLeo Yan				#clock-cells = <1>;
304b3a9737cSLeo Yan			};
305b3a9737cSLeo Yan		};
306d42987c3SBoyan Karatotev	};
307b3a9737cSLeo Yan
308b3a9737cSLeo Yan	gic: interrupt-controller@GIC_CTRL_ADDR {
309b3a9737cSLeo Yan		compatible = "arm,gic-v3";
310b3a9737cSLeo Yan		#address-cells = <2>;
3111300bbceSJagdish Gediya		#interrupt-cells = <4>;
312b3a9737cSLeo Yan		#size-cells = <2>;
313b3a9737cSLeo Yan		ranges;
314b3a9737cSLeo Yan		interrupt-controller;
315b3a9737cSLeo Yan		reg = <0x0 0x30000000 0 0x10000>, /* GICD */
316b3a9737cSLeo Yan		      <0x0 0x30080000 0 GIC_GICR_OFFSET>; /* GICR */
3171300bbceSJagdish Gediya		interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW 0>;
318b3a9737cSLeo Yan	};
319b3a9737cSLeo Yan
320b3a9737cSLeo Yan	timer {
321b3a9737cSLeo Yan		compatible = "arm,armv8-timer";
3221300bbceSJagdish Gediya		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
3231300bbceSJagdish Gediya			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
3241300bbceSJagdish Gediya			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
3251300bbceSJagdish Gediya			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
326b3a9737cSLeo Yan	};
327b3a9737cSLeo Yan
32877080f6aSJagdish Gediya	spe-pmu-mid {
32977080f6aSJagdish Gediya		compatible = "arm,statistical-profiling-extension-v1";
33077080f6aSJagdish Gediya		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>;
33177080f6aSJagdish Gediya		status = "disabled";
33277080f6aSJagdish Gediya	};
33377080f6aSJagdish Gediya
33477080f6aSJagdish Gediya	spe-pmu-big {
33577080f6aSJagdish Gediya		compatible = "arm,statistical-profiling-extension-v1";
33677080f6aSJagdish Gediya		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>;
33777080f6aSJagdish Gediya		status = "disabled";
33877080f6aSJagdish Gediya	};
33977080f6aSJagdish Gediya
340b3a9737cSLeo Yan	soc_refclk: refclk {
341b3a9737cSLeo Yan		compatible = "fixed-clock";
342b3a9737cSLeo Yan		#clock-cells = <0>;
343b3a9737cSLeo Yan		clock-frequency = <1000000000>;
344b3a9737cSLeo Yan		clock-output-names = "apb_pclk";
345b3a9737cSLeo Yan	};
346b3a9737cSLeo Yan
347b3a9737cSLeo Yan	soc_refclk60mhz: refclk60mhz {
348b3a9737cSLeo Yan		compatible = "fixed-clock";
349b3a9737cSLeo Yan		#clock-cells = <0>;
350b3a9737cSLeo Yan		clock-frequency = <60000000>;
351b3a9737cSLeo Yan		clock-output-names = "iofpga_clk";
352b3a9737cSLeo Yan	};
353b3a9737cSLeo Yan
354b3a9737cSLeo Yan	soc_uartclk: uartclk {
355b3a9737cSLeo Yan		compatible = "fixed-clock";
356b3a9737cSLeo Yan		#clock-cells = <0>;
35725264e29SJagdish Gediya		clock-frequency = <TC_UARTCLK>;
358b3a9737cSLeo Yan		clock-output-names = "uartclk";
359b3a9737cSLeo Yan	};
360b3a9737cSLeo Yan
361b3a9737cSLeo Yan	/* soc_uart0 on FPGA, ap_ns_uart on FVP */
362b3a9737cSLeo Yan	os_uart: serial@2a400000 {
363b3a9737cSLeo Yan		compatible = "arm,pl011", "arm,primecell";
364b3a9737cSLeo Yan		reg = <0x0 0x2A400000 0x0 UART_OFFSET>;
3651300bbceSJagdish Gediya		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH 0>;
366b3a9737cSLeo Yan		clocks = <&soc_uartclk>, <&soc_refclk>;
367b3a9737cSLeo Yan		clock-names = "uartclk", "apb_pclk";
368b3a9737cSLeo Yan		status = "okay";
369b3a9737cSLeo Yan	};
370b3a9737cSLeo Yan
37179c6ede0SLeo Yan#if !TC_DPU_USE_SCMI_CLK
37279c6ede0SLeo Yan	dpu_aclk: dpu_aclk {
37379c6ede0SLeo Yan		compatible = "fixed-clock";
37479c6ede0SLeo Yan		#clock-cells = <0>;
3751d2d96ddSJagdish Gediya		clock-frequency = <LCD_TIMING_CLK>;
37679c6ede0SLeo Yan		clock-output-names = "fpga:dpu_aclk";
37779c6ede0SLeo Yan	};
37879c6ede0SLeo Yan
37979c6ede0SLeo Yan	dpu_pixel_clk: dpu-pixel-clk {
38079c6ede0SLeo Yan		compatible = "fixed-clock";
38179c6ede0SLeo Yan		#clock-cells = <0>;
3821d2d96ddSJagdish Gediya		clock-frequency = <LCD_TIMING_CLK>;
38379c6ede0SLeo Yan		clock-output-names = "pxclk";
38479c6ede0SLeo Yan	};
38579c6ede0SLeo Yan#endif /* !TC_DPU_USE_SCMI_CLK */
38679c6ede0SLeo Yan
3871d2d96ddSJagdish Gediya#if TC_DPU_USE_SIMPLE_PANEL
3881d2d96ddSJagdish Gediya	vpanel {
3891d2d96ddSJagdish Gediya		compatible = "panel-dpi";
3901d2d96ddSJagdish Gediya		post-init-providers = <&pl0>;
3911d2d96ddSJagdish Gediya		port {
3921d2d96ddSJagdish Gediya			lcd_in: endpoint {
3931d2d96ddSJagdish Gediya				remote-endpoint = <&dp_pl0_out0>;
3941d2d96ddSJagdish Gediya			};
3951d2d96ddSJagdish Gediya		};
3961d2d96ddSJagdish Gediya
3971d2d96ddSJagdish Gediya		panel-timing {
3981d2d96ddSJagdish Gediya			LCD_TIMING;
3991d2d96ddSJagdish Gediya		};
4001d2d96ddSJagdish Gediya	};
4011d2d96ddSJagdish Gediya
4021d2d96ddSJagdish Gediya#else
403b3a9737cSLeo Yan	vencoder {
404b3a9737cSLeo Yan		compatible = "drm,virtual-encoder";
405b3a9737cSLeo Yan		port {
4061d2d96ddSJagdish Gediya			lcd_in: endpoint {
407b3a9737cSLeo Yan				remote-endpoint = <&dp_pl0_out0>;
408b3a9737cSLeo Yan			};
409b3a9737cSLeo Yan		};
410b3a9737cSLeo Yan
411b3a9737cSLeo Yan		display-timings {
412b3a9737cSLeo Yan			timing-panel {
4131d2d96ddSJagdish Gediya				LCD_TIMING;
414b3a9737cSLeo Yan			};
415b3a9737cSLeo Yan		};
416b3a9737cSLeo Yan
417b3a9737cSLeo Yan	};
4181d2d96ddSJagdish Gediya#endif
419e9e83e96SJackson Cooper-Driver	ethernet: ethernet@ETHERNET_ADDR {
420e9e83e96SJackson Cooper-Driver		reg = <0x0 ADDRESSIFY(ETHERNET_ADDR) 0x0 0x10000>;
421e9e83e96SJackson Cooper-Driver		interrupts = <GIC_SPI ETHERNET_INT IRQ_TYPE_LEVEL_HIGH 0>;
422b3a9737cSLeo Yan
423b3a9737cSLeo Yan		reg-io-width = <2>;
424b3a9737cSLeo Yan		smsc,irq-push-pull;
425b3a9737cSLeo Yan	};
426b3a9737cSLeo Yan
427b3a9737cSLeo Yan	bp_clock24mhz: clock24mhz {
428b3a9737cSLeo Yan		compatible = "fixed-clock";
429b3a9737cSLeo Yan		#clock-cells = <0>;
430b3a9737cSLeo Yan		clock-frequency = <24000000>;
431b3a9737cSLeo Yan		clock-output-names = "bp:clock24mhz";
432b3a9737cSLeo Yan	};
433b3a9737cSLeo Yan
434e9e83e96SJackson Cooper-Driver	sysreg: sysreg@SYS_REGS_ADDR {
435b3a9737cSLeo Yan		compatible = "arm,vexpress-sysreg";
436e9e83e96SJackson Cooper-Driver		reg = <0x0 ADDRESSIFY(SYS_REGS_ADDR) 0x0 0x1000>;
437b3a9737cSLeo Yan		gpio-controller;
438b3a9737cSLeo Yan		#gpio-cells = <2>;
439b3a9737cSLeo Yan	};
440b3a9737cSLeo Yan
441b3a9737cSLeo Yan	fixed_3v3: v2m-3v3 {
442b3a9737cSLeo Yan		compatible = "regulator-fixed";
443b3a9737cSLeo Yan		regulator-name = "3V3";
444b3a9737cSLeo Yan		regulator-min-microvolt = <3300000>;
445b3a9737cSLeo Yan		regulator-max-microvolt = <3300000>;
446b3a9737cSLeo Yan		regulator-always-on;
447b3a9737cSLeo Yan	};
448b3a9737cSLeo Yan
449e9e83e96SJackson Cooper-Driver	mmci: mmci@MMC_ADDR {
450b3a9737cSLeo Yan		compatible = "arm,pl180", "arm,primecell";
451e9e83e96SJackson Cooper-Driver		reg = <0x0 ADDRESSIFY(MMC_ADDR) 0x0 0x1000>;
452e9e83e96SJackson Cooper-Driver		interrupts = <GIC_SPI MMC_INT_0 IRQ_TYPE_LEVEL_HIGH 0>,
453e9e83e96SJackson Cooper-Driver			     <GIC_SPI MMC_INT_1 IRQ_TYPE_LEVEL_HIGH 0>;
454b3a9737cSLeo Yan		wp-gpios = <&sysreg 1 0>;
455b3a9737cSLeo Yan		bus-width = <4>;
456b3a9737cSLeo Yan		max-frequency = <25000000>;
457b3a9737cSLeo Yan		vmmc-supply = <&fixed_3v3>;
458b3a9737cSLeo Yan		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
459b3a9737cSLeo Yan		clock-names = "mclk", "apb_pclk";
460b3a9737cSLeo Yan	};
461b3a9737cSLeo Yan
462b3a9737cSLeo Yan	gpu_clk: gpu_clk {
463b3a9737cSLeo Yan		compatible = "fixed-clock";
464b3a9737cSLeo Yan		#clock-cells = <0>;
465b3a9737cSLeo Yan		clock-frequency = <1000000000>;
466b3a9737cSLeo Yan	};
467b3a9737cSLeo Yan
468b3a9737cSLeo Yan	gpu_core_clk: gpu_core_clk {
469b3a9737cSLeo Yan		compatible = "fixed-clock";
470b3a9737cSLeo Yan		#clock-cells = <0>;
471b3a9737cSLeo Yan		clock-frequency = <1000000000>;
472b3a9737cSLeo Yan	};
473b3a9737cSLeo Yan
474b3a9737cSLeo Yan	gpu: gpu@2d000000 {
475b3a9737cSLeo Yan		compatible = "arm,mali-midgard";
476b3a9737cSLeo Yan		reg = <0x0 0x2d000000 0x0 0x200000>;
477b3a9737cSLeo Yan		clocks = <&gpu_core_clk>;
478b3a9737cSLeo Yan		clock-names = "shadercores";
479b3a9737cSLeo Yan#if TC_SCMI_PD_CTRL_EN
480b3a9737cSLeo Yan		power-domains = <&scmi_devpd GPU_SCMI_PD_IDX>;
481b3a9737cSLeo Yan		scmi-perf-domain = <3>;
482b3a9737cSLeo Yan#endif /* TC_SCMI_PD_CTRL_EN */
483b3a9737cSLeo Yan
484bebefe0fSAngel Rodriguez Garcia		pbha {
485bebefe0fSAngel Rodriguez Garcia			int-id-override = <0 0x22>, <2 0x23>, <4 0x23>, <7 0x22>,
486bebefe0fSAngel Rodriguez Garcia					  <8 0x22>, <9 0x22>, <10 0x22>, <11 0x22>,
487bebefe0fSAngel Rodriguez Garcia					  <12 0x22>, <13 0x22>, <16 0x22>, <17 0x32>,
488bebefe0fSAngel Rodriguez Garcia					  <18 0x32>, <19 0x22>, <20 0x22>, <21 0x32>,
489bebefe0fSAngel Rodriguez Garcia					  <22 0x32>, <24 0x22>, <28 0x32>;
490bebefe0fSAngel Rodriguez Garcia			propagate-bits = <0x0f>;
491bebefe0fSAngel Rodriguez Garcia		};
492b3a9737cSLeo Yan	};
493b3a9737cSLeo Yan
494b3a9737cSLeo Yan	power_model_simple {
495b3a9737cSLeo Yan		/*
496b3a9737cSLeo Yan		 * Numbers used are irrelevant to Titan,
497b3a9737cSLeo Yan		 * it helps suppressing the kernel warnings.
498b3a9737cSLeo Yan		 */
499b3a9737cSLeo Yan		compatible = "arm,mali-simple-power-model";
500b3a9737cSLeo Yan		static-coefficient = <2427750>;
501b3a9737cSLeo Yan		dynamic-coefficient = <4687>;
502b3a9737cSLeo Yan		ts = <20000 2000 (-20) 2>;
503b3a9737cSLeo Yan		thermal-zone = "";
504b3a9737cSLeo Yan	};
505b3a9737cSLeo Yan
5064c6960caSBen Horgan	smmu_600: smmu@2ce00000 {
5074c6960caSBen Horgan		compatible = "arm,smmu-v3";
5084c6960caSBen Horgan		reg = <0 0x2ce00000 0 0x20000>;
5091300bbceSJagdish Gediya		interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING 0>,
5101300bbceSJagdish Gediya			     <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>,
5111300bbceSJagdish Gediya			     <GIC_SPI 76 IRQ_TYPE_EDGE_RISING 0>,
5121300bbceSJagdish Gediya			     <GIC_SPI 77 IRQ_TYPE_EDGE_RISING 0>;
5134c6960caSBen Horgan		interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
5144c6960caSBen Horgan		#iommu-cells = <1>;
5154c6960caSBen Horgan		status = "disabled";
5164c6960caSBen Horgan	};
5174c6960caSBen Horgan
518b3a9737cSLeo Yan	smmu_700: iommu@3f000000 {
519b3a9737cSLeo Yan		#iommu-cells = <1>;
520b3a9737cSLeo Yan		compatible = "arm,smmu-v3";
521b3a9737cSLeo Yan		reg = <0x0 0x3f000000 0x0 0x5000000>;
5221300bbceSJagdish Gediya		interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING 0>,
5231300bbceSJagdish Gediya			     <GIC_SPI 229 IRQ_TYPE_EDGE_RISING 0>,
5241300bbceSJagdish Gediya			     <GIC_SPI 230 IRQ_TYPE_EDGE_RISING 0>;
525b3a9737cSLeo Yan		interrupt-names = "eventq", "cmdq-sync", "gerror";
526b3a9737cSLeo Yan		dma-coherent;
5272458b387SLeo Yan		status = "disabled";
528b3a9737cSLeo Yan	};
529b3a9737cSLeo Yan
5300458d3acSJackson Cooper-Driver	smmu_700_dpu: iommu@4002a00000 {
5310458d3acSJackson Cooper-Driver		#iommu-cells = <1>;
5320458d3acSJackson Cooper-Driver		compatible = "arm,smmu-v3";
5330458d3acSJackson Cooper-Driver		reg = <HI(0x4002a00000) LO(0x4002a00000) 0x0 0x5000000>;
5341300bbceSJagdish Gediya		interrupts = <GIC_SPI 481 IRQ_TYPE_EDGE_RISING 0>,
5351300bbceSJagdish Gediya			     <GIC_SPI 482 IRQ_TYPE_EDGE_RISING 0>,
5361300bbceSJagdish Gediya			     <GIC_SPI 483 IRQ_TYPE_EDGE_RISING 0>;
5370458d3acSJackson Cooper-Driver		interrupt-names = "eventq", "cmdq-sync", "gerror";
5380458d3acSJackson Cooper-Driver		dma-coherent;
5390458d3acSJackson Cooper-Driver		status = "disabled";
5400458d3acSJackson Cooper-Driver	};
5410458d3acSJackson Cooper-Driver
542b3a9737cSLeo Yan	dp0: display@DPU_ADDR {
543b3a9737cSLeo Yan		#address-cells = <1>;
544b3a9737cSLeo Yan		#size-cells = <0>;
545b3a9737cSLeo Yan		compatible = "arm,mali-d71";
546b3a9737cSLeo Yan		reg = <HI(ADDRESSIFY(DPU_ADDR)) LO(ADDRESSIFY(DPU_ADDR)) 0 0x20000>;
5471300bbceSJagdish Gediya		interrupts = <GIC_SPI DPU_IRQ IRQ_TYPE_LEVEL_HIGH 0>;
548b3a9737cSLeo Yan		interrupt-names = "DPU";
549b3a9737cSLeo Yan		DPU_CLK_ATTR1;
550b3a9737cSLeo Yan
551b3a9737cSLeo Yan		pl0: pipeline@0 {
552b3a9737cSLeo Yan			reg = <0>;
553b3a9737cSLeo Yan			DPU_CLK_ATTR2;
554b3a9737cSLeo Yan			pl_id = <0>;
555b3a9737cSLeo Yan			ports {
556b3a9737cSLeo Yan				#address-cells = <1>;
557b3a9737cSLeo Yan				#size-cells = <0>;
558b3a9737cSLeo Yan				port@0 {
559b3a9737cSLeo Yan					reg = <0>;
560b3a9737cSLeo Yan					dp_pl0_out0: endpoint {
5611d2d96ddSJagdish Gediya						remote-endpoint = <&lcd_in>;
562b3a9737cSLeo Yan					};
563b3a9737cSLeo Yan				};
564b3a9737cSLeo Yan			};
565b3a9737cSLeo Yan		};
566b3a9737cSLeo Yan
567b3a9737cSLeo Yan		pl1: pipeline@1 {
568b3a9737cSLeo Yan			reg = <1>;
569b3a9737cSLeo Yan			DPU_CLK_ATTR3;
570b3a9737cSLeo Yan			pl_id = <1>;
571b3a9737cSLeo Yan			ports {
572b3a9737cSLeo Yan				#address-cells = <1>;
573b3a9737cSLeo Yan				#size-cells = <0>;
574b3a9737cSLeo Yan				port@0 {
575b3a9737cSLeo Yan					reg = <0>;
576b3a9737cSLeo Yan				};
577b3a9737cSLeo Yan			};
578b3a9737cSLeo Yan		};
579b3a9737cSLeo Yan	};
580b3a9737cSLeo Yan
581b3a9737cSLeo Yan	/*
582b3a9737cSLeo Yan	 * L3 cache in the DSU is the Memory System Component (MSC)
583b3a9737cSLeo Yan	 * The MPAM registers are accessed through utility bus in the DSU
584b3a9737cSLeo Yan	 */
585967999d0SJackson Cooper-Driver	dsu-msc0 {
586b3a9737cSLeo Yan		compatible = "arm,mpam-msc";
587967999d0SJackson Cooper-Driver		reg = <DSU_MPAM_ADDR 0x0 0x2000>;
588b3a9737cSLeo Yan	};
589b3a9737cSLeo Yan
590b3a9737cSLeo Yan	ete0 {
591b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
592b3a9737cSLeo Yan		cpu = <&CPU0>;
593b3a9737cSLeo Yan	};
594b3a9737cSLeo Yan
595b3a9737cSLeo Yan	ete1 {
596b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
597b3a9737cSLeo Yan		cpu = <&CPU1>;
598b3a9737cSLeo Yan	};
599b3a9737cSLeo Yan
600b3a9737cSLeo Yan	ete2 {
601b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
602b3a9737cSLeo Yan		cpu = <&CPU2>;
603b3a9737cSLeo Yan	};
604b3a9737cSLeo Yan
605b3a9737cSLeo Yan	ete3 {
606b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
607b3a9737cSLeo Yan		cpu = <&CPU3>;
608b3a9737cSLeo Yan	};
609b3a9737cSLeo Yan
610b3a9737cSLeo Yan	ete4 {
611b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
612b3a9737cSLeo Yan		cpu = <&CPU4>;
613b3a9737cSLeo Yan	};
614b3a9737cSLeo Yan
615b3a9737cSLeo Yan	ete5 {
616b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
617b3a9737cSLeo Yan		cpu = <&CPU5>;
618b3a9737cSLeo Yan	};
619b3a9737cSLeo Yan
620b3a9737cSLeo Yan	ete6 {
621b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
622b3a9737cSLeo Yan		cpu = <&CPU6>;
623b3a9737cSLeo Yan	};
624b3a9737cSLeo Yan
625b3a9737cSLeo Yan	ete7 {
626b3a9737cSLeo Yan		compatible = "arm,embedded-trace-extension";
627b3a9737cSLeo Yan		cpu = <&CPU7>;
628b3a9737cSLeo Yan	};
629b3a9737cSLeo Yan
630b3a9737cSLeo Yan	trbe {
631b3a9737cSLeo Yan		compatible = "arm,trace-buffer-extension";
6321300bbceSJagdish Gediya		interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW 0>;
633b3a9737cSLeo Yan	};
634b3a9737cSLeo Yan
635b3a9737cSLeo Yan	trusty {
636b3a9737cSLeo Yan		#size-cells = <0x02>;
637b3a9737cSLeo Yan		#address-cells = <0x02>;
638b3a9737cSLeo Yan		ranges = <0x00>;
639b3a9737cSLeo Yan		compatible = "android,trusty-v1";
640b3a9737cSLeo Yan
641b3a9737cSLeo Yan		virtio {
642b3a9737cSLeo Yan			compatible = "android,trusty-virtio-v1";
643b3a9737cSLeo Yan		};
644b3a9737cSLeo Yan
645b3a9737cSLeo Yan		test {
646b3a9737cSLeo Yan			compatible = "android,trusty-test-v1";
647b3a9737cSLeo Yan		};
648b3a9737cSLeo Yan
649b3a9737cSLeo Yan		log {
650b3a9737cSLeo Yan			compatible = "android,trusty-log-v1";
651b3a9737cSLeo Yan		};
652b3a9737cSLeo Yan
653b3a9737cSLeo Yan		irq {
654b3a9737cSLeo Yan			ipi-range = <0x08 0x0f 0x08>;
655b3a9737cSLeo Yan			interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>;
656b3a9737cSLeo Yan			interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>;
657b3a9737cSLeo Yan			compatible = "android,trusty-irq-v1";
658b3a9737cSLeo Yan		};
659b3a9737cSLeo Yan	};
660b3a9737cSLeo Yan
661b3a9737cSLeo Yan	/* used in U-boot, Linux doesn't care */
662b3a9737cSLeo Yan	arm_ffa {
663b3a9737cSLeo Yan		compatible = "arm,ffa";
664b3a9737cSLeo Yan		method = "smc";
665b3a9737cSLeo Yan	};
666b3a9737cSLeo Yan};
667*8de6021bSRyan Everett
668*8de6021bSRyan Everett/ {
669*8de6021bSRyan Everett	cpus {
670*8de6021bSRyan Everett		CPU2:cpu@200 {
671*8de6021bSRyan Everett			clocks = <&scmi_dvfs 1>;
672*8de6021bSRyan Everett			capacity-dmips-mhz = <MID_CAPACITY>;
673*8de6021bSRyan Everett		};
674*8de6021bSRyan Everett
675*8de6021bSRyan Everett		CPU3:cpu@300 {
676*8de6021bSRyan Everett			clocks = <&scmi_dvfs 1>;
677*8de6021bSRyan Everett			capacity-dmips-mhz = <MID_CAPACITY>;
678*8de6021bSRyan Everett		};
679*8de6021bSRyan Everett
680*8de6021bSRyan Everett		CPU6:cpu@600 {
681*8de6021bSRyan Everett			clocks = <&scmi_dvfs 2>;
682*8de6021bSRyan Everett			capacity-dmips-mhz = <BIG_CAPACITY>;
683*8de6021bSRyan Everett		};
684*8de6021bSRyan Everett
685*8de6021bSRyan Everett		CPU7:cpu@700 {
686*8de6021bSRyan Everett			clocks = <&scmi_dvfs 2>;
687*8de6021bSRyan Everett			capacity-dmips-mhz = <BIG_CAPACITY>;
688*8de6021bSRyan Everett		};
689*8de6021bSRyan Everett	};
690*8de6021bSRyan Everett
691*8de6021bSRyan Everett	rse_mbox_db_rx: mhu@RSE_MHU_RX_ADDR {
692*8de6021bSRyan Everett		compatible = MHU_RX_COMPAT;
693*8de6021bSRyan Everett		reg = <0x0 ADDRESSIFY(RSE_MHU_RX_ADDR) 0x0 MHU_OFFSET>;
694*8de6021bSRyan Everett		clocks = <&soc_refclk>;
695*8de6021bSRyan Everett		clock-names = "apb_pclk";
696*8de6021bSRyan Everett		#mbox-cells = <MHU_MBOX_CELLS>;
697*8de6021bSRyan Everett		interrupts = <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 0>;
698*8de6021bSRyan Everett		interrupt-names = MHU_RX_INT_NAME;
699*8de6021bSRyan Everett#if TARGET_FLAVOUR_FPGA
700*8de6021bSRyan Everett		status = "disabled";
701*8de6021bSRyan Everett#endif
702*8de6021bSRyan Everett	};
703*8de6021bSRyan Everett
704*8de6021bSRyan Everett	rse_mbox_db_tx: mhu@RSE_MHU_TX_ADDR {
705*8de6021bSRyan Everett		compatible = MHU_TX_COMPAT;
706*8de6021bSRyan Everett		reg = <0x0 ADDRESSIFY(RSE_MHU_TX_ADDR) 0x0 MHU_OFFSET>;
707*8de6021bSRyan Everett		clocks = <&soc_refclk>;
708*8de6021bSRyan Everett		clock-names = "apb_pclk";
709*8de6021bSRyan Everett		#mbox-cells = <MHU_MBOX_CELLS>;
710*8de6021bSRyan Everett		interrupt-names = MHU_TX_INT_NAME;
711*8de6021bSRyan Everett#if TARGET_FLAVOUR_FPGA
712*8de6021bSRyan Everett		status = "disabled";
713*8de6021bSRyan Everett#endif
714*8de6021bSRyan Everett	};
715*8de6021bSRyan Everett
716*8de6021bSRyan Everett	gic: interrupt-controller@GIC_CTRL_ADDR {
717*8de6021bSRyan Everett		ppi-partitions {
718*8de6021bSRyan Everett			ppi_partition_little: interrupt-partition-0 {
719*8de6021bSRyan Everett				affinity = <&CPU0>, <&CPU1>;
720*8de6021bSRyan Everett			};
721*8de6021bSRyan Everett
722*8de6021bSRyan Everett			ppi_partition_mid: interrupt-partition-1 {
723*8de6021bSRyan Everett				affinity = <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>;
724*8de6021bSRyan Everett			};
725*8de6021bSRyan Everett
726*8de6021bSRyan Everett			ppi_partition_big: interrupt-partition-2 {
727*8de6021bSRyan Everett				affinity = <&CPU6>, <&CPU7>;
728*8de6021bSRyan Everett			};
729*8de6021bSRyan Everett		};
730*8de6021bSRyan Everett	};
731*8de6021bSRyan Everett
732*8de6021bSRyan Everett	sram: sram@6000000 {
733*8de6021bSRyan Everett		cpu_scp_scmi_p2a: scp-shmem@80 {
734*8de6021bSRyan Everett			compatible = "arm,scmi-shmem";
735*8de6021bSRyan Everett			reg = <0x80 0x80>;
736*8de6021bSRyan Everett		};
737*8de6021bSRyan Everett	};
738*8de6021bSRyan Everett
739*8de6021bSRyan Everett	firmware {
740*8de6021bSRyan Everett		scmi {
741*8de6021bSRyan Everett			mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 1>;
742*8de6021bSRyan Everett			shmem = <&cpu_scp_scmi_a2p &cpu_scp_scmi_p2a>;
743*8de6021bSRyan Everett		};
744*8de6021bSRyan Everett
745*8de6021bSRyan Everett		rse {
746*8de6021bSRyan Everett			compatible = "arm,rse";
747*8de6021bSRyan Everett			mbox-names = "tx", "rx";
748*8de6021bSRyan Everett			mboxes = <&rse_mbox_db_tx 0 0 0>, <&rse_mbox_db_rx 0 0 0>;
749*8de6021bSRyan Everett#if TARGET_FLAVOUR_FPGA
750*8de6021bSRyan Everett			status = "disabled";
751*8de6021bSRyan Everett#endif
752*8de6021bSRyan Everett		};
753*8de6021bSRyan Everett	};
754*8de6021bSRyan Everett
755*8de6021bSRyan Everett	dsu-pmu {
756*8de6021bSRyan Everett		compatible = "arm,dsu-pmu";
757*8de6021bSRyan Everett		cpus = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>;
758*8de6021bSRyan Everett	};
759*8de6021bSRyan Everett
760*8de6021bSRyan Everett	cs-pmu@0 {
761*8de6021bSRyan Everett		compatible = "arm,coresight-pmu";
762*8de6021bSRyan Everett		reg = <0x0 MCN_PMU_ADDR(0) 0x0 0xffc>;
763*8de6021bSRyan Everett	};
764*8de6021bSRyan Everett
765*8de6021bSRyan Everett	cs-pmu@1 {
766*8de6021bSRyan Everett		compatible = "arm,coresight-pmu";
767*8de6021bSRyan Everett		reg = <0x0 MCN_PMU_ADDR(1) 0x0 0xffc>;
768*8de6021bSRyan Everett	};
769*8de6021bSRyan Everett
770*8de6021bSRyan Everett	cs-pmu@2 {
771*8de6021bSRyan Everett		compatible = "arm,coresight-pmu";
772*8de6021bSRyan Everett		reg = <0x0 MCN_PMU_ADDR(2) 0x0 0xffc>;
773*8de6021bSRyan Everett	};
774*8de6021bSRyan Everett
775*8de6021bSRyan Everett	cs-pmu@3 {
776*8de6021bSRyan Everett		compatible = "arm,coresight-pmu";
777*8de6021bSRyan Everett		reg = <0x0 MCN_PMU_ADDR(3) 0x0 0xffc>;
778*8de6021bSRyan Everett	};
779*8de6021bSRyan Everett};
780