xref: /rk3399_rockchip-uboot/arch/arm/dts/uniphier-ld20.dtsi (revision 52159d27ffe6b2a1a7e874cb2fda5aadbd4f03e5)
1*52159d27SMasahiro Yamada/*
2*52159d27SMasahiro Yamada * Device Tree Source for UniPhier LD20 SoC
3*52159d27SMasahiro Yamada *
4*52159d27SMasahiro Yamada * Copyright (C) 2015-2016 Socionext Inc.
5*52159d27SMasahiro Yamada *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
6*52159d27SMasahiro Yamada *
7*52159d27SMasahiro Yamada * SPDX-License-Identifier:	GPL-2.0+	X11
8*52159d27SMasahiro Yamada */
9*52159d27SMasahiro Yamada
10*52159d27SMasahiro Yamada/memreserve/ 0x80000000 0x00000008;	/* cpu-release-addr */
11*52159d27SMasahiro Yamada
12*52159d27SMasahiro Yamada/ {
13*52159d27SMasahiro Yamada	compatible = "socionext,uniphier-ld20";
14*52159d27SMasahiro Yamada	#address-cells = <2>;
15*52159d27SMasahiro Yamada	#size-cells = <2>;
16*52159d27SMasahiro Yamada	interrupt-parent = <&gic>;
17*52159d27SMasahiro Yamada
18*52159d27SMasahiro Yamada	cpus {
19*52159d27SMasahiro Yamada		#address-cells = <2>;
20*52159d27SMasahiro Yamada		#size-cells = <0>;
21*52159d27SMasahiro Yamada
22*52159d27SMasahiro Yamada		cpu-map {
23*52159d27SMasahiro Yamada			cluster0 {
24*52159d27SMasahiro Yamada				core0 {
25*52159d27SMasahiro Yamada					cpu = <&cpu0>;
26*52159d27SMasahiro Yamada				};
27*52159d27SMasahiro Yamada				core1 {
28*52159d27SMasahiro Yamada					cpu = <&cpu1>;
29*52159d27SMasahiro Yamada				};
30*52159d27SMasahiro Yamada			};
31*52159d27SMasahiro Yamada
32*52159d27SMasahiro Yamada			cluster1 {
33*52159d27SMasahiro Yamada				core0 {
34*52159d27SMasahiro Yamada					cpu = <&cpu2>;
35*52159d27SMasahiro Yamada				};
36*52159d27SMasahiro Yamada				core1 {
37*52159d27SMasahiro Yamada					cpu = <&cpu3>;
38*52159d27SMasahiro Yamada				};
39*52159d27SMasahiro Yamada			};
40*52159d27SMasahiro Yamada		};
41*52159d27SMasahiro Yamada
42*52159d27SMasahiro Yamada		cpu0: cpu@0 {
43*52159d27SMasahiro Yamada			device_type = "cpu";
44*52159d27SMasahiro Yamada			compatible = "arm,cortex-a72", "arm,armv8";
45*52159d27SMasahiro Yamada			reg = <0 0x000>;
46*52159d27SMasahiro Yamada			enable-method = "spin-table";
47*52159d27SMasahiro Yamada			cpu-release-addr = <0 0x80000000>;
48*52159d27SMasahiro Yamada		};
49*52159d27SMasahiro Yamada
50*52159d27SMasahiro Yamada		cpu1: cpu@1 {
51*52159d27SMasahiro Yamada			device_type = "cpu";
52*52159d27SMasahiro Yamada			compatible = "arm,cortex-a72", "arm,armv8";
53*52159d27SMasahiro Yamada			reg = <0 0x001>;
54*52159d27SMasahiro Yamada			enable-method = "spin-table";
55*52159d27SMasahiro Yamada			cpu-release-addr = <0 0x80000000>;
56*52159d27SMasahiro Yamada		};
57*52159d27SMasahiro Yamada
58*52159d27SMasahiro Yamada		cpu2: cpu@100 {
59*52159d27SMasahiro Yamada			device_type = "cpu";
60*52159d27SMasahiro Yamada			compatible = "arm,cortex-a53", "arm,armv8";
61*52159d27SMasahiro Yamada			reg = <0 0x100>;
62*52159d27SMasahiro Yamada			enable-method = "spin-table";
63*52159d27SMasahiro Yamada			cpu-release-addr = <0 0x80000000>;
64*52159d27SMasahiro Yamada		};
65*52159d27SMasahiro Yamada
66*52159d27SMasahiro Yamada		cpu3: cpu@101 {
67*52159d27SMasahiro Yamada			device_type = "cpu";
68*52159d27SMasahiro Yamada			compatible = "arm,cortex-a53", "arm,armv8";
69*52159d27SMasahiro Yamada			reg = <0 0x101>;
70*52159d27SMasahiro Yamada			enable-method = "spin-table";
71*52159d27SMasahiro Yamada			cpu-release-addr = <0 0x80000000>;
72*52159d27SMasahiro Yamada		};
73*52159d27SMasahiro Yamada	};
74*52159d27SMasahiro Yamada
75*52159d27SMasahiro Yamada	clocks {
76*52159d27SMasahiro Yamada		refclk: ref {
77*52159d27SMasahiro Yamada			compatible = "fixed-clock";
78*52159d27SMasahiro Yamada			#clock-cells = <0>;
79*52159d27SMasahiro Yamada			clock-frequency = <25000000>;
80*52159d27SMasahiro Yamada		};
81*52159d27SMasahiro Yamada
82*52159d27SMasahiro Yamada		i2c_clk: i2c_clk {
83*52159d27SMasahiro Yamada			#clock-cells = <0>;
84*52159d27SMasahiro Yamada			compatible = "fixed-clock";
85*52159d27SMasahiro Yamada			clock-frequency = <50000000>;
86*52159d27SMasahiro Yamada		};
87*52159d27SMasahiro Yamada	};
88*52159d27SMasahiro Yamada
89*52159d27SMasahiro Yamada	timer {
90*52159d27SMasahiro Yamada		compatible = "arm,armv8-timer";
91*52159d27SMasahiro Yamada		interrupts = <1 13 4>,
92*52159d27SMasahiro Yamada			     <1 14 4>,
93*52159d27SMasahiro Yamada			     <1 11 4>,
94*52159d27SMasahiro Yamada			     <1 10 4>;
95*52159d27SMasahiro Yamada	};
96*52159d27SMasahiro Yamada
97*52159d27SMasahiro Yamada	soc {
98*52159d27SMasahiro Yamada		compatible = "simple-bus";
99*52159d27SMasahiro Yamada		#address-cells = <1>;
100*52159d27SMasahiro Yamada		#size-cells = <1>;
101*52159d27SMasahiro Yamada		ranges = <0 0 0 0xffffffff>;
102*52159d27SMasahiro Yamada		u-boot,dm-pre-reloc;
103*52159d27SMasahiro Yamada
104*52159d27SMasahiro Yamada		serial0: serial@54006800 {
105*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-uart";
106*52159d27SMasahiro Yamada			status = "disabled";
107*52159d27SMasahiro Yamada			reg = <0x54006800 0x40>;
108*52159d27SMasahiro Yamada			interrupts = <0 33 4>;
109*52159d27SMasahiro Yamada			pinctrl-names = "default";
110*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_uart0>;
111*52159d27SMasahiro Yamada			clocks = <&peri_clk 0>;
112*52159d27SMasahiro Yamada			clock-frequency = <58820000>;
113*52159d27SMasahiro Yamada		};
114*52159d27SMasahiro Yamada
115*52159d27SMasahiro Yamada		serial1: serial@54006900 {
116*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-uart";
117*52159d27SMasahiro Yamada			status = "disabled";
118*52159d27SMasahiro Yamada			reg = <0x54006900 0x40>;
119*52159d27SMasahiro Yamada			interrupts = <0 35 4>;
120*52159d27SMasahiro Yamada			pinctrl-names = "default";
121*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_uart1>;
122*52159d27SMasahiro Yamada			clocks = <&peri_clk 1>;
123*52159d27SMasahiro Yamada			clock-frequency = <58820000>;
124*52159d27SMasahiro Yamada		};
125*52159d27SMasahiro Yamada
126*52159d27SMasahiro Yamada		serial2: serial@54006a00 {
127*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-uart";
128*52159d27SMasahiro Yamada			status = "disabled";
129*52159d27SMasahiro Yamada			reg = <0x54006a00 0x40>;
130*52159d27SMasahiro Yamada			interrupts = <0 37 4>;
131*52159d27SMasahiro Yamada			pinctrl-names = "default";
132*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_uart2>;
133*52159d27SMasahiro Yamada			clocks = <&peri_clk 2>;
134*52159d27SMasahiro Yamada			clock-frequency = <58820000>;
135*52159d27SMasahiro Yamada		};
136*52159d27SMasahiro Yamada
137*52159d27SMasahiro Yamada		serial3: serial@54006b00 {
138*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-uart";
139*52159d27SMasahiro Yamada			status = "disabled";
140*52159d27SMasahiro Yamada			reg = <0x54006b00 0x40>;
141*52159d27SMasahiro Yamada			interrupts = <0 177 4>;
142*52159d27SMasahiro Yamada			pinctrl-names = "default";
143*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_uart3>;
144*52159d27SMasahiro Yamada			clocks = <&peri_clk 3>;
145*52159d27SMasahiro Yamada			clock-frequency = <58820000>;
146*52159d27SMasahiro Yamada		};
147*52159d27SMasahiro Yamada
148*52159d27SMasahiro Yamada		i2c0: i2c@58780000 {
149*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-fi2c";
150*52159d27SMasahiro Yamada			status = "disabled";
151*52159d27SMasahiro Yamada			reg = <0x58780000 0x80>;
152*52159d27SMasahiro Yamada			#address-cells = <1>;
153*52159d27SMasahiro Yamada			#size-cells = <0>;
154*52159d27SMasahiro Yamada			interrupts = <0 41 4>;
155*52159d27SMasahiro Yamada			pinctrl-names = "default";
156*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_i2c0>;
157*52159d27SMasahiro Yamada			clocks = <&i2c_clk>;
158*52159d27SMasahiro Yamada			clock-frequency = <100000>;
159*52159d27SMasahiro Yamada		};
160*52159d27SMasahiro Yamada
161*52159d27SMasahiro Yamada		i2c1: i2c@58781000 {
162*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-fi2c";
163*52159d27SMasahiro Yamada			status = "disabled";
164*52159d27SMasahiro Yamada			reg = <0x58781000 0x80>;
165*52159d27SMasahiro Yamada			#address-cells = <1>;
166*52159d27SMasahiro Yamada			#size-cells = <0>;
167*52159d27SMasahiro Yamada			interrupts = <0 42 4>;
168*52159d27SMasahiro Yamada			pinctrl-names = "default";
169*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_i2c1>;
170*52159d27SMasahiro Yamada			clocks = <&i2c_clk>;
171*52159d27SMasahiro Yamada			clock-frequency = <100000>;
172*52159d27SMasahiro Yamada		};
173*52159d27SMasahiro Yamada
174*52159d27SMasahiro Yamada		i2c2: i2c@58782000 {
175*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-fi2c";
176*52159d27SMasahiro Yamada			reg = <0x58782000 0x80>;
177*52159d27SMasahiro Yamada			#address-cells = <1>;
178*52159d27SMasahiro Yamada			#size-cells = <0>;
179*52159d27SMasahiro Yamada			interrupts = <0 43 4>;
180*52159d27SMasahiro Yamada			clocks = <&i2c_clk>;
181*52159d27SMasahiro Yamada			clock-frequency = <400000>;
182*52159d27SMasahiro Yamada		};
183*52159d27SMasahiro Yamada
184*52159d27SMasahiro Yamada		i2c3: i2c@58783000 {
185*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-fi2c";
186*52159d27SMasahiro Yamada			status = "disabled";
187*52159d27SMasahiro Yamada			reg = <0x58783000 0x80>;
188*52159d27SMasahiro Yamada			#address-cells = <1>;
189*52159d27SMasahiro Yamada			#size-cells = <0>;
190*52159d27SMasahiro Yamada			interrupts = <0 44 4>;
191*52159d27SMasahiro Yamada			pinctrl-names = "default";
192*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_i2c3>;
193*52159d27SMasahiro Yamada			clocks = <&i2c_clk>;
194*52159d27SMasahiro Yamada			clock-frequency = <100000>;
195*52159d27SMasahiro Yamada		};
196*52159d27SMasahiro Yamada
197*52159d27SMasahiro Yamada		i2c4: i2c@58784000 {
198*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-fi2c";
199*52159d27SMasahiro Yamada			status = "disabled";
200*52159d27SMasahiro Yamada			reg = <0x58784000 0x80>;
201*52159d27SMasahiro Yamada			#address-cells = <1>;
202*52159d27SMasahiro Yamada			#size-cells = <0>;
203*52159d27SMasahiro Yamada			interrupts = <0 45 4>;
204*52159d27SMasahiro Yamada			pinctrl-names = "default";
205*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_i2c4>;
206*52159d27SMasahiro Yamada			clocks = <&i2c_clk>;
207*52159d27SMasahiro Yamada			clock-frequency = <100000>;
208*52159d27SMasahiro Yamada		};
209*52159d27SMasahiro Yamada
210*52159d27SMasahiro Yamada		i2c5: i2c@58785000 {
211*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-fi2c";
212*52159d27SMasahiro Yamada			reg = <0x58785000 0x80>;
213*52159d27SMasahiro Yamada			#address-cells = <1>;
214*52159d27SMasahiro Yamada			#size-cells = <0>;
215*52159d27SMasahiro Yamada			interrupts = <0 25 4>;
216*52159d27SMasahiro Yamada			clocks = <&i2c_clk>;
217*52159d27SMasahiro Yamada			clock-frequency = <400000>;
218*52159d27SMasahiro Yamada		};
219*52159d27SMasahiro Yamada
220*52159d27SMasahiro Yamada		system_bus: system-bus@58c00000 {
221*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-system-bus";
222*52159d27SMasahiro Yamada			status = "disabled";
223*52159d27SMasahiro Yamada			reg = <0x58c00000 0x400>;
224*52159d27SMasahiro Yamada			#address-cells = <2>;
225*52159d27SMasahiro Yamada			#size-cells = <1>;
226*52159d27SMasahiro Yamada			pinctrl-names = "default";
227*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_system_bus>;
228*52159d27SMasahiro Yamada		};
229*52159d27SMasahiro Yamada
230*52159d27SMasahiro Yamada		smpctrl@59800000 {
231*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-smpctrl";
232*52159d27SMasahiro Yamada			reg = <0x59801000 0x400>;
233*52159d27SMasahiro Yamada		};
234*52159d27SMasahiro Yamada
235*52159d27SMasahiro Yamada		mioctrl@59810000 {
236*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-mioctrl",
237*52159d27SMasahiro Yamada				     "simple-mfd", "syscon";
238*52159d27SMasahiro Yamada			reg = <0x59810000 0x800>;
239*52159d27SMasahiro Yamada
240*52159d27SMasahiro Yamada			mio_clk: clock {
241*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-mio-clock";
242*52159d27SMasahiro Yamada				#clock-cells = <1>;
243*52159d27SMasahiro Yamada			};
244*52159d27SMasahiro Yamada
245*52159d27SMasahiro Yamada			mio_rst: reset {
246*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-mio-reset";
247*52159d27SMasahiro Yamada				#reset-cells = <1>;
248*52159d27SMasahiro Yamada			};
249*52159d27SMasahiro Yamada		};
250*52159d27SMasahiro Yamada
251*52159d27SMasahiro Yamada		perictrl@59820000 {
252*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-perictrl",
253*52159d27SMasahiro Yamada				     "simple-mfd", "syscon";
254*52159d27SMasahiro Yamada			reg = <0x59820000 0x200>;
255*52159d27SMasahiro Yamada
256*52159d27SMasahiro Yamada			peri_clk: clock {
257*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-peri-clock";
258*52159d27SMasahiro Yamada				#clock-cells = <1>;
259*52159d27SMasahiro Yamada			};
260*52159d27SMasahiro Yamada
261*52159d27SMasahiro Yamada			peri_rst: reset {
262*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-peri-reset";
263*52159d27SMasahiro Yamada				#reset-cells = <1>;
264*52159d27SMasahiro Yamada			};
265*52159d27SMasahiro Yamada		};
266*52159d27SMasahiro Yamada
267*52159d27SMasahiro Yamada		sd: sdhc@5a400000 {
268*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-sdhc";
269*52159d27SMasahiro Yamada			status = "disabled";
270*52159d27SMasahiro Yamada			reg = <0x5a400000 0x800>;
271*52159d27SMasahiro Yamada			interrupts = <0 76 4>;
272*52159d27SMasahiro Yamada			pinctrl-names = "default";
273*52159d27SMasahiro Yamada			pinctrl-0 = <&pinctrl_sd>;
274*52159d27SMasahiro Yamada			clocks = <&mio_clk 0>;
275*52159d27SMasahiro Yamada			reset-names = "host";
276*52159d27SMasahiro Yamada			resets = <&mio_rst 0>;
277*52159d27SMasahiro Yamada			bus-width = <4>;
278*52159d27SMasahiro Yamada		};
279*52159d27SMasahiro Yamada
280*52159d27SMasahiro Yamada		soc-glue@5f800000 {
281*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-soc-glue",
282*52159d27SMasahiro Yamada				     "simple-mfd", "syscon";
283*52159d27SMasahiro Yamada			reg = <0x5f800000 0x2000>;
284*52159d27SMasahiro Yamada			u-boot,dm-pre-reloc;
285*52159d27SMasahiro Yamada
286*52159d27SMasahiro Yamada			pinctrl: pinctrl {
287*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-pinctrl";
288*52159d27SMasahiro Yamada				u-boot,dm-pre-reloc;
289*52159d27SMasahiro Yamada			};
290*52159d27SMasahiro Yamada		};
291*52159d27SMasahiro Yamada
292*52159d27SMasahiro Yamada		aidet@5fc20000 {
293*52159d27SMasahiro Yamada			compatible = "simple-mfd", "syscon";
294*52159d27SMasahiro Yamada			reg = <0x5fc20000 0x200>;
295*52159d27SMasahiro Yamada		};
296*52159d27SMasahiro Yamada
297*52159d27SMasahiro Yamada		gic: interrupt-controller@5fe00000 {
298*52159d27SMasahiro Yamada			compatible = "arm,gic-v3";
299*52159d27SMasahiro Yamada			reg = <0x5fe00000 0x10000>,	/* GICD */
300*52159d27SMasahiro Yamada			      <0x5fe80000 0x80000>;	/* GICR */
301*52159d27SMasahiro Yamada			interrupt-controller;
302*52159d27SMasahiro Yamada			#interrupt-cells = <3>;
303*52159d27SMasahiro Yamada			interrupts = <1 9 4>;
304*52159d27SMasahiro Yamada		};
305*52159d27SMasahiro Yamada
306*52159d27SMasahiro Yamada		sysctrl@61840000 {
307*52159d27SMasahiro Yamada			compatible = "socionext,uniphier-sysctrl",
308*52159d27SMasahiro Yamada				     "simple-mfd", "syscon";
309*52159d27SMasahiro Yamada			reg = <0x61840000 0x4000>;
310*52159d27SMasahiro Yamada
311*52159d27SMasahiro Yamada			sys_clk: clock {
312*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-clock";
313*52159d27SMasahiro Yamada				#clock-cells = <1>;
314*52159d27SMasahiro Yamada			};
315*52159d27SMasahiro Yamada
316*52159d27SMasahiro Yamada			sys_rst: reset {
317*52159d27SMasahiro Yamada				compatible = "socionext,uniphier-ld20-reset";
318*52159d27SMasahiro Yamada				#reset-cells = <1>;
319*52159d27SMasahiro Yamada			};
320*52159d27SMasahiro Yamada		};
321*52159d27SMasahiro Yamada	};
322*52159d27SMasahiro Yamada};
323*52159d27SMasahiro Yamada
324*52159d27SMasahiro Yamada/include/ "uniphier-pinctrl.dtsi"
325