blob: c1c8566d74f5978a52e7c2f898749b97288ff4b5 [file] [log] [blame]
Tom Rini93743d22024-04-01 09:08:13 -04001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's ExynosAutov920 SoC device tree source
4 *
5 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
6 *
7 */
8
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/soc/samsung,exynos-usi.h>
11
12/ {
13 compatible = "samsung,exynosautov920";
14 #address-cells = <2>;
15 #size-cells = <1>;
16
17 interrupt-parent = <&gic>;
18
19 aliases {
20 pinctrl0 = &pinctrl_alive;
21 pinctrl1 = &pinctrl_aud;
22 pinctrl2 = &pinctrl_hsi0;
23 pinctrl3 = &pinctrl_hsi1;
24 pinctrl4 = &pinctrl_hsi2;
25 pinctrl5 = &pinctrl_hsi2ufs;
26 pinctrl6 = &pinctrl_peric0;
27 pinctrl7 = &pinctrl_peric1;
28 };
29
30 arm-pmu {
31 compatible = "arm,cortex-a78-pmu";
32 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
33 };
34
35 xtcxo: clock {
36 compatible = "fixed-clock";
37 #clock-cells = <0>;
38 clock-output-names = "oscclk";
39 };
40
41 /*
42 * FIXME: Keep the stub clock for serial driver, until proper clock
43 * driver is implemented.
44 */
45 clock_usi: clock-usi {
46 compatible = "fixed-clock";
47 #clock-cells = <0>;
48 clock-frequency = <200000000>;
49 clock-output-names = "usi";
50 };
51
52 cpus: cpus {
53 #address-cells = <2>;
54 #size-cells = <0>;
55
56 cpu-map {
57 cluster0 {
58 core0 {
59 cpu = <&cpu0>;
60 };
61 core1 {
62 cpu = <&cpu1>;
63 };
64 core2 {
65 cpu = <&cpu2>;
66 };
67 core3 {
68 cpu = <&cpu3>;
69 };
70 };
71
72 cluster1 {
73 core0 {
74 cpu = <&cpu4>;
75 };
76 core1 {
77 cpu = <&cpu5>;
78 };
79 core2 {
80 cpu = <&cpu6>;
81 };
82 core3 {
83 cpu = <&cpu7>;
84 };
85 };
86
87 cluster2 {
88 core0 {
89 cpu = <&cpu8>;
90 };
91 core1 {
92 cpu = <&cpu9>;
93 };
94 };
95 };
96
97 cpu0: cpu@0 {
98 device_type = "cpu";
99 compatible = "arm,cortex-a78ae";
100 reg = <0x0 0x0>;
101 enable-method = "psci";
102 };
103
104 cpu1: cpu@100 {
105 device_type = "cpu";
106 compatible = "arm,cortex-a78ae";
107 reg = <0x0 0x100>;
108 enable-method = "psci";
109 };
110
111 cpu2: cpu@200 {
112 device_type = "cpu";
113 compatible = "arm,cortex-a78ae";
114 reg = <0x0 0x200>;
115 enable-method = "psci";
116 };
117
118 cpu3: cpu@300 {
119 device_type = "cpu";
120 compatible = "arm,cortex-a78ae";
121 reg = <0x0 0x300>;
122 enable-method = "psci";
123 };
124
125 cpu4: cpu@10000 {
126 device_type = "cpu";
127 compatible = "arm,cortex-a78ae";
128 reg = <0x0 0x10000>;
129 enable-method = "psci";
130 };
131
132 cpu5: cpu@10100 {
133 device_type = "cpu";
134 compatible = "arm,cortex-a78ae";
135 reg = <0x0 0x10100>;
136 enable-method = "psci";
137 };
138
139 cpu6: cpu@10200 {
140 device_type = "cpu";
141 compatible = "arm,cortex-a78ae";
142 reg = <0x0 0x10200>;
143 enable-method = "psci";
144 };
145
146 cpu7: cpu@10300 {
147 device_type = "cpu";
148 compatible = "arm,cortex-a78ae";
149 reg = <0x0 0x10300>;
150 enable-method = "psci";
151 };
152
153 cpu8: cpu@20000 {
154 device_type = "cpu";
155 compatible = "arm,cortex-a78ae";
156 reg = <0x0 0x20000>;
157 enable-method = "psci";
158 };
159
160 cpu9: cpu@20100 {
161 device_type = "cpu";
162 compatible = "arm,cortex-a78ae";
163 reg = <0x0 0x20100>;
164 enable-method = "psci";
165 };
166 };
167
168 psci {
169 compatible = "arm,psci-1.0";
170 method = "smc";
171 };
172
173 soc: soc@0 {
174 compatible = "simple-bus";
175 #address-cells = <1>;
176 #size-cells = <1>;
177 ranges = <0x0 0x0 0x0 0x20000000>;
178
179 chipid@10000000 {
180 compatible = "samsung,exynosautov920-chipid",
181 "samsung,exynos850-chipid";
182 reg = <0x10000000 0x24>;
183 };
184
185 gic: interrupt-controller@10400000 {
186 compatible = "arm,gic-v3";
187 #interrupt-cells = <3>;
188 #address-cells = <0>;
189 interrupt-controller;
190 reg = <0x10400000 0x10000>,
191 <0x10460000 0x140000>;
192 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
193 };
194
195 syscon_peric0: syscon@10820000 {
196 compatible = "samsung,exynosautov920-peric0-sysreg",
197 "syscon";
198 reg = <0x10820000 0x2000>;
199 };
200
201 pinctrl_peric0: pinctrl@10830000 {
202 compatible = "samsung,exynosautov920-pinctrl";
203 reg = <0x10830000 0x10000>;
204 interrupts = <GIC_SPI 753 IRQ_TYPE_LEVEL_HIGH>;
205 };
206
207 usi_0: usi@108800c0 {
208 compatible = "samsung,exynosautov920-usi",
209 "samsung,exynos850-usi";
210 reg = <0x108800c0 0x20>;
211 samsung,sysreg = <&syscon_peric0 0x1000>;
212 samsung,mode = <USI_V2_UART>;
213 #address-cells = <1>;
214 #size-cells = <1>;
215 ranges;
216 clocks = <&clock_usi>, <&clock_usi>;
217 clock-names = "pclk", "ipclk";
218 status = "disabled";
219
220 serial_0: serial@10880000 {
221 compatible = "samsung,exynosautov920-uart",
222 "samsung,exynos850-uart";
223 reg = <0x10880000 0xc0>;
224 interrupts = <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH>;
225 pinctrl-names = "default";
226 pinctrl-0 = <&uart0_bus>;
227 clocks = <&clock_usi>, <&clock_usi>;
228 clock-names = "uart", "clk_uart_baud0";
229 samsung,uart-fifosize = <256>;
230 status = "disabled";
231 };
232 };
233
234 pwm: pwm@109b0000 {
235 compatible = "samsung,exynosautov920-pwm",
236 "samsung,exynos4210-pwm";
237 reg = <0x109b0000 0x100>;
238 samsung,pwm-outputs = <0>, <1>, <2>, <3>;
239 #pwm-cells = <3>;
240 clocks = <&xtcxo>;
241 clock-names = "timers";
242 status = "disabled";
243 };
244
245 syscon_peric1: syscon@10c20000 {
246 compatible = "samsung,exynosautov920-peric1-sysreg",
247 "syscon";
248 reg = <0x10c20000 0x2000>;
249 };
250
251 pinctrl_peric1: pinctrl@10c30000 {
252 compatible = "samsung,exynosautov920-pinctrl";
253 reg = <0x10c30000 0x10000>;
254 interrupts = <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>;
255 };
256
257 pinctrl_alive: pinctrl@11850000 {
258 compatible = "samsung,exynosautov920-pinctrl";
259 reg = <0x11850000 0x10000>;
260
261 wakeup-interrupt-controller {
262 compatible = "samsung,exynosautov920-wakeup-eint";
263 };
264 };
265
266 pmu_system_controller: system-controller@11860000 {
267 compatible = "samsung,exynosautov920-pmu",
268 "samsung,exynos7-pmu","syscon";
269 reg = <0x11860000 0x10000>;
270 };
271
272 pinctrl_hsi0: pinctrl@16040000 {
273 compatible = "samsung,exynosautov920-pinctrl";
274 reg = <0x16040000 0x10000>;
275 interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>;
276 };
277
278 pinctrl_hsi1: pinctrl@16450000 {
279 compatible = "samsung,exynosautov920-pinctrl";
280 reg = <0x16450000 0x10000>;
281 interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>;
282 };
283
284 pinctrl_hsi2: pinctrl@16c10000 {
285 compatible = "samsung,exynosautov920-pinctrl";
286 reg = <0x16c10000 0x10000>;
287 interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
288 };
289
290 pinctrl_hsi2ufs: pinctrl@16d20000 {
291 compatible = "samsung,exynosautov920-pinctrl";
292 reg = <0x16d20000 0x10000>;
293 interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
294 };
295
296 pinctrl_aud: pinctrl@1a460000 {
297 compatible = "samsung,exynosautov920-pinctrl";
298 reg = <0x1a460000 0x10000>;
299 };
300 };
301
302 timer {
303 compatible = "arm,armv8-timer";
304 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
305 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
306 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
307 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
308 <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
309 };
310};
311
312#include "exynosautov920-pinctrl.dtsi"