xref: /rk3399_ARM-atf/fdts/rdaspen.dts (revision c076475173c067cdfb7d6dd26657a49eef22cf21)
1d1a1abecSDavid Hu/*
2d1a1abecSDavid Hu * Copyright (c) 2025, Arm Limited. All rights reserved.
3d1a1abecSDavid Hu *
4d1a1abecSDavid Hu * SPDX-License-Identifier: BSD-3-Clause
5d1a1abecSDavid Hu */
6d1a1abecSDavid Hu
7d1a1abecSDavid Hu/dts-v1/;
8d1a1abecSDavid Hu
9d1a1abecSDavid Hu#include <dt-bindings/interrupt-controller/arm-gic.h>
10*b666f0a1SAmr Mohamed#include "rdaspen-defs.dtsi"
11d1a1abecSDavid Hu
12d1a1abecSDavid Hu/ {
13d1a1abecSDavid Hu	model = "RD-Aspen";
14d1a1abecSDavid Hu	compatible = "arm,rdaspen";
15d1a1abecSDavid Hu	interrupt-parent = <&gic>;
16d1a1abecSDavid Hu	#address-cells = <2>;
17d1a1abecSDavid Hu	#size-cells = <2>;
18d1a1abecSDavid Hu
19d1a1abecSDavid Hu	chosen {
20d1a1abecSDavid Hu		stdout-path = &soc_serial0;
21d1a1abecSDavid Hu	};
22d1a1abecSDavid Hu
23d1a1abecSDavid Hu	cpus {
24d1a1abecSDavid Hu		#address-cells = <2>;
25d1a1abecSDavid Hu		#size-cells = <0>;
26d1a1abecSDavid Hu
27*b666f0a1SAmr Mohamed		/* Up to 4 clusters with up to 4 CPU cores in each cluster */
28*b666f0a1SAmr Mohamed		CPU_MAP
29*b666f0a1SAmr Mohamed		CPUS
30b0a8c52eSAmr Mohamed	};
31b0a8c52eSAmr Mohamed
32*b666f0a1SAmr Mohamed	L3_CACHE
33*b666f0a1SAmr Mohamed	DSU_PMU
34d1a1abecSDavid Hu
35d1a1abecSDavid Hu	memory@80000000 {
36d1a1abecSDavid Hu		device_type = "memory";
37d1a1abecSDavid Hu
38d1a1abecSDavid Hu		/* Bank 0: start = 0x0000_0000_8000_0000, size = ~2 GiB (0x7F00_0000) */
39d1a1abecSDavid Hu		/* Bank 1: start = 0x0000_0200_0000_0000, size = 2 GiB  (0x8000_0000) */
40d1a1abecSDavid Hu		reg = <
41d1a1abecSDavid Hu			0x00000000  0x80000000  0x00000000  0x7F000000
42d1a1abecSDavid Hu			0x00000200  0x00000000  0x00000000  0x80000000
43d1a1abecSDavid Hu		>;
44d1a1abecSDavid Hu	};
45d1a1abecSDavid Hu
46d1a1abecSDavid Hu	timer {
47d1a1abecSDavid Hu		compatible = "arm,armv8-timer";
48d1a1abecSDavid Hu		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
49d1a1abecSDavid Hu			<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
50d1a1abecSDavid Hu			<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
51d1a1abecSDavid Hu			<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
52d1a1abecSDavid Hu			<GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
53d1a1abecSDavid Hu	};
54d1a1abecSDavid Hu
55d1a1abecSDavid Hu	soc_clk24mhz: clk24mhz {
56d1a1abecSDavid Hu		compatible = "fixed-clock";
57d1a1abecSDavid Hu		#clock-cells = <0>;
58d1a1abecSDavid Hu		clock-frequency = <24000000>;
59d1a1abecSDavid Hu		clock-output-names = "refclk24mhz";
60d1a1abecSDavid Hu	};
61d1a1abecSDavid Hu
62d1a1abecSDavid Hu	soc {
63d1a1abecSDavid Hu		compatible = "simple-bus";
64d1a1abecSDavid Hu		#address-cells = <2>;
65d1a1abecSDavid Hu		#size-cells = <2>;
66d1a1abecSDavid Hu		ranges;
67d1a1abecSDavid Hu
68d1a1abecSDavid Hu		timer@1a810000 {
69d1a1abecSDavid Hu			compatible = "arm,armv7-timer-mem";
70d1a1abecSDavid Hu			reg = <0x0 0x1a810000 0 0x10000>;
716fb6bee1SAhmed Azeem			#address-cells = <1>;
726fb6bee1SAhmed Azeem			#size-cells = <1>;
736fb6bee1SAhmed Azeem			/* Map child space [0x0..0x30000) to parent @ 0x1a810000 */
746fb6bee1SAhmed Azeem			ranges = <0x0 0x0 0x1a810000 0x00030000>;
75d1a1abecSDavid Hu
766fb6bee1SAhmed Azeem			frame@20000 {
77d1a1abecSDavid Hu				frame-number = <1>;
78d1a1abecSDavid Hu				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
796fb6bee1SAhmed Azeem				reg = <0x20000 0x10000>;
80d1a1abecSDavid Hu			};
81d1a1abecSDavid Hu		};
82d1a1abecSDavid Hu
83d1a1abecSDavid Hu		gic: interrupt-controller@20000000 {
84d1a1abecSDavid Hu			compatible = "arm,gic-v3";
85d1a1abecSDavid Hu			reg = <0x0 0x20000000 0x0 0x10000>,    /* GICD */
86d1a1abecSDavid Hu			      <0x0 0x200c0000 0x0 0x400000>;   /* 16 * GICR */
87d1a1abecSDavid Hu			#interrupt-cells = <3>;
88d1a1abecSDavid Hu			#address-cells = <2>;
89d1a1abecSDavid Hu			#size-cells = <2>;
90d1a1abecSDavid Hu			ranges;
91d1a1abecSDavid Hu			interrupt-controller;
92d1a1abecSDavid Hu			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
93d1a1abecSDavid Hu
94d1a1abecSDavid Hu			its1: msi-controller@20040000 {
95d1a1abecSDavid Hu				compatible = "arm,gic-v3-its";
96d1a1abecSDavid Hu				reg = <0x0 0x20040000 0x0 0x40000>;
97d1a1abecSDavid Hu				msi-controller;
98d1a1abecSDavid Hu				#msi-cells = <1>;
99d1a1abecSDavid Hu			};
100d1a1abecSDavid Hu			its2: msi-controller@20080000 {
101d1a1abecSDavid Hu				compatible = "arm,gic-v3-its";
102d1a1abecSDavid Hu				reg = <0x0 0x20080000 0x0 0x40000>;
103d1a1abecSDavid Hu				msi-controller;
104d1a1abecSDavid Hu				#msi-cells = <1>;
105d1a1abecSDavid Hu			};
106d1a1abecSDavid Hu		};
107d1a1abecSDavid Hu
108d1a1abecSDavid Hu		/* UART is fixed as 24MHz, both UARTCLK and PCLK */
109d1a1abecSDavid Hu		soc_serial0: serial@1a400000 {
110d1a1abecSDavid Hu			compatible = "arm,pl011", "arm,primecell";
111d1a1abecSDavid Hu			reg = <0x0 0x1a400000 0x0 0x10000>;
112d1a1abecSDavid Hu			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
113d1a1abecSDavid Hu			clocks = <&soc_clk24mhz>, <&soc_clk24mhz>;
114d1a1abecSDavid Hu			clock-names = "uartclk", "apb_pclk";
115d1a1abecSDavid Hu		};
116d1a1abecSDavid Hu
117d1a1abecSDavid Hu		watchdog@1a420000 {
118d1a1abecSDavid Hu			compatible = "arm,sbsa-gwdt";
119d1a1abecSDavid Hu			reg = <0x0 0x1a420000 0x0 0x10000>,
120d1a1abecSDavid Hu			      <0x0 0x1a430000 0x0 0x10000>;
121d1a1abecSDavid Hu			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
122d1a1abecSDavid Hu		};
123d1a1abecSDavid Hu
124d1a1abecSDavid Hu		rtc@300d0000 {
125d1a1abecSDavid Hu			compatible = "arm,pl031", "arm,primecell";
126d1a1abecSDavid Hu			reg = <0x0 0x300d0000 0x0 0x10000>;
127d1a1abecSDavid Hu			interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
128d1a1abecSDavid Hu			clocks = <&soc_clk24mhz>;
129d1a1abecSDavid Hu			clock-names = "apb_pclk";
130d1a1abecSDavid Hu		};
131d1a1abecSDavid Hu
132d1a1abecSDavid Hu		virtio-net@30060000 {
133d1a1abecSDavid Hu			compatible = "virtio,mmio";
134d1a1abecSDavid Hu			reg = <0x0 0x30060000 0x0 0x10000>;
135d1a1abecSDavid Hu			interrupts = <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
136d1a1abecSDavid Hu		};
137d1a1abecSDavid Hu
138d1a1abecSDavid Hu		/* OS storage */
139d1a1abecSDavid Hu		virtio-block@30020000 {
140d1a1abecSDavid Hu			compatible = "virtio,mmio";
141d1a1abecSDavid Hu			reg = <0x0 0x30020000 0x0 0x10000>;
142d1a1abecSDavid Hu			interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>;
143d1a1abecSDavid Hu		};
144d1a1abecSDavid Hu
145d1a1abecSDavid Hu		/* Distro installation media */
146d1a1abecSDavid Hu		virtio-block@30030000 {
147d1a1abecSDavid Hu			compatible = "virtio,mmio";
148d1a1abecSDavid Hu			reg = <0x0 0x30030000 0x0 0x10000>;
149d1a1abecSDavid Hu			interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>;
150d1a1abecSDavid Hu		};
151d1a1abecSDavid Hu
152d1a1abecSDavid Hu		/* SystemReady ACS validation media */
153d1a1abecSDavid Hu		virtio-block@30040000 {
154d1a1abecSDavid Hu			compatible = "virtio,mmio";
155d1a1abecSDavid Hu			reg = <0x0 0x30040000 0x0 0x10000>;
156d1a1abecSDavid Hu			interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
157d1a1abecSDavid Hu		};
158d1a1abecSDavid Hu
159d1a1abecSDavid Hu		/* User data media */
160d1a1abecSDavid Hu		virtio-block@30050000 {
161d1a1abecSDavid Hu			compatible = "virtio,mmio";
162d1a1abecSDavid Hu			reg = <0x0 0x30050000 0x0 0x10000>;
163d1a1abecSDavid Hu			interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>;
164d1a1abecSDavid Hu		};
165d1a1abecSDavid Hu
166d1a1abecSDavid Hu		virtio-rng@30080000 {
167d1a1abecSDavid Hu			compatible = "virtio,mmio";
168d1a1abecSDavid Hu			reg = <0x0 0x30080000 0x0 0x10000>;
169d1a1abecSDavid Hu			interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
170d1a1abecSDavid Hu		};
171d1a1abecSDavid Hu
172d1a1abecSDavid Hu	};
173d1a1abecSDavid Hu
174d1a1abecSDavid Hu	psci {
175d1a1abecSDavid Hu		compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
176d1a1abecSDavid Hu		method = "smc";
177d1a1abecSDavid Hu		cpu_suspend = <0xc4000001>;
178d1a1abecSDavid Hu		cpu_off = <0x84000002>;
179d1a1abecSDavid Hu		cpu_on = <0xc4000003>;
180d1a1abecSDavid Hu	};
181d1a1abecSDavid Hu
182d1a1abecSDavid Hu};
183