xref: /linux/scripts/dtc/include-prefixes/arm64/exynos/exynos9810.dtsi (revision 1260ed77798502de9c98020040d2995008de10cc)
1*698be6feSMarkuss Broks// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2*698be6feSMarkuss Broks/*
3*698be6feSMarkuss Broks * Samsung Exynos 9810 SoC device tree source
4*698be6feSMarkuss Broks *
5*698be6feSMarkuss Broks * Copyright (c) 2024 Markuss Broks <markuss.broks@gmail.com>
6*698be6feSMarkuss Broks * Copyright (c) 2024 Maksym Holovach <nergzd@nergzd723.xyz>
7*698be6feSMarkuss Broks */
8*698be6feSMarkuss Broks
9*698be6feSMarkuss Broks#include <dt-bindings/interrupt-controller/arm-gic.h>
10*698be6feSMarkuss Broks
11*698be6feSMarkuss Broks/ {
12*698be6feSMarkuss Broks	compatible = "samsung,exynos9810";
13*698be6feSMarkuss Broks	#address-cells = <2>;
14*698be6feSMarkuss Broks	#size-cells = <1>;
15*698be6feSMarkuss Broks
16*698be6feSMarkuss Broks	interrupt-parent = <&gic>;
17*698be6feSMarkuss Broks
18*698be6feSMarkuss Broks	aliases {
19*698be6feSMarkuss Broks		pinctrl0 = &pinctrl_alive;
20*698be6feSMarkuss Broks		pinctrl1 = &pinctrl_aud;
21*698be6feSMarkuss Broks		pinctrl2 = &pinctrl_chub;
22*698be6feSMarkuss Broks		pinctrl3 = &pinctrl_cmgp;
23*698be6feSMarkuss Broks		pinctrl4 = &pinctrl_fsys0;
24*698be6feSMarkuss Broks		pinctrl5 = &pinctrl_fsys1;
25*698be6feSMarkuss Broks		pinctrl6 = &pinctrl_peric0;
26*698be6feSMarkuss Broks		pinctrl7 = &pinctrl_peric1;
27*698be6feSMarkuss Broks		pinctrl8 = &pinctrl_vts;
28*698be6feSMarkuss Broks	};
29*698be6feSMarkuss Broks
30*698be6feSMarkuss Broks	cpus {
31*698be6feSMarkuss Broks		#address-cells = <1>;
32*698be6feSMarkuss Broks		#size-cells = <0>;
33*698be6feSMarkuss Broks
34*698be6feSMarkuss Broks		cpu-map {
35*698be6feSMarkuss Broks			cluster0 {
36*698be6feSMarkuss Broks				core0 {
37*698be6feSMarkuss Broks					cpu = <&cpu0>;
38*698be6feSMarkuss Broks				};
39*698be6feSMarkuss Broks				core1 {
40*698be6feSMarkuss Broks					cpu = <&cpu1>;
41*698be6feSMarkuss Broks				};
42*698be6feSMarkuss Broks				core2 {
43*698be6feSMarkuss Broks					cpu = <&cpu2>;
44*698be6feSMarkuss Broks				};
45*698be6feSMarkuss Broks				core3 {
46*698be6feSMarkuss Broks					cpu = <&cpu3>;
47*698be6feSMarkuss Broks				};
48*698be6feSMarkuss Broks			};
49*698be6feSMarkuss Broks
50*698be6feSMarkuss Broks			cluster1 {
51*698be6feSMarkuss Broks				core0 {
52*698be6feSMarkuss Broks					cpu = <&cpu4>;
53*698be6feSMarkuss Broks				};
54*698be6feSMarkuss Broks				core1 {
55*698be6feSMarkuss Broks					cpu = <&cpu5>;
56*698be6feSMarkuss Broks				};
57*698be6feSMarkuss Broks				core2 {
58*698be6feSMarkuss Broks					cpu = <&cpu6>;
59*698be6feSMarkuss Broks				};
60*698be6feSMarkuss Broks				core3 {
61*698be6feSMarkuss Broks					cpu = <&cpu7>;
62*698be6feSMarkuss Broks				};
63*698be6feSMarkuss Broks			};
64*698be6feSMarkuss Broks		};
65*698be6feSMarkuss Broks
66*698be6feSMarkuss Broks		cpu0: cpu@0 {
67*698be6feSMarkuss Broks			device_type = "cpu";
68*698be6feSMarkuss Broks			compatible = "arm,cortex-a55";
69*698be6feSMarkuss Broks			reg = <0x0>;
70*698be6feSMarkuss Broks			enable-method = "psci";
71*698be6feSMarkuss Broks		};
72*698be6feSMarkuss Broks
73*698be6feSMarkuss Broks		cpu1: cpu@1 {
74*698be6feSMarkuss Broks			device_type = "cpu";
75*698be6feSMarkuss Broks			compatible = "arm,cortex-a55";
76*698be6feSMarkuss Broks			reg = <0x1>;
77*698be6feSMarkuss Broks			enable-method = "psci";
78*698be6feSMarkuss Broks		};
79*698be6feSMarkuss Broks
80*698be6feSMarkuss Broks		cpu2: cpu@2 {
81*698be6feSMarkuss Broks			device_type = "cpu";
82*698be6feSMarkuss Broks			compatible = "arm,cortex-a55";
83*698be6feSMarkuss Broks			reg = <0x2>;
84*698be6feSMarkuss Broks			enable-method = "psci";
85*698be6feSMarkuss Broks		};
86*698be6feSMarkuss Broks
87*698be6feSMarkuss Broks		cpu3: cpu@3 {
88*698be6feSMarkuss Broks			device_type = "cpu";
89*698be6feSMarkuss Broks			compatible = "arm,cortex-a55";
90*698be6feSMarkuss Broks			reg = <0x3>;
91*698be6feSMarkuss Broks			enable-method = "psci";
92*698be6feSMarkuss Broks		};
93*698be6feSMarkuss Broks
94*698be6feSMarkuss Broks		cpu4: cpu@100 {
95*698be6feSMarkuss Broks			device_type = "cpu";
96*698be6feSMarkuss Broks			compatible = "samsung,mongoose-m3";
97*698be6feSMarkuss Broks			reg = <0x100>;
98*698be6feSMarkuss Broks			enable-method = "psci";
99*698be6feSMarkuss Broks		};
100*698be6feSMarkuss Broks
101*698be6feSMarkuss Broks		cpu5: cpu@101 {
102*698be6feSMarkuss Broks			device_type = "cpu";
103*698be6feSMarkuss Broks			compatible = "samsung,mongoose-m3";
104*698be6feSMarkuss Broks			reg = <0x101>;
105*698be6feSMarkuss Broks			enable-method = "psci";
106*698be6feSMarkuss Broks		};
107*698be6feSMarkuss Broks
108*698be6feSMarkuss Broks		cpu6: cpu@102 {
109*698be6feSMarkuss Broks			device_type = "cpu";
110*698be6feSMarkuss Broks			compatible = "samsung,mongoose-m3";
111*698be6feSMarkuss Broks			reg = <0x102>;
112*698be6feSMarkuss Broks			enable-method = "psci";
113*698be6feSMarkuss Broks		};
114*698be6feSMarkuss Broks
115*698be6feSMarkuss Broks		cpu7: cpu@103 {
116*698be6feSMarkuss Broks			device_type = "cpu";
117*698be6feSMarkuss Broks			compatible = "samsung,mongoose-m3";
118*698be6feSMarkuss Broks			reg = <0x103>;
119*698be6feSMarkuss Broks			enable-method = "psci";
120*698be6feSMarkuss Broks		};
121*698be6feSMarkuss Broks	};
122*698be6feSMarkuss Broks
123*698be6feSMarkuss Broks	oscclk: osc-clock {
124*698be6feSMarkuss Broks		compatible = "fixed-clock";
125*698be6feSMarkuss Broks		#clock-cells = <0>;
126*698be6feSMarkuss Broks		clock-output-names = "oscclk";
127*698be6feSMarkuss Broks	};
128*698be6feSMarkuss Broks
129*698be6feSMarkuss Broks	pmu-a55 {
130*698be6feSMarkuss Broks		compatible = "arm,cortex-a55-pmu";
131*698be6feSMarkuss Broks		interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
132*698be6feSMarkuss Broks			     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
133*698be6feSMarkuss Broks			     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
134*698be6feSMarkuss Broks			     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
135*698be6feSMarkuss Broks		interrupt-affinity = <&cpu0>,
136*698be6feSMarkuss Broks				     <&cpu1>,
137*698be6feSMarkuss Broks				     <&cpu2>,
138*698be6feSMarkuss Broks				     <&cpu3>;
139*698be6feSMarkuss Broks	};
140*698be6feSMarkuss Broks
141*698be6feSMarkuss Broks	pmu-mongoose-m3 {
142*698be6feSMarkuss Broks		compatible = "samsung,mongoose-pmu";
143*698be6feSMarkuss Broks		interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
144*698be6feSMarkuss Broks			     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
145*698be6feSMarkuss Broks			     <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
146*698be6feSMarkuss Broks			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
147*698be6feSMarkuss Broks		interrupt-affinity = <&cpu4>,
148*698be6feSMarkuss Broks				     <&cpu5>,
149*698be6feSMarkuss Broks				     <&cpu6>,
150*698be6feSMarkuss Broks				     <&cpu7>;
151*698be6feSMarkuss Broks	};
152*698be6feSMarkuss Broks
153*698be6feSMarkuss Broks	psci {
154*698be6feSMarkuss Broks		compatible = "arm,psci";
155*698be6feSMarkuss Broks		method = "smc";
156*698be6feSMarkuss Broks		cpu_off = <0x84000002>;
157*698be6feSMarkuss Broks		cpu_on = <0xc4000003>;
158*698be6feSMarkuss Broks		cpu_suspend = <0xc4000001>;
159*698be6feSMarkuss Broks	};
160*698be6feSMarkuss Broks
161*698be6feSMarkuss Broks	soc: soc@0 {
162*698be6feSMarkuss Broks		compatible = "simple-bus";
163*698be6feSMarkuss Broks		ranges = <0x0 0x0 0x0 0x20000000>;
164*698be6feSMarkuss Broks
165*698be6feSMarkuss Broks		#address-cells = <1>;
166*698be6feSMarkuss Broks		#size-cells = <1>;
167*698be6feSMarkuss Broks
168*698be6feSMarkuss Broks		chipid@10000000 {
169*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-chipid",
170*698be6feSMarkuss Broks				     "samsung,exynos850-chipid";
171*698be6feSMarkuss Broks			reg = <0x10000000 0x100>;
172*698be6feSMarkuss Broks		};
173*698be6feSMarkuss Broks
174*698be6feSMarkuss Broks		gic: interrupt-controller@10101000 {
175*698be6feSMarkuss Broks			compatible = "arm,gic-400";
176*698be6feSMarkuss Broks			reg = <0x10101000 0x1000>,
177*698be6feSMarkuss Broks			      <0x10102000 0x1000>,
178*698be6feSMarkuss Broks			      <0x10104000 0x2000>,
179*698be6feSMarkuss Broks			      <0x10106000 0x2000>;
180*698be6feSMarkuss Broks			#interrupt-cells = <3>;
181*698be6feSMarkuss Broks			interrupt-controller;
182*698be6feSMarkuss Broks			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
183*698be6feSMarkuss Broks						 IRQ_TYPE_LEVEL_HIGH)>;
184*698be6feSMarkuss Broks			#address-cells = <0>;
185*698be6feSMarkuss Broks			#size-cells = <1>;
186*698be6feSMarkuss Broks		};
187*698be6feSMarkuss Broks
188*698be6feSMarkuss Broks		pinctrl_peric0: pinctrl@10430000 {
189*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
190*698be6feSMarkuss Broks			reg = <0x10430000 0x1000>;
191*698be6feSMarkuss Broks			interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
192*698be6feSMarkuss Broks		};
193*698be6feSMarkuss Broks
194*698be6feSMarkuss Broks		pinctrl_peric1: pinctrl@10830000 {
195*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
196*698be6feSMarkuss Broks			reg = <0x10830000 0x1000>;
197*698be6feSMarkuss Broks			interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
198*698be6feSMarkuss Broks		};
199*698be6feSMarkuss Broks
200*698be6feSMarkuss Broks		pinctrl_fsys0: pinctrl@11050000 {
201*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
202*698be6feSMarkuss Broks			reg = <0x11050000 0x1000>;
203*698be6feSMarkuss Broks			interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
204*698be6feSMarkuss Broks		};
205*698be6feSMarkuss Broks
206*698be6feSMarkuss Broks		pinctrl_fsys1: pinctrl@11430000 {
207*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
208*698be6feSMarkuss Broks			reg = <0x11430000 0x1000>;
209*698be6feSMarkuss Broks			interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>;
210*698be6feSMarkuss Broks		};
211*698be6feSMarkuss Broks
212*698be6feSMarkuss Broks		pinctrl_vts: pinctrl@13880000 {
213*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
214*698be6feSMarkuss Broks			reg = <0x13880000 0x1000>;
215*698be6feSMarkuss Broks		};
216*698be6feSMarkuss Broks
217*698be6feSMarkuss Broks		pinctrl_chub: pinctrl@13a80000 {
218*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
219*698be6feSMarkuss Broks			reg = <0x13a80000 0x1000>;
220*698be6feSMarkuss Broks			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
221*698be6feSMarkuss Broks		};
222*698be6feSMarkuss Broks
223*698be6feSMarkuss Broks		pinctrl_alive: pinctrl@14050000 {
224*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
225*698be6feSMarkuss Broks			reg = <0x14050000 0x1000>;
226*698be6feSMarkuss Broks
227*698be6feSMarkuss Broks			wakeup-interrupt-controller {
228*698be6feSMarkuss Broks				compatible = "samsung,exynos9810-wakeup-eint",
229*698be6feSMarkuss Broks					     "samsung,exynos850-wakeup-eint",
230*698be6feSMarkuss Broks					     "samsung,exynos7-wakeup-eint";
231*698be6feSMarkuss Broks			};
232*698be6feSMarkuss Broks		};
233*698be6feSMarkuss Broks
234*698be6feSMarkuss Broks		pmu_system_controller: system-controller@14060000 {
235*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pmu",
236*698be6feSMarkuss Broks				     "samsung,exynos7-pmu", "syscon";
237*698be6feSMarkuss Broks			reg = <0x14060000 0x10000>;
238*698be6feSMarkuss Broks		};
239*698be6feSMarkuss Broks
240*698be6feSMarkuss Broks		pinctrl_cmgp: pinctrl@14220000 {
241*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
242*698be6feSMarkuss Broks			reg = <0x14220000 0x1000>;
243*698be6feSMarkuss Broks
244*698be6feSMarkuss Broks			wakeup-interrupt-controller {
245*698be6feSMarkuss Broks				compatible = "samsung,exynos9810-wakeup-eint",
246*698be6feSMarkuss Broks					     "samsung,exynos850-wakeup-eint",
247*698be6feSMarkuss Broks					     "samsung,exynos7-wakeup-eint";
248*698be6feSMarkuss Broks			};
249*698be6feSMarkuss Broks		};
250*698be6feSMarkuss Broks
251*698be6feSMarkuss Broks		pinctrl_aud: pinctrl@17c60000 {
252*698be6feSMarkuss Broks			compatible = "samsung,exynos9810-pinctrl";
253*698be6feSMarkuss Broks			reg = <0x17c60000 0x1000>;
254*698be6feSMarkuss Broks		};
255*698be6feSMarkuss Broks	};
256*698be6feSMarkuss Broks
257*698be6feSMarkuss Broks	timer {
258*698be6feSMarkuss Broks		compatible = "arm,armv8-timer";
259*698be6feSMarkuss Broks		/* Hypervisor Virtual Timer interrupt is not wired to GIC */
260*698be6feSMarkuss Broks		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
261*698be6feSMarkuss Broks			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
262*698be6feSMarkuss Broks			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
263*698be6feSMarkuss Broks			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
264*698be6feSMarkuss Broks		/*
265*698be6feSMarkuss Broks		 * Non-updatable, broken stock Samsung bootloader does not
266*698be6feSMarkuss Broks		 * configure CNTFRQ_EL0
267*698be6feSMarkuss Broks		 */
268*698be6feSMarkuss Broks		clock-frequency = <26000000>;
269*698be6feSMarkuss Broks	};
270*698be6feSMarkuss Broks};
271*698be6feSMarkuss Broks
272*698be6feSMarkuss Broks#include "exynos9810-pinctrl.dtsi"
273*698be6feSMarkuss Broks#include "arm/samsung/exynos-syscon-restart.dtsi"
274