xref: /freebsd/sys/contrib/device-tree/src/arm64/exynos/exynos2200.dtsi (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2*833e5d42SEmmanuel Vadot/*
3*833e5d42SEmmanuel Vadot * Samsung's Exynos 2200 SoC device tree source
4*833e5d42SEmmanuel Vadot *
5*833e5d42SEmmanuel Vadot * Copyright (c) 2025, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
6*833e5d42SEmmanuel Vadot */
7*833e5d42SEmmanuel Vadot
8*833e5d42SEmmanuel Vadot#include <dt-bindings/clock/samsung,exynos2200-cmu.h>
9*833e5d42SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
10*833e5d42SEmmanuel Vadot
11*833e5d42SEmmanuel Vadot/ {
12*833e5d42SEmmanuel Vadot	compatible = "samsung,exynos2200";
13*833e5d42SEmmanuel Vadot	#address-cells = <2>;
14*833e5d42SEmmanuel Vadot	#size-cells = <2>;
15*833e5d42SEmmanuel Vadot
16*833e5d42SEmmanuel Vadot	interrupt-parent = <&gic>;
17*833e5d42SEmmanuel Vadot
18*833e5d42SEmmanuel Vadot	aliases {
19*833e5d42SEmmanuel Vadot		pinctrl0 = &pinctrl_alive;
20*833e5d42SEmmanuel Vadot		pinctrl1 = &pinctrl_cmgp;
21*833e5d42SEmmanuel Vadot		pinctrl2 = &pinctrl_hsi1;
22*833e5d42SEmmanuel Vadot		pinctrl3 = &pinctrl_ufs;
23*833e5d42SEmmanuel Vadot		pinctrl4 = &pinctrl_hsi1ufs;
24*833e5d42SEmmanuel Vadot		pinctrl5 = &pinctrl_peric0;
25*833e5d42SEmmanuel Vadot		pinctrl6 = &pinctrl_peric1;
26*833e5d42SEmmanuel Vadot		pinctrl7 = &pinctrl_peric2;
27*833e5d42SEmmanuel Vadot		pinctrl8 = &pinctrl_vts;
28*833e5d42SEmmanuel Vadot	};
29*833e5d42SEmmanuel Vadot
30*833e5d42SEmmanuel Vadot	xtcxo: clock-1 {
31*833e5d42SEmmanuel Vadot		compatible = "fixed-clock";
32*833e5d42SEmmanuel Vadot		#clock-cells = <0>;
33*833e5d42SEmmanuel Vadot		clock-output-names = "oscclk";
34*833e5d42SEmmanuel Vadot	};
35*833e5d42SEmmanuel Vadot
36*833e5d42SEmmanuel Vadot	ext_26m: clock-2 {
37*833e5d42SEmmanuel Vadot		compatible = "fixed-clock";
38*833e5d42SEmmanuel Vadot		#clock-cells = <0>;
39*833e5d42SEmmanuel Vadot		clock-output-names = "ext-26m";
40*833e5d42SEmmanuel Vadot	};
41*833e5d42SEmmanuel Vadot
42*833e5d42SEmmanuel Vadot	ext_200m: clock-3 {
43*833e5d42SEmmanuel Vadot		compatible = "fixed-clock";
44*833e5d42SEmmanuel Vadot		#clock-cells = <0>;
45*833e5d42SEmmanuel Vadot		clock-output-names = "ext-200m";
46*833e5d42SEmmanuel Vadot	};
47*833e5d42SEmmanuel Vadot
48*833e5d42SEmmanuel Vadot	cpus {
49*833e5d42SEmmanuel Vadot		#address-cells = <1>;
50*833e5d42SEmmanuel Vadot		#size-cells = <0>;
51*833e5d42SEmmanuel Vadot
52*833e5d42SEmmanuel Vadot		cpu-map {
53*833e5d42SEmmanuel Vadot			cluster0 {
54*833e5d42SEmmanuel Vadot				core0 {
55*833e5d42SEmmanuel Vadot					cpu = <&cpu0>;
56*833e5d42SEmmanuel Vadot				};
57*833e5d42SEmmanuel Vadot
58*833e5d42SEmmanuel Vadot				core1 {
59*833e5d42SEmmanuel Vadot					cpu = <&cpu1>;
60*833e5d42SEmmanuel Vadot				};
61*833e5d42SEmmanuel Vadot
62*833e5d42SEmmanuel Vadot				core2 {
63*833e5d42SEmmanuel Vadot					cpu = <&cpu2>;
64*833e5d42SEmmanuel Vadot				};
65*833e5d42SEmmanuel Vadot
66*833e5d42SEmmanuel Vadot				core3 {
67*833e5d42SEmmanuel Vadot					cpu = <&cpu3>;
68*833e5d42SEmmanuel Vadot				};
69*833e5d42SEmmanuel Vadot			};
70*833e5d42SEmmanuel Vadot
71*833e5d42SEmmanuel Vadot			cluster1 {
72*833e5d42SEmmanuel Vadot				core0 {
73*833e5d42SEmmanuel Vadot					cpu = <&cpu4>;
74*833e5d42SEmmanuel Vadot				};
75*833e5d42SEmmanuel Vadot
76*833e5d42SEmmanuel Vadot				core1 {
77*833e5d42SEmmanuel Vadot					cpu = <&cpu5>;
78*833e5d42SEmmanuel Vadot				};
79*833e5d42SEmmanuel Vadot
80*833e5d42SEmmanuel Vadot				core2 {
81*833e5d42SEmmanuel Vadot					cpu = <&cpu6>;
82*833e5d42SEmmanuel Vadot				};
83*833e5d42SEmmanuel Vadot			};
84*833e5d42SEmmanuel Vadot
85*833e5d42SEmmanuel Vadot			cluster2 {
86*833e5d42SEmmanuel Vadot				core0 {
87*833e5d42SEmmanuel Vadot					cpu = <&cpu7>;
88*833e5d42SEmmanuel Vadot				};
89*833e5d42SEmmanuel Vadot			};
90*833e5d42SEmmanuel Vadot		};
91*833e5d42SEmmanuel Vadot
92*833e5d42SEmmanuel Vadot		cpu0: cpu@0 {
93*833e5d42SEmmanuel Vadot			device_type = "cpu";
94*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a510";
95*833e5d42SEmmanuel Vadot			reg = <0>;
96*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <260>;
97*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <189>;
98*833e5d42SEmmanuel Vadot			enable-method = "psci";
99*833e5d42SEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep>;
100*833e5d42SEmmanuel Vadot		};
101*833e5d42SEmmanuel Vadot
102*833e5d42SEmmanuel Vadot		cpu1: cpu@100 {
103*833e5d42SEmmanuel Vadot			device_type = "cpu";
104*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a510";
105*833e5d42SEmmanuel Vadot			reg = <0x100>;
106*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <260>;
107*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <189>;
108*833e5d42SEmmanuel Vadot			enable-method = "psci";
109*833e5d42SEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep>;
110*833e5d42SEmmanuel Vadot		};
111*833e5d42SEmmanuel Vadot
112*833e5d42SEmmanuel Vadot		cpu2: cpu@200 {
113*833e5d42SEmmanuel Vadot			device_type = "cpu";
114*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a510";
115*833e5d42SEmmanuel Vadot			reg = <0x200>;
116*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <260>;
117*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <189>;
118*833e5d42SEmmanuel Vadot			enable-method = "psci";
119*833e5d42SEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep>;
120*833e5d42SEmmanuel Vadot		};
121*833e5d42SEmmanuel Vadot
122*833e5d42SEmmanuel Vadot		cpu3: cpu@300 {
123*833e5d42SEmmanuel Vadot			device_type = "cpu";
124*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a510";
125*833e5d42SEmmanuel Vadot			reg = <0x300>;
126*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <260>;
127*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <189>;
128*833e5d42SEmmanuel Vadot			enable-method = "psci";
129*833e5d42SEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep>;
130*833e5d42SEmmanuel Vadot		};
131*833e5d42SEmmanuel Vadot
132*833e5d42SEmmanuel Vadot		cpu4: cpu@400 {
133*833e5d42SEmmanuel Vadot			device_type = "cpu";
134*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a710";
135*833e5d42SEmmanuel Vadot			reg = <0x400>;
136*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <380>;
137*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <560>;
138*833e5d42SEmmanuel Vadot			enable-method = "psci";
139*833e5d42SEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep>;
140*833e5d42SEmmanuel Vadot		};
141*833e5d42SEmmanuel Vadot
142*833e5d42SEmmanuel Vadot		cpu5: cpu@500 {
143*833e5d42SEmmanuel Vadot			device_type = "cpu";
144*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a710";
145*833e5d42SEmmanuel Vadot			reg = <0x500>;
146*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <380>;
147*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <560>;
148*833e5d42SEmmanuel Vadot			enable-method = "psci";
149*833e5d42SEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep>;
150*833e5d42SEmmanuel Vadot		};
151*833e5d42SEmmanuel Vadot
152*833e5d42SEmmanuel Vadot		cpu6: cpu@600 {
153*833e5d42SEmmanuel Vadot			device_type = "cpu";
154*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-a710";
155*833e5d42SEmmanuel Vadot			reg = <0x600>;
156*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <380>;
157*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <560>;
158*833e5d42SEmmanuel Vadot			enable-method = "psci";
159*833e5d42SEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep>;
160*833e5d42SEmmanuel Vadot		};
161*833e5d42SEmmanuel Vadot
162*833e5d42SEmmanuel Vadot		cpu7: cpu@700 {
163*833e5d42SEmmanuel Vadot			device_type = "cpu";
164*833e5d42SEmmanuel Vadot			compatible = "arm,cortex-x2";
165*833e5d42SEmmanuel Vadot			reg = <0x700>;
166*833e5d42SEmmanuel Vadot			capacity-dmips-mhz = <488>;
167*833e5d42SEmmanuel Vadot			dynamic-power-coefficient = <765>;
168*833e5d42SEmmanuel Vadot			enable-method = "psci";
169*833e5d42SEmmanuel Vadot			cpu-idle-states = <&prime_cpu_sleep>;
170*833e5d42SEmmanuel Vadot		};
171*833e5d42SEmmanuel Vadot
172*833e5d42SEmmanuel Vadot		idle-states {
173*833e5d42SEmmanuel Vadot			entry-method = "psci";
174*833e5d42SEmmanuel Vadot
175*833e5d42SEmmanuel Vadot			little_cpu_sleep: cpu-sleep-0 {
176*833e5d42SEmmanuel Vadot				compatible = "arm,idle-state";
177*833e5d42SEmmanuel Vadot				idle-state-name = "c2";
178*833e5d42SEmmanuel Vadot				entry-latency-us = <70>;
179*833e5d42SEmmanuel Vadot				exit-latency-us = <170>;
180*833e5d42SEmmanuel Vadot				min-residency-us = <2000>;
181*833e5d42SEmmanuel Vadot				arm,psci-suspend-param = <0x10000>;
182*833e5d42SEmmanuel Vadot			};
183*833e5d42SEmmanuel Vadot
184*833e5d42SEmmanuel Vadot			big_cpu_sleep: cpu-sleep-1 {
185*833e5d42SEmmanuel Vadot				compatible = "arm,idle-state";
186*833e5d42SEmmanuel Vadot				idle-state-name = "c2";
187*833e5d42SEmmanuel Vadot				entry-latency-us = <235>;
188*833e5d42SEmmanuel Vadot				exit-latency-us = <220>;
189*833e5d42SEmmanuel Vadot				min-residency-us = <3500>;
190*833e5d42SEmmanuel Vadot				arm,psci-suspend-param = <0x10000>;
191*833e5d42SEmmanuel Vadot			};
192*833e5d42SEmmanuel Vadot
193*833e5d42SEmmanuel Vadot			prime_cpu_sleep: cpu-sleep-2 {
194*833e5d42SEmmanuel Vadot				compatible = "arm,idle-state";
195*833e5d42SEmmanuel Vadot				idle-state-name = "c2";
196*833e5d42SEmmanuel Vadot				entry-latency-us = <150>;
197*833e5d42SEmmanuel Vadot				exit-latency-us = <190>;
198*833e5d42SEmmanuel Vadot				min-residency-us = <2500>;
199*833e5d42SEmmanuel Vadot				arm,psci-suspend-param = <0x10000>;
200*833e5d42SEmmanuel Vadot			};
201*833e5d42SEmmanuel Vadot		};
202*833e5d42SEmmanuel Vadot	};
203*833e5d42SEmmanuel Vadot
204*833e5d42SEmmanuel Vadot	pmu-a510 {
205*833e5d42SEmmanuel Vadot		compatible = "arm,cortex-a510-pmu";
206*833e5d42SEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
207*833e5d42SEmmanuel Vadot	};
208*833e5d42SEmmanuel Vadot
209*833e5d42SEmmanuel Vadot	pmu-a710 {
210*833e5d42SEmmanuel Vadot		compatible = "arm,cortex-a710-pmu";
211*833e5d42SEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
212*833e5d42SEmmanuel Vadot	};
213*833e5d42SEmmanuel Vadot
214*833e5d42SEmmanuel Vadot	pmu-x2 {
215*833e5d42SEmmanuel Vadot		compatible = "arm,cortex-x2-pmu";
216*833e5d42SEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster2>;
217*833e5d42SEmmanuel Vadot	};
218*833e5d42SEmmanuel Vadot
219*833e5d42SEmmanuel Vadot	psci {
220*833e5d42SEmmanuel Vadot		compatible = "arm,psci-1.0";
221*833e5d42SEmmanuel Vadot		method = "smc";
222*833e5d42SEmmanuel Vadot	};
223*833e5d42SEmmanuel Vadot
224*833e5d42SEmmanuel Vadot	soc {
225*833e5d42SEmmanuel Vadot		compatible = "simple-bus";
226*833e5d42SEmmanuel Vadot		ranges;
227*833e5d42SEmmanuel Vadot
228*833e5d42SEmmanuel Vadot		#address-cells = <2>;
229*833e5d42SEmmanuel Vadot		#size-cells = <2>;
230*833e5d42SEmmanuel Vadot
231*833e5d42SEmmanuel Vadot		chipid@10000000 {
232*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-chipid",
233*833e5d42SEmmanuel Vadot				     "samsung,exynos850-chipid";
234*833e5d42SEmmanuel Vadot			reg = <0x0 0x10000000 0x0 0x24>;
235*833e5d42SEmmanuel Vadot		};
236*833e5d42SEmmanuel Vadot
237*833e5d42SEmmanuel Vadot		cmu_peris: clock-controller@10020000 {
238*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-peris";
239*833e5d42SEmmanuel Vadot			reg = <0x0 0x10020000 0x0 0x8000>;
240*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
241*833e5d42SEmmanuel Vadot
242*833e5d42SEmmanuel Vadot			clocks = <&cmu_top CLK_DOUT_TCXO_DIV3>,
243*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIS_NOC>,
244*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIS_GIC>;
245*833e5d42SEmmanuel Vadot			clock-names = "tcxo_div3",
246*833e5d42SEmmanuel Vadot				      "noc",
247*833e5d42SEmmanuel Vadot				      "gic";
248*833e5d42SEmmanuel Vadot		};
249*833e5d42SEmmanuel Vadot
250*833e5d42SEmmanuel Vadot		mct_peris: timer@10040000 {
251*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-mct-peris",
252*833e5d42SEmmanuel Vadot				     "samsung,exynos4210-mct";
253*833e5d42SEmmanuel Vadot			reg = <0x0 0x10040000 0x0 0x800>;
254*833e5d42SEmmanuel Vadot			clocks = <&cmu_top CLK_DOUT_TCXO_DIV3>, <&cmu_peris CLK_MOUT_PERIS_GIC>;
255*833e5d42SEmmanuel Vadot			clock-names = "fin_pll", "mct";
256*833e5d42SEmmanuel Vadot			interrupts = <GIC_SPI 943 IRQ_TYPE_LEVEL_HIGH 0>,
257*833e5d42SEmmanuel Vadot				     <GIC_SPI 944 IRQ_TYPE_LEVEL_HIGH 0>,
258*833e5d42SEmmanuel Vadot				     <GIC_SPI 945 IRQ_TYPE_LEVEL_HIGH 0>,
259*833e5d42SEmmanuel Vadot				     <GIC_SPI 946 IRQ_TYPE_LEVEL_HIGH 0>,
260*833e5d42SEmmanuel Vadot				     <GIC_SPI 947 IRQ_TYPE_LEVEL_HIGH 0>,
261*833e5d42SEmmanuel Vadot				     <GIC_SPI 948 IRQ_TYPE_LEVEL_HIGH 0>,
262*833e5d42SEmmanuel Vadot				     <GIC_SPI 949 IRQ_TYPE_LEVEL_HIGH 0>,
263*833e5d42SEmmanuel Vadot				     <GIC_SPI 950 IRQ_TYPE_LEVEL_HIGH 0>,
264*833e5d42SEmmanuel Vadot				     <GIC_SPI 951 IRQ_TYPE_LEVEL_HIGH 0>,
265*833e5d42SEmmanuel Vadot				     <GIC_SPI 952 IRQ_TYPE_LEVEL_HIGH 0>,
266*833e5d42SEmmanuel Vadot				     <GIC_SPI 953 IRQ_TYPE_LEVEL_HIGH 0>,
267*833e5d42SEmmanuel Vadot				     <GIC_SPI 954 IRQ_TYPE_LEVEL_HIGH 0>;
268*833e5d42SEmmanuel Vadot			status = "disabled";
269*833e5d42SEmmanuel Vadot		};
270*833e5d42SEmmanuel Vadot
271*833e5d42SEmmanuel Vadot		gic: interrupt-controller@10200000 {
272*833e5d42SEmmanuel Vadot			compatible = "arm,gic-v3";
273*833e5d42SEmmanuel Vadot			reg = <0x0 0x10200000 0x0 0x10000>,     /* GICD */
274*833e5d42SEmmanuel Vadot			      <0x0 0x10240000 0x0 0x200000>;    /* GICR * 8 */
275*833e5d42SEmmanuel Vadot
276*833e5d42SEmmanuel Vadot			#interrupt-cells = <4>;
277*833e5d42SEmmanuel Vadot			interrupt-controller;
278*833e5d42SEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
279*833e5d42SEmmanuel Vadot
280*833e5d42SEmmanuel Vadot			ppi-partitions {
281*833e5d42SEmmanuel Vadot				ppi_cluster0: interrupt-partition-0 {
282*833e5d42SEmmanuel Vadot					affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
283*833e5d42SEmmanuel Vadot				};
284*833e5d42SEmmanuel Vadot
285*833e5d42SEmmanuel Vadot				ppi_cluster1: interrupt-partition-1 {
286*833e5d42SEmmanuel Vadot					affinity = <&cpu4 &cpu5 &cpu6>;
287*833e5d42SEmmanuel Vadot				};
288*833e5d42SEmmanuel Vadot
289*833e5d42SEmmanuel Vadot				ppi_cluster2: interrupt-partition-2 {
290*833e5d42SEmmanuel Vadot					affinity = <&cpu7>;
291*833e5d42SEmmanuel Vadot				};
292*833e5d42SEmmanuel Vadot			};
293*833e5d42SEmmanuel Vadot		};
294*833e5d42SEmmanuel Vadot
295*833e5d42SEmmanuel Vadot		cmu_peric0: clock-controller@10400000 {
296*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-peric0";
297*833e5d42SEmmanuel Vadot			reg = <0x0 0x10400000 0x0 0x8000>;
298*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
299*833e5d42SEmmanuel Vadot
300*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
301*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC0_NOC>,
302*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC0_IP0>,
303*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC0_IP1>;
304*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "noc", "ip0", "ip1";
305*833e5d42SEmmanuel Vadot		};
306*833e5d42SEmmanuel Vadot
307*833e5d42SEmmanuel Vadot		syscon_peric0: syscon@10420000 {
308*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-peric0-sysreg", "syscon";
309*833e5d42SEmmanuel Vadot			reg = <0x0 0x10420000 0x0 0x2000>;
310*833e5d42SEmmanuel Vadot		};
311*833e5d42SEmmanuel Vadot
312*833e5d42SEmmanuel Vadot		pinctrl_peric0: pinctrl@10430000 {
313*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
314*833e5d42SEmmanuel Vadot			reg = <0x0 0x10430000 0x0 0x1000>;
315*833e5d42SEmmanuel Vadot		};
316*833e5d42SEmmanuel Vadot
317*833e5d42SEmmanuel Vadot		cmu_peric1: clock-controller@10700000 {
318*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-peric1";
319*833e5d42SEmmanuel Vadot			reg = <0x0 0x10700000 0x0 0x8000>;
320*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
321*833e5d42SEmmanuel Vadot
322*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
323*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC1_NOC>,
324*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC1_IP0>,
325*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC1_IP1>;
326*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "noc", "ip0", "ip1";
327*833e5d42SEmmanuel Vadot		};
328*833e5d42SEmmanuel Vadot
329*833e5d42SEmmanuel Vadot		syscon_peric1: syscon@10720000 {
330*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-peric1-sysreg", "syscon";
331*833e5d42SEmmanuel Vadot			reg = <0x0 0x10720000 0x0 0x2000>;
332*833e5d42SEmmanuel Vadot		};
333*833e5d42SEmmanuel Vadot
334*833e5d42SEmmanuel Vadot		pinctrl_peric1: pinctrl@10730000 {
335*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
336*833e5d42SEmmanuel Vadot			reg = <0x0 0x10730000 0x0 0x1000>;
337*833e5d42SEmmanuel Vadot		};
338*833e5d42SEmmanuel Vadot
339*833e5d42SEmmanuel Vadot		cmu_hsi0: clock-controller@10a00000 {
340*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-hsi0";
341*833e5d42SEmmanuel Vadot			reg = <0x0 0x10a00000 0x0 0x8000>;
342*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
343*833e5d42SEmmanuel Vadot		};
344*833e5d42SEmmanuel Vadot
345*833e5d42SEmmanuel Vadot		usb32drd: phy@10aa0000 {
346*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-usb32drd-phy";
347*833e5d42SEmmanuel Vadot			reg = <0x0 0x10aa0000 0x0 0x10000>;
348*833e5d42SEmmanuel Vadot
349*833e5d42SEmmanuel Vadot			clocks = <&cmu_hsi0 CLK_MOUT_HSI0_NOC>;
350*833e5d42SEmmanuel Vadot			clock-names = "phy";
351*833e5d42SEmmanuel Vadot
352*833e5d42SEmmanuel Vadot			#phy-cells = <1>;
353*833e5d42SEmmanuel Vadot			phys = <&usb_hsphy>;
354*833e5d42SEmmanuel Vadot			phy-names = "hs";
355*833e5d42SEmmanuel Vadot
356*833e5d42SEmmanuel Vadot			samsung,pmu-syscon = <&pmu_system_controller>;
357*833e5d42SEmmanuel Vadot
358*833e5d42SEmmanuel Vadot			status = "disabled";
359*833e5d42SEmmanuel Vadot		};
360*833e5d42SEmmanuel Vadot
361*833e5d42SEmmanuel Vadot		usb_hsphy: phy@10ab0000 {
362*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-eusb2-phy";
363*833e5d42SEmmanuel Vadot			reg = <0x0 0x10ab0000 0x0 0x10000>;
364*833e5d42SEmmanuel Vadot
365*833e5d42SEmmanuel Vadot			clocks = <&cmu_hsi0 CLK_MOUT_HSI0_USB32DRD>,
366*833e5d42SEmmanuel Vadot				 <&cmu_hsi0 CLK_MOUT_HSI0_NOC>,
367*833e5d42SEmmanuel Vadot				 <&cmu_hsi0 CLK_DOUT_DIV_CLK_HSI0_EUSB>;
368*833e5d42SEmmanuel Vadot			clock-names = "ref", "bus", "ctrl";
369*833e5d42SEmmanuel Vadot
370*833e5d42SEmmanuel Vadot			#phy-cells = <0>;
371*833e5d42SEmmanuel Vadot
372*833e5d42SEmmanuel Vadot			status = "disabled";
373*833e5d42SEmmanuel Vadot		};
374*833e5d42SEmmanuel Vadot
375*833e5d42SEmmanuel Vadot		usb: usb@10b00000 {
376*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-dwusb3";
377*833e5d42SEmmanuel Vadot			ranges = <0x0 0x0 0x10b00000 0x10000>;
378*833e5d42SEmmanuel Vadot
379*833e5d42SEmmanuel Vadot			clocks = <&cmu_hsi0 CLK_MOUT_HSI0_NOC>;
380*833e5d42SEmmanuel Vadot			clock-names = "link_aclk";
381*833e5d42SEmmanuel Vadot
382*833e5d42SEmmanuel Vadot			#address-cells = <1>;
383*833e5d42SEmmanuel Vadot			#size-cells = <1>;
384*833e5d42SEmmanuel Vadot
385*833e5d42SEmmanuel Vadot			status = "disabled";
386*833e5d42SEmmanuel Vadot
387*833e5d42SEmmanuel Vadot			usb_dwc3: usb@0 {
388*833e5d42SEmmanuel Vadot				compatible = "snps,dwc3";
389*833e5d42SEmmanuel Vadot				reg = <0x0 0x10000>;
390*833e5d42SEmmanuel Vadot
391*833e5d42SEmmanuel Vadot				clocks = <&cmu_hsi0 CLK_MOUT_HSI0_USB32DRD>;
392*833e5d42SEmmanuel Vadot				clock-names = "ref";
393*833e5d42SEmmanuel Vadot
394*833e5d42SEmmanuel Vadot				interrupts = <GIC_SPI 485 IRQ_TYPE_LEVEL_HIGH 0>;
395*833e5d42SEmmanuel Vadot
396*833e5d42SEmmanuel Vadot				phys = <&usb32drd 0>;
397*833e5d42SEmmanuel Vadot				phy-names = "usb2-phy";
398*833e5d42SEmmanuel Vadot
399*833e5d42SEmmanuel Vadot				snps,dis-u2-freeclk-exists-quirk;
400*833e5d42SEmmanuel Vadot				snps,gfladj-refclk-lpm-sel-quirk;
401*833e5d42SEmmanuel Vadot				snps,has-lpm-erratum;
402*833e5d42SEmmanuel Vadot				snps,quirk-frame-length-adjustment = <0x20>;
403*833e5d42SEmmanuel Vadot				snps,usb3_lpm_capable;
404*833e5d42SEmmanuel Vadot			};
405*833e5d42SEmmanuel Vadot		};
406*833e5d42SEmmanuel Vadot
407*833e5d42SEmmanuel Vadot		cmu_ufs: clock-controller@11000000 {
408*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-ufs";
409*833e5d42SEmmanuel Vadot			reg = <0x0 0x11000000 0x0 0x8000>;
410*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
411*833e5d42SEmmanuel Vadot
412*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
413*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_UFS_NOC>,
414*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_MOUT_CMU_UFS_MMC_CARD>,
415*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_UFS_UFS_EMBD>;
416*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "noc", "mmc", "ufs";
417*833e5d42SEmmanuel Vadot		};
418*833e5d42SEmmanuel Vadot
419*833e5d42SEmmanuel Vadot		syscon_ufs: syscon@11020000 {
420*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-ufs-sysreg", "syscon";
421*833e5d42SEmmanuel Vadot			reg = <0x0 0x11020000 0x0 0x2000>;
422*833e5d42SEmmanuel Vadot		};
423*833e5d42SEmmanuel Vadot
424*833e5d42SEmmanuel Vadot		pinctrl_ufs: pinctrl@11040000 {
425*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
426*833e5d42SEmmanuel Vadot			reg = <0x0 0x11040000 0x0 0x1000>;
427*833e5d42SEmmanuel Vadot		};
428*833e5d42SEmmanuel Vadot
429*833e5d42SEmmanuel Vadot		pinctrl_hsi1ufs: pinctrl@11060000 {
430*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
431*833e5d42SEmmanuel Vadot			reg = <0x0 0x11060000 0x0 0x1000>;
432*833e5d42SEmmanuel Vadot		};
433*833e5d42SEmmanuel Vadot
434*833e5d42SEmmanuel Vadot		pinctrl_hsi1: pinctrl@11240000 {
435*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
436*833e5d42SEmmanuel Vadot			reg = <0x0 0x11240000 0x0 0x1000>;
437*833e5d42SEmmanuel Vadot		};
438*833e5d42SEmmanuel Vadot
439*833e5d42SEmmanuel Vadot		cmu_peric2: clock-controller@11c00000 {
440*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-peric2";
441*833e5d42SEmmanuel Vadot			reg = <0x0 0x11c00000 0x0 0x8000>;
442*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
443*833e5d42SEmmanuel Vadot
444*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
445*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC2_NOC>,
446*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC2_IP0>,
447*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_PERIC2_IP1>;
448*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "noc", "ip0", "ip1";
449*833e5d42SEmmanuel Vadot		};
450*833e5d42SEmmanuel Vadot
451*833e5d42SEmmanuel Vadot		syscon_peric2: syscon@11c20000 {
452*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-peric2-sysreg", "syscon";
453*833e5d42SEmmanuel Vadot			reg = <0x0 0x11c20000 0x0 0x4000>;
454*833e5d42SEmmanuel Vadot		};
455*833e5d42SEmmanuel Vadot
456*833e5d42SEmmanuel Vadot		pinctrl_peric2: pinctrl@11c30000 {
457*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
458*833e5d42SEmmanuel Vadot			reg = <0x0 0x11c30000 0x0 0x1000>;
459*833e5d42SEmmanuel Vadot		};
460*833e5d42SEmmanuel Vadot
461*833e5d42SEmmanuel Vadot		cmu_cmgp: clock-controller@14e00000 {
462*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-cmgp";
463*833e5d42SEmmanuel Vadot			reg = <0x0 0x14e00000 0x0 0x8000>;
464*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
465*833e5d42SEmmanuel Vadot
466*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
467*833e5d42SEmmanuel Vadot				 <&cmu_alive CLK_DOUT_ALIVE_CMGP_NOC>,
468*833e5d42SEmmanuel Vadot				 <&cmu_alive CLK_DOUT_ALIVE_CMGP_PERI>;
469*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "noc", "peri";
470*833e5d42SEmmanuel Vadot		};
471*833e5d42SEmmanuel Vadot
472*833e5d42SEmmanuel Vadot		syscon_cmgp: syscon@14e20000 {
473*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmgp-sysreg", "syscon";
474*833e5d42SEmmanuel Vadot			reg = <0x0 0x14e20000 0x0 0x2000>;
475*833e5d42SEmmanuel Vadot		};
476*833e5d42SEmmanuel Vadot
477*833e5d42SEmmanuel Vadot		pinctrl_cmgp: pinctrl@14e30000 {
478*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
479*833e5d42SEmmanuel Vadot			reg = <0x0 0x14e30000 0x0 0x1000>;
480*833e5d42SEmmanuel Vadot
481*833e5d42SEmmanuel Vadot			wakeup-interrupt-controller {
482*833e5d42SEmmanuel Vadot				compatible = "samsung,exynos2200-wakeup-eint",
483*833e5d42SEmmanuel Vadot					     "samsung,exynos850-wakeup-eint",
484*833e5d42SEmmanuel Vadot					     "samsung,exynos7-wakeup-eint";
485*833e5d42SEmmanuel Vadot			};
486*833e5d42SEmmanuel Vadot		};
487*833e5d42SEmmanuel Vadot
488*833e5d42SEmmanuel Vadot		cmu_vts: clock-controller@15300000 {
489*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-vts";
490*833e5d42SEmmanuel Vadot			reg = <0x0 0x15300000 0x0 0x8000>;
491*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
492*833e5d42SEmmanuel Vadot
493*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
494*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_VTS_DMIC>;
495*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "dmic";
496*833e5d42SEmmanuel Vadot		};
497*833e5d42SEmmanuel Vadot
498*833e5d42SEmmanuel Vadot		pinctrl_vts: pinctrl@15320000 {
499*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
500*833e5d42SEmmanuel Vadot			reg = <0x0 0x15320000 0x0 0x1000>;
501*833e5d42SEmmanuel Vadot		};
502*833e5d42SEmmanuel Vadot
503*833e5d42SEmmanuel Vadot		cmu_alive: clock-controller@15800000 {
504*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-alive";
505*833e5d42SEmmanuel Vadot			reg = <0x0 0x15800000 0x0 0x8000>;
506*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
507*833e5d42SEmmanuel Vadot
508*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>,
509*833e5d42SEmmanuel Vadot				 <&cmu_top CLK_DOUT_CMU_ALIVE_NOC>;
510*833e5d42SEmmanuel Vadot			clock-names = "oscclk", "noc";
511*833e5d42SEmmanuel Vadot		};
512*833e5d42SEmmanuel Vadot
513*833e5d42SEmmanuel Vadot		pinctrl_alive: pinctrl@15850000 {
514*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pinctrl";
515*833e5d42SEmmanuel Vadot			reg = <0x0 0x15850000 0x0 0x1000>;
516*833e5d42SEmmanuel Vadot
517*833e5d42SEmmanuel Vadot			wakeup-interrupt-controller {
518*833e5d42SEmmanuel Vadot				compatible = "samsung,exynos2200-wakeup-eint",
519*833e5d42SEmmanuel Vadot					     "samsung,exynos850-wakeup-eint",
520*833e5d42SEmmanuel Vadot					     "samsung,exynos7-wakeup-eint";
521*833e5d42SEmmanuel Vadot			};
522*833e5d42SEmmanuel Vadot		};
523*833e5d42SEmmanuel Vadot
524*833e5d42SEmmanuel Vadot		pmu_system_controller: system-controller@15860000 {
525*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-pmu",
526*833e5d42SEmmanuel Vadot				     "samsung,exynos7-pmu", "syscon";
527*833e5d42SEmmanuel Vadot			reg = <0x0 0x15860000 0x0 0x10000>;
528*833e5d42SEmmanuel Vadot
529*833e5d42SEmmanuel Vadot			reboot: syscon-reboot {
530*833e5d42SEmmanuel Vadot				compatible = "syscon-reboot";
531*833e5d42SEmmanuel Vadot				offset = <0x3c00>; /* SYSTEM_CONFIGURATION */
532*833e5d42SEmmanuel Vadot				mask = <0x2>; /* SWRESET_SYSTEM */
533*833e5d42SEmmanuel Vadot				value = <0x2>; /* reset value */
534*833e5d42SEmmanuel Vadot			};
535*833e5d42SEmmanuel Vadot		};
536*833e5d42SEmmanuel Vadot
537*833e5d42SEmmanuel Vadot		cmu_top: clock-controller@1a320000 {
538*833e5d42SEmmanuel Vadot			compatible = "samsung,exynos2200-cmu-top";
539*833e5d42SEmmanuel Vadot			reg = <0x0 0x1a320000 0x0 0x8000>;
540*833e5d42SEmmanuel Vadot			#clock-cells = <1>;
541*833e5d42SEmmanuel Vadot
542*833e5d42SEmmanuel Vadot			clocks = <&xtcxo>;
543*833e5d42SEmmanuel Vadot			clock-names = "oscclk";
544*833e5d42SEmmanuel Vadot		};
545*833e5d42SEmmanuel Vadot	};
546*833e5d42SEmmanuel Vadot
547*833e5d42SEmmanuel Vadot	timer {
548*833e5d42SEmmanuel Vadot		compatible = "arm,armv8-timer";
549*833e5d42SEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
550*833e5d42SEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
551*833e5d42SEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
552*833e5d42SEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
553*833e5d42SEmmanuel Vadot		/*
554*833e5d42SEmmanuel Vadot		 * Non-updatable, broken stock Samsung bootloader does not
555*833e5d42SEmmanuel Vadot		 * configure CNTFRQ_EL0
556*833e5d42SEmmanuel Vadot		 */
557*833e5d42SEmmanuel Vadot		clock-frequency = <25600000>;
558*833e5d42SEmmanuel Vadot	};
559*833e5d42SEmmanuel Vadot};
560*833e5d42SEmmanuel Vadot
561*833e5d42SEmmanuel Vadot#include "exynos2200-pinctrl.dtsi"
562