xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/uniphier-pro5.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*4882a593Smuzhiyun//
3*4882a593Smuzhiyun// Device Tree Source for UniPhier Pro5 SoC
4*4882a593Smuzhiyun//
5*4882a593Smuzhiyun// Copyright (C) 2015-2016 Socionext Inc.
6*4882a593Smuzhiyun//   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/ {
9*4882a593Smuzhiyun	compatible = "socionext,uniphier-pro5";
10*4882a593Smuzhiyun	#address-cells = <1>;
11*4882a593Smuzhiyun	#size-cells = <1>;
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun	cpus {
14*4882a593Smuzhiyun		#address-cells = <1>;
15*4882a593Smuzhiyun		#size-cells = <0>;
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun		cpu@0 {
18*4882a593Smuzhiyun			device_type = "cpu";
19*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
20*4882a593Smuzhiyun			reg = <0>;
21*4882a593Smuzhiyun			clocks = <&sys_clk 32>;
22*4882a593Smuzhiyun			enable-method = "psci";
23*4882a593Smuzhiyun			next-level-cache = <&l2>;
24*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp>;
25*4882a593Smuzhiyun		};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun		cpu@1 {
28*4882a593Smuzhiyun			device_type = "cpu";
29*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
30*4882a593Smuzhiyun			reg = <1>;
31*4882a593Smuzhiyun			clocks = <&sys_clk 32>;
32*4882a593Smuzhiyun			enable-method = "psci";
33*4882a593Smuzhiyun			next-level-cache = <&l2>;
34*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp>;
35*4882a593Smuzhiyun		};
36*4882a593Smuzhiyun	};
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun	cpu_opp: opp-table {
39*4882a593Smuzhiyun		compatible = "operating-points-v2";
40*4882a593Smuzhiyun		opp-shared;
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun		opp-100000000 {
43*4882a593Smuzhiyun			opp-hz = /bits/ 64 <100000000>;
44*4882a593Smuzhiyun			clock-latency-ns = <300>;
45*4882a593Smuzhiyun		};
46*4882a593Smuzhiyun		opp-116667000 {
47*4882a593Smuzhiyun			opp-hz = /bits/ 64 <116667000>;
48*4882a593Smuzhiyun			clock-latency-ns = <300>;
49*4882a593Smuzhiyun		};
50*4882a593Smuzhiyun		opp-150000000 {
51*4882a593Smuzhiyun			opp-hz = /bits/ 64 <150000000>;
52*4882a593Smuzhiyun			clock-latency-ns = <300>;
53*4882a593Smuzhiyun		};
54*4882a593Smuzhiyun		opp-175000000 {
55*4882a593Smuzhiyun			opp-hz = /bits/ 64 <175000000>;
56*4882a593Smuzhiyun			clock-latency-ns = <300>;
57*4882a593Smuzhiyun		};
58*4882a593Smuzhiyun		opp-200000000 {
59*4882a593Smuzhiyun			opp-hz = /bits/ 64 <200000000>;
60*4882a593Smuzhiyun			clock-latency-ns = <300>;
61*4882a593Smuzhiyun		};
62*4882a593Smuzhiyun		opp-233334000 {
63*4882a593Smuzhiyun			opp-hz = /bits/ 64 <233334000>;
64*4882a593Smuzhiyun			clock-latency-ns = <300>;
65*4882a593Smuzhiyun		};
66*4882a593Smuzhiyun		opp-300000000 {
67*4882a593Smuzhiyun			opp-hz = /bits/ 64 <300000000>;
68*4882a593Smuzhiyun			clock-latency-ns = <300>;
69*4882a593Smuzhiyun		};
70*4882a593Smuzhiyun		opp-350000000 {
71*4882a593Smuzhiyun			opp-hz = /bits/ 64 <350000000>;
72*4882a593Smuzhiyun			clock-latency-ns = <300>;
73*4882a593Smuzhiyun		};
74*4882a593Smuzhiyun		opp-400000000 {
75*4882a593Smuzhiyun			opp-hz = /bits/ 64 <400000000>;
76*4882a593Smuzhiyun			clock-latency-ns = <300>;
77*4882a593Smuzhiyun		};
78*4882a593Smuzhiyun		opp-466667000 {
79*4882a593Smuzhiyun			opp-hz = /bits/ 64 <466667000>;
80*4882a593Smuzhiyun			clock-latency-ns = <300>;
81*4882a593Smuzhiyun		};
82*4882a593Smuzhiyun		opp-600000000 {
83*4882a593Smuzhiyun			opp-hz = /bits/ 64 <600000000>;
84*4882a593Smuzhiyun			clock-latency-ns = <300>;
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun		opp-700000000 {
87*4882a593Smuzhiyun			opp-hz = /bits/ 64 <700000000>;
88*4882a593Smuzhiyun			clock-latency-ns = <300>;
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun		opp-800000000 {
91*4882a593Smuzhiyun			opp-hz = /bits/ 64 <800000000>;
92*4882a593Smuzhiyun			clock-latency-ns = <300>;
93*4882a593Smuzhiyun		};
94*4882a593Smuzhiyun		opp-933334000 {
95*4882a593Smuzhiyun			opp-hz = /bits/ 64 <933334000>;
96*4882a593Smuzhiyun			clock-latency-ns = <300>;
97*4882a593Smuzhiyun		};
98*4882a593Smuzhiyun		opp-1200000000 {
99*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1200000000>;
100*4882a593Smuzhiyun			clock-latency-ns = <300>;
101*4882a593Smuzhiyun		};
102*4882a593Smuzhiyun		opp-1400000000 {
103*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1400000000>;
104*4882a593Smuzhiyun			clock-latency-ns = <300>;
105*4882a593Smuzhiyun		};
106*4882a593Smuzhiyun	};
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun	psci {
109*4882a593Smuzhiyun		compatible = "arm,psci-0.2";
110*4882a593Smuzhiyun		method = "smc";
111*4882a593Smuzhiyun	};
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun	clocks {
114*4882a593Smuzhiyun		refclk: ref {
115*4882a593Smuzhiyun			compatible = "fixed-clock";
116*4882a593Smuzhiyun			#clock-cells = <0>;
117*4882a593Smuzhiyun			clock-frequency = <20000000>;
118*4882a593Smuzhiyun		};
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun		arm_timer_clk: arm-timer {
121*4882a593Smuzhiyun			#clock-cells = <0>;
122*4882a593Smuzhiyun			compatible = "fixed-clock";
123*4882a593Smuzhiyun			clock-frequency = <50000000>;
124*4882a593Smuzhiyun		};
125*4882a593Smuzhiyun	};
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun	soc {
128*4882a593Smuzhiyun		compatible = "simple-bus";
129*4882a593Smuzhiyun		#address-cells = <1>;
130*4882a593Smuzhiyun		#size-cells = <1>;
131*4882a593Smuzhiyun		ranges;
132*4882a593Smuzhiyun		interrupt-parent = <&intc>;
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun		l2: cache-controller@500c0000 {
135*4882a593Smuzhiyun			compatible = "socionext,uniphier-system-cache";
136*4882a593Smuzhiyun			reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
137*4882a593Smuzhiyun			      <0x506c0000 0x400>;
138*4882a593Smuzhiyun			interrupts = <0 190 4>, <0 191 4>;
139*4882a593Smuzhiyun			cache-unified;
140*4882a593Smuzhiyun			cache-size = <(2 * 1024 * 1024)>;
141*4882a593Smuzhiyun			cache-sets = <512>;
142*4882a593Smuzhiyun			cache-line-size = <128>;
143*4882a593Smuzhiyun			cache-level = <2>;
144*4882a593Smuzhiyun			next-level-cache = <&l3>;
145*4882a593Smuzhiyun		};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun		l3: cache-controller@500c8000 {
148*4882a593Smuzhiyun			compatible = "socionext,uniphier-system-cache";
149*4882a593Smuzhiyun			reg = <0x500c8000 0x2000>, <0x503c8100 0x8>,
150*4882a593Smuzhiyun			      <0x506c8000 0x400>;
151*4882a593Smuzhiyun			interrupts = <0 174 4>, <0 175 4>;
152*4882a593Smuzhiyun			cache-unified;
153*4882a593Smuzhiyun			cache-size = <(2 * 1024 * 1024)>;
154*4882a593Smuzhiyun			cache-sets = <512>;
155*4882a593Smuzhiyun			cache-line-size = <256>;
156*4882a593Smuzhiyun			cache-level = <3>;
157*4882a593Smuzhiyun		};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun		spi0: spi@54006000 {
160*4882a593Smuzhiyun			compatible = "socionext,uniphier-scssi";
161*4882a593Smuzhiyun			status = "disabled";
162*4882a593Smuzhiyun			reg = <0x54006000 0x100>;
163*4882a593Smuzhiyun			#address-cells = <1>;
164*4882a593Smuzhiyun			#size-cells = <0>;
165*4882a593Smuzhiyun			interrupts = <0 39 4>;
166*4882a593Smuzhiyun			pinctrl-names = "default";
167*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_spi0>;
168*4882a593Smuzhiyun			clocks = <&peri_clk 11>;
169*4882a593Smuzhiyun			resets = <&peri_rst 11>;
170*4882a593Smuzhiyun		};
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun		spi1: spi@54006100 {
173*4882a593Smuzhiyun			compatible = "socionext,uniphier-scssi";
174*4882a593Smuzhiyun			status = "disabled";
175*4882a593Smuzhiyun			reg = <0x54006100 0x100>;
176*4882a593Smuzhiyun			#address-cells = <1>;
177*4882a593Smuzhiyun			#size-cells = <0>;
178*4882a593Smuzhiyun			interrupts = <0 216 4>;
179*4882a593Smuzhiyun			pinctrl-names = "default";
180*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_spi1>;
181*4882a593Smuzhiyun			clocks = <&peri_clk 11>;	/* common with spi0 */
182*4882a593Smuzhiyun			resets = <&peri_rst 12>;
183*4882a593Smuzhiyun		};
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun		serial0: serial@54006800 {
186*4882a593Smuzhiyun			compatible = "socionext,uniphier-uart";
187*4882a593Smuzhiyun			status = "disabled";
188*4882a593Smuzhiyun			reg = <0x54006800 0x40>;
189*4882a593Smuzhiyun			interrupts = <0 33 4>;
190*4882a593Smuzhiyun			pinctrl-names = "default";
191*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart0>;
192*4882a593Smuzhiyun			clocks = <&peri_clk 0>;
193*4882a593Smuzhiyun			resets = <&peri_rst 0>;
194*4882a593Smuzhiyun		};
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun		serial1: serial@54006900 {
197*4882a593Smuzhiyun			compatible = "socionext,uniphier-uart";
198*4882a593Smuzhiyun			status = "disabled";
199*4882a593Smuzhiyun			reg = <0x54006900 0x40>;
200*4882a593Smuzhiyun			interrupts = <0 35 4>;
201*4882a593Smuzhiyun			pinctrl-names = "default";
202*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart1>;
203*4882a593Smuzhiyun			clocks = <&peri_clk 1>;
204*4882a593Smuzhiyun			resets = <&peri_rst 1>;
205*4882a593Smuzhiyun		};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun		serial2: serial@54006a00 {
208*4882a593Smuzhiyun			compatible = "socionext,uniphier-uart";
209*4882a593Smuzhiyun			status = "disabled";
210*4882a593Smuzhiyun			reg = <0x54006a00 0x40>;
211*4882a593Smuzhiyun			interrupts = <0 37 4>;
212*4882a593Smuzhiyun			pinctrl-names = "default";
213*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart2>;
214*4882a593Smuzhiyun			clocks = <&peri_clk 2>;
215*4882a593Smuzhiyun			resets = <&peri_rst 2>;
216*4882a593Smuzhiyun		};
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun		serial3: serial@54006b00 {
219*4882a593Smuzhiyun			compatible = "socionext,uniphier-uart";
220*4882a593Smuzhiyun			status = "disabled";
221*4882a593Smuzhiyun			reg = <0x54006b00 0x40>;
222*4882a593Smuzhiyun			interrupts = <0 177 4>;
223*4882a593Smuzhiyun			pinctrl-names = "default";
224*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart3>;
225*4882a593Smuzhiyun			clocks = <&peri_clk 3>;
226*4882a593Smuzhiyun			resets = <&peri_rst 3>;
227*4882a593Smuzhiyun		};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun		gpio: gpio@55000000 {
230*4882a593Smuzhiyun			compatible = "socionext,uniphier-gpio";
231*4882a593Smuzhiyun			reg = <0x55000000 0x200>;
232*4882a593Smuzhiyun			interrupt-parent = <&aidet>;
233*4882a593Smuzhiyun			interrupt-controller;
234*4882a593Smuzhiyun			#interrupt-cells = <2>;
235*4882a593Smuzhiyun			gpio-controller;
236*4882a593Smuzhiyun			#gpio-cells = <2>;
237*4882a593Smuzhiyun			gpio-ranges = <&pinctrl 0 0 0>;
238*4882a593Smuzhiyun			gpio-ranges-group-names = "gpio_range";
239*4882a593Smuzhiyun			ngpios = <248>;
240*4882a593Smuzhiyun			socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
241*4882a593Smuzhiyun		};
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun		i2c0: i2c@58780000 {
244*4882a593Smuzhiyun			compatible = "socionext,uniphier-fi2c";
245*4882a593Smuzhiyun			status = "disabled";
246*4882a593Smuzhiyun			reg = <0x58780000 0x80>;
247*4882a593Smuzhiyun			#address-cells = <1>;
248*4882a593Smuzhiyun			#size-cells = <0>;
249*4882a593Smuzhiyun			interrupts = <0 41 4>;
250*4882a593Smuzhiyun			pinctrl-names = "default";
251*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_i2c0>;
252*4882a593Smuzhiyun			clocks = <&peri_clk 4>;
253*4882a593Smuzhiyun			resets = <&peri_rst 4>;
254*4882a593Smuzhiyun			clock-frequency = <100000>;
255*4882a593Smuzhiyun		};
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun		i2c1: i2c@58781000 {
258*4882a593Smuzhiyun			compatible = "socionext,uniphier-fi2c";
259*4882a593Smuzhiyun			status = "disabled";
260*4882a593Smuzhiyun			reg = <0x58781000 0x80>;
261*4882a593Smuzhiyun			#address-cells = <1>;
262*4882a593Smuzhiyun			#size-cells = <0>;
263*4882a593Smuzhiyun			interrupts = <0 42 4>;
264*4882a593Smuzhiyun			pinctrl-names = "default";
265*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_i2c1>;
266*4882a593Smuzhiyun			clocks = <&peri_clk 5>;
267*4882a593Smuzhiyun			resets = <&peri_rst 5>;
268*4882a593Smuzhiyun			clock-frequency = <100000>;
269*4882a593Smuzhiyun		};
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun		i2c2: i2c@58782000 {
272*4882a593Smuzhiyun			compatible = "socionext,uniphier-fi2c";
273*4882a593Smuzhiyun			status = "disabled";
274*4882a593Smuzhiyun			reg = <0x58782000 0x80>;
275*4882a593Smuzhiyun			#address-cells = <1>;
276*4882a593Smuzhiyun			#size-cells = <0>;
277*4882a593Smuzhiyun			interrupts = <0 43 4>;
278*4882a593Smuzhiyun			pinctrl-names = "default";
279*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_i2c2>;
280*4882a593Smuzhiyun			clocks = <&peri_clk 6>;
281*4882a593Smuzhiyun			resets = <&peri_rst 6>;
282*4882a593Smuzhiyun			clock-frequency = <100000>;
283*4882a593Smuzhiyun		};
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun		i2c3: i2c@58783000 {
286*4882a593Smuzhiyun			compatible = "socionext,uniphier-fi2c";
287*4882a593Smuzhiyun			status = "disabled";
288*4882a593Smuzhiyun			reg = <0x58783000 0x80>;
289*4882a593Smuzhiyun			#address-cells = <1>;
290*4882a593Smuzhiyun			#size-cells = <0>;
291*4882a593Smuzhiyun			interrupts = <0 44 4>;
292*4882a593Smuzhiyun			pinctrl-names = "default";
293*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_i2c3>;
294*4882a593Smuzhiyun			clocks = <&peri_clk 7>;
295*4882a593Smuzhiyun			resets = <&peri_rst 7>;
296*4882a593Smuzhiyun			clock-frequency = <100000>;
297*4882a593Smuzhiyun		};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun		/* i2c4 does not exist */
300*4882a593Smuzhiyun
301*4882a593Smuzhiyun		/* chip-internal connection for DMD */
302*4882a593Smuzhiyun		i2c5: i2c@58785000 {
303*4882a593Smuzhiyun			compatible = "socionext,uniphier-fi2c";
304*4882a593Smuzhiyun			reg = <0x58785000 0x80>;
305*4882a593Smuzhiyun			#address-cells = <1>;
306*4882a593Smuzhiyun			#size-cells = <0>;
307*4882a593Smuzhiyun			interrupts = <0 25 4>;
308*4882a593Smuzhiyun			clocks = <&peri_clk 9>;
309*4882a593Smuzhiyun			resets = <&peri_rst 9>;
310*4882a593Smuzhiyun			clock-frequency = <400000>;
311*4882a593Smuzhiyun		};
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun		/* chip-internal connection for HDMI */
314*4882a593Smuzhiyun		i2c6: i2c@58786000 {
315*4882a593Smuzhiyun			compatible = "socionext,uniphier-fi2c";
316*4882a593Smuzhiyun			reg = <0x58786000 0x80>;
317*4882a593Smuzhiyun			#address-cells = <1>;
318*4882a593Smuzhiyun			#size-cells = <0>;
319*4882a593Smuzhiyun			interrupts = <0 26 4>;
320*4882a593Smuzhiyun			clocks = <&peri_clk 10>;
321*4882a593Smuzhiyun			resets = <&peri_rst 10>;
322*4882a593Smuzhiyun			clock-frequency = <400000>;
323*4882a593Smuzhiyun		};
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun		system_bus: system-bus@58c00000 {
326*4882a593Smuzhiyun			compatible = "socionext,uniphier-system-bus";
327*4882a593Smuzhiyun			status = "disabled";
328*4882a593Smuzhiyun			reg = <0x58c00000 0x400>;
329*4882a593Smuzhiyun			#address-cells = <2>;
330*4882a593Smuzhiyun			#size-cells = <1>;
331*4882a593Smuzhiyun			pinctrl-names = "default";
332*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_system_bus>;
333*4882a593Smuzhiyun		};
334*4882a593Smuzhiyun
335*4882a593Smuzhiyun		smpctrl@59801000 {
336*4882a593Smuzhiyun			compatible = "socionext,uniphier-smpctrl";
337*4882a593Smuzhiyun			reg = <0x59801000 0x400>;
338*4882a593Smuzhiyun		};
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun		sdctrl@59810000 {
341*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-sdctrl",
342*4882a593Smuzhiyun				     "simple-mfd", "syscon";
343*4882a593Smuzhiyun			reg = <0x59810000 0x400>;
344*4882a593Smuzhiyun
345*4882a593Smuzhiyun			sd_clk: clock {
346*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-sd-clock";
347*4882a593Smuzhiyun				#clock-cells = <1>;
348*4882a593Smuzhiyun			};
349*4882a593Smuzhiyun
350*4882a593Smuzhiyun			sd_rst: reset {
351*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-sd-reset";
352*4882a593Smuzhiyun				#reset-cells = <1>;
353*4882a593Smuzhiyun			};
354*4882a593Smuzhiyun		};
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun		perictrl@59820000 {
357*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-perictrl",
358*4882a593Smuzhiyun				     "simple-mfd", "syscon";
359*4882a593Smuzhiyun			reg = <0x59820000 0x200>;
360*4882a593Smuzhiyun
361*4882a593Smuzhiyun			peri_clk: clock {
362*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-peri-clock";
363*4882a593Smuzhiyun				#clock-cells = <1>;
364*4882a593Smuzhiyun			};
365*4882a593Smuzhiyun
366*4882a593Smuzhiyun			peri_rst: reset {
367*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-peri-reset";
368*4882a593Smuzhiyun				#reset-cells = <1>;
369*4882a593Smuzhiyun			};
370*4882a593Smuzhiyun		};
371*4882a593Smuzhiyun
372*4882a593Smuzhiyun		soc-glue@5f800000 {
373*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-soc-glue",
374*4882a593Smuzhiyun				     "simple-mfd", "syscon";
375*4882a593Smuzhiyun			reg = <0x5f800000 0x2000>;
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun			pinctrl: pinctrl {
378*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-pinctrl";
379*4882a593Smuzhiyun			};
380*4882a593Smuzhiyun		};
381*4882a593Smuzhiyun
382*4882a593Smuzhiyun		soc-glue@5f900000 {
383*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-soc-glue-debug",
384*4882a593Smuzhiyun				     "simple-mfd";
385*4882a593Smuzhiyun			#address-cells = <1>;
386*4882a593Smuzhiyun			#size-cells = <1>;
387*4882a593Smuzhiyun			ranges = <0 0x5f900000 0x2000>;
388*4882a593Smuzhiyun
389*4882a593Smuzhiyun			efuse@100 {
390*4882a593Smuzhiyun				compatible = "socionext,uniphier-efuse";
391*4882a593Smuzhiyun				reg = <0x100 0x28>;
392*4882a593Smuzhiyun			};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun			efuse@130 {
395*4882a593Smuzhiyun				compatible = "socionext,uniphier-efuse";
396*4882a593Smuzhiyun				reg = <0x130 0x8>;
397*4882a593Smuzhiyun			};
398*4882a593Smuzhiyun
399*4882a593Smuzhiyun			efuse@200 {
400*4882a593Smuzhiyun				compatible = "socionext,uniphier-efuse";
401*4882a593Smuzhiyun				reg = <0x200 0x28>;
402*4882a593Smuzhiyun			};
403*4882a593Smuzhiyun
404*4882a593Smuzhiyun			efuse@300 {
405*4882a593Smuzhiyun				compatible = "socionext,uniphier-efuse";
406*4882a593Smuzhiyun				reg = <0x300 0x14>;
407*4882a593Smuzhiyun			};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun			efuse@400 {
410*4882a593Smuzhiyun				compatible = "socionext,uniphier-efuse";
411*4882a593Smuzhiyun				reg = <0x400 0x8>;
412*4882a593Smuzhiyun			};
413*4882a593Smuzhiyun		};
414*4882a593Smuzhiyun
415*4882a593Smuzhiyun		xdmac: dma-controller@5fc10000 {
416*4882a593Smuzhiyun			compatible = "socionext,uniphier-xdmac";
417*4882a593Smuzhiyun			reg = <0x5fc10000 0x5300>;
418*4882a593Smuzhiyun			interrupts = <0 188 4>;
419*4882a593Smuzhiyun			dma-channels = <16>;
420*4882a593Smuzhiyun			#dma-cells = <2>;
421*4882a593Smuzhiyun		};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun		aidet: interrupt-controller@5fc20000 {
424*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-aidet";
425*4882a593Smuzhiyun			reg = <0x5fc20000 0x200>;
426*4882a593Smuzhiyun			interrupt-controller;
427*4882a593Smuzhiyun			#interrupt-cells = <2>;
428*4882a593Smuzhiyun		};
429*4882a593Smuzhiyun
430*4882a593Smuzhiyun		timer@60000200 {
431*4882a593Smuzhiyun			compatible = "arm,cortex-a9-global-timer";
432*4882a593Smuzhiyun			reg = <0x60000200 0x20>;
433*4882a593Smuzhiyun			interrupts = <1 11 0x304>;
434*4882a593Smuzhiyun			clocks = <&arm_timer_clk>;
435*4882a593Smuzhiyun		};
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun		timer@60000600 {
438*4882a593Smuzhiyun			compatible = "arm,cortex-a9-twd-timer";
439*4882a593Smuzhiyun			reg = <0x60000600 0x20>;
440*4882a593Smuzhiyun			interrupts = <1 13 0x304>;
441*4882a593Smuzhiyun			clocks = <&arm_timer_clk>;
442*4882a593Smuzhiyun		};
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun		intc: interrupt-controller@60001000 {
445*4882a593Smuzhiyun			compatible = "arm,cortex-a9-gic";
446*4882a593Smuzhiyun			reg = <0x60001000 0x1000>,
447*4882a593Smuzhiyun			      <0x60000100 0x100>;
448*4882a593Smuzhiyun			#interrupt-cells = <3>;
449*4882a593Smuzhiyun			interrupt-controller;
450*4882a593Smuzhiyun		};
451*4882a593Smuzhiyun
452*4882a593Smuzhiyun		sysctrl@61840000 {
453*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-sysctrl",
454*4882a593Smuzhiyun				     "simple-mfd", "syscon";
455*4882a593Smuzhiyun			reg = <0x61840000 0x10000>;
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun			sys_clk: clock {
458*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-clock";
459*4882a593Smuzhiyun				#clock-cells = <1>;
460*4882a593Smuzhiyun			};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun			sys_rst: reset {
463*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-reset";
464*4882a593Smuzhiyun				#reset-cells = <1>;
465*4882a593Smuzhiyun			};
466*4882a593Smuzhiyun		};
467*4882a593Smuzhiyun
468*4882a593Smuzhiyun		usb0: usb@65a00000 {
469*4882a593Smuzhiyun			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
470*4882a593Smuzhiyun			status = "disabled";
471*4882a593Smuzhiyun			reg = <0x65a00000 0xcd00>;
472*4882a593Smuzhiyun			interrupt-names = "host";
473*4882a593Smuzhiyun			interrupts = <0 134 4>;
474*4882a593Smuzhiyun			pinctrl-names = "default";
475*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_usb0>;
476*4882a593Smuzhiyun			clock-names = "ref", "bus_early", "suspend";
477*4882a593Smuzhiyun			clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
478*4882a593Smuzhiyun			resets = <&usb0_rst 15>;
479*4882a593Smuzhiyun			phys = <&usb0_hsphy0>, <&usb0_ssphy0>;
480*4882a593Smuzhiyun			dr_mode = "host";
481*4882a593Smuzhiyun		};
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun		usb-glue@65b00000 {
484*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-dwc3-glue",
485*4882a593Smuzhiyun				     "simple-mfd";
486*4882a593Smuzhiyun			#address-cells = <1>;
487*4882a593Smuzhiyun			#size-cells = <1>;
488*4882a593Smuzhiyun			ranges = <0 0x65b00000 0x400>;
489*4882a593Smuzhiyun
490*4882a593Smuzhiyun			usb0_rst: reset@0 {
491*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-reset";
492*4882a593Smuzhiyun				reg = <0x0 0x4>;
493*4882a593Smuzhiyun				#reset-cells = <1>;
494*4882a593Smuzhiyun				clock-names = "gio", "link";
495*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 14>;
496*4882a593Smuzhiyun				reset-names = "gio", "link";
497*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 14>;
498*4882a593Smuzhiyun			};
499*4882a593Smuzhiyun
500*4882a593Smuzhiyun			usb0_vbus0: regulator@100 {
501*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-regulator";
502*4882a593Smuzhiyun				reg = <0x100 0x10>;
503*4882a593Smuzhiyun				clock-names = "gio", "link";
504*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 14>;
505*4882a593Smuzhiyun				reset-names = "gio", "link";
506*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 14>;
507*4882a593Smuzhiyun			};
508*4882a593Smuzhiyun
509*4882a593Smuzhiyun			usb0_hsphy0: hs-phy@280 {
510*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-hsphy";
511*4882a593Smuzhiyun				reg = <0x280 0x10>;
512*4882a593Smuzhiyun				#phy-cells = <0>;
513*4882a593Smuzhiyun				clock-names = "gio", "link";
514*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 14>;
515*4882a593Smuzhiyun				reset-names = "gio", "link";
516*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 14>;
517*4882a593Smuzhiyun				vbus-supply = <&usb0_vbus0>;
518*4882a593Smuzhiyun			};
519*4882a593Smuzhiyun
520*4882a593Smuzhiyun			usb0_ssphy0: ss-phy@380 {
521*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-ssphy";
522*4882a593Smuzhiyun				reg = <0x380 0x10>;
523*4882a593Smuzhiyun				#phy-cells = <0>;
524*4882a593Smuzhiyun				clock-names = "gio", "link";
525*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 14>;
526*4882a593Smuzhiyun				reset-names = "gio", "link";
527*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 14>;
528*4882a593Smuzhiyun				vbus-supply = <&usb0_vbus0>;
529*4882a593Smuzhiyun			};
530*4882a593Smuzhiyun		};
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun		usb1: usb@65c00000 {
533*4882a593Smuzhiyun			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
534*4882a593Smuzhiyun			status = "disabled";
535*4882a593Smuzhiyun			reg = <0x65c00000 0xcd00>;
536*4882a593Smuzhiyun			interrupt-names = "host";
537*4882a593Smuzhiyun			interrupts = <0 137 4>;
538*4882a593Smuzhiyun			pinctrl-names = "default";
539*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb2>;
540*4882a593Smuzhiyun			clock-names = "ref", "bus_early", "suspend";
541*4882a593Smuzhiyun			clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
542*4882a593Smuzhiyun			resets = <&usb1_rst 15>;
543*4882a593Smuzhiyun			phys = <&usb1_hsphy0>, <&usb1_hsphy1>, <&usb1_ssphy0>;
544*4882a593Smuzhiyun			dr_mode = "host";
545*4882a593Smuzhiyun		};
546*4882a593Smuzhiyun
547*4882a593Smuzhiyun		usb-glue@65d00000 {
548*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-dwc3-glue",
549*4882a593Smuzhiyun				     "simple-mfd";
550*4882a593Smuzhiyun			#address-cells = <1>;
551*4882a593Smuzhiyun			#size-cells = <1>;
552*4882a593Smuzhiyun			ranges = <0 0x65d00000 0x400>;
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun			usb1_rst: reset@0 {
555*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-reset";
556*4882a593Smuzhiyun				reg = <0x0 0x4>;
557*4882a593Smuzhiyun				#reset-cells = <1>;
558*4882a593Smuzhiyun				clock-names = "gio", "link";
559*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 15>;
560*4882a593Smuzhiyun				reset-names = "gio", "link";
561*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 15>;
562*4882a593Smuzhiyun			};
563*4882a593Smuzhiyun
564*4882a593Smuzhiyun			usb1_vbus0: regulator@100 {
565*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-regulator";
566*4882a593Smuzhiyun				reg = <0x100 0x10>;
567*4882a593Smuzhiyun				clock-names = "gio", "link";
568*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 15>;
569*4882a593Smuzhiyun				reset-names = "gio", "link";
570*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 15>;
571*4882a593Smuzhiyun			};
572*4882a593Smuzhiyun
573*4882a593Smuzhiyun			usb1_vbus1: regulator@110 {
574*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-regulator";
575*4882a593Smuzhiyun				reg = <0x110 0x10>;
576*4882a593Smuzhiyun				clock-names = "gio", "link";
577*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 15>;
578*4882a593Smuzhiyun				reset-names = "gio", "link";
579*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 15>;
580*4882a593Smuzhiyun			};
581*4882a593Smuzhiyun
582*4882a593Smuzhiyun			usb1_hsphy0: hs-phy@280 {
583*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-hsphy";
584*4882a593Smuzhiyun				reg = <0x280 0x10>;
585*4882a593Smuzhiyun				#phy-cells = <0>;
586*4882a593Smuzhiyun				clock-names = "gio", "link";
587*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 15>;
588*4882a593Smuzhiyun				reset-names = "gio", "link";
589*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 15>;
590*4882a593Smuzhiyun				vbus-supply = <&usb1_vbus0>;
591*4882a593Smuzhiyun			};
592*4882a593Smuzhiyun
593*4882a593Smuzhiyun			usb1_hsphy1: hs-phy@290 {
594*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-hsphy";
595*4882a593Smuzhiyun				reg = <0x290 0x10>;
596*4882a593Smuzhiyun				#phy-cells = <0>;
597*4882a593Smuzhiyun				clock-names = "gio", "link";
598*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 15>;
599*4882a593Smuzhiyun				reset-names = "gio", "link";
600*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 15>;
601*4882a593Smuzhiyun				vbus-supply = <&usb1_vbus1>;
602*4882a593Smuzhiyun			};
603*4882a593Smuzhiyun
604*4882a593Smuzhiyun			usb1_ssphy0: ss-phy@380 {
605*4882a593Smuzhiyun				compatible = "socionext,uniphier-pro5-usb3-ssphy";
606*4882a593Smuzhiyun				reg = <0x380 0x10>;
607*4882a593Smuzhiyun				#phy-cells = <0>;
608*4882a593Smuzhiyun				clock-names = "gio", "link";
609*4882a593Smuzhiyun				clocks = <&sys_clk 12>, <&sys_clk 15>;
610*4882a593Smuzhiyun				reset-names = "gio", "link";
611*4882a593Smuzhiyun				resets = <&sys_rst 12>, <&sys_rst 15>;
612*4882a593Smuzhiyun				vbus-supply = <&usb1_vbus0>;
613*4882a593Smuzhiyun			};
614*4882a593Smuzhiyun		};
615*4882a593Smuzhiyun
616*4882a593Smuzhiyun		pcie_ep: pcie-ep@66000000 {
617*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-pcie-ep",
618*4882a593Smuzhiyun				     "snps,dw-pcie-ep";
619*4882a593Smuzhiyun			status = "disabled";
620*4882a593Smuzhiyun			reg-names = "dbi", "dbi2", "link", "addr_space";
621*4882a593Smuzhiyun			reg = <0x66000000 0x1000>, <0x66001000 0x1000>,
622*4882a593Smuzhiyun			      <0x66010000 0x10000>, <0x67000000 0x400000>;
623*4882a593Smuzhiyun			pinctrl-names = "default";
624*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_pcie>;
625*4882a593Smuzhiyun			clock-names = "gio", "link";
626*4882a593Smuzhiyun			clocks = <&sys_clk 12>, <&sys_clk 24>;
627*4882a593Smuzhiyun			reset-names = "gio", "link";
628*4882a593Smuzhiyun			resets = <&sys_rst 12>, <&sys_rst 24>;
629*4882a593Smuzhiyun			num-ib-windows = <16>;
630*4882a593Smuzhiyun			num-ob-windows = <16>;
631*4882a593Smuzhiyun			num-lanes = <4>;
632*4882a593Smuzhiyun			phy-names = "pcie-phy";
633*4882a593Smuzhiyun			phys = <&pcie_phy>;
634*4882a593Smuzhiyun		};
635*4882a593Smuzhiyun
636*4882a593Smuzhiyun		pcie_phy: phy@66038000 {
637*4882a593Smuzhiyun			compatible = "socionext,uniphier-pro5-pcie-phy";
638*4882a593Smuzhiyun			reg = <0x66038000 0x4000>;
639*4882a593Smuzhiyun			#phy-cells = <0>;
640*4882a593Smuzhiyun			clock-names = "gio", "link";
641*4882a593Smuzhiyun			clocks = <&sys_clk 12>, <&sys_clk 24>;
642*4882a593Smuzhiyun			reset-names = "gio", "link";
643*4882a593Smuzhiyun			resets = <&sys_rst 12>, <&sys_rst 24>;
644*4882a593Smuzhiyun		};
645*4882a593Smuzhiyun
646*4882a593Smuzhiyun		nand: nand-controller@68000000 {
647*4882a593Smuzhiyun			compatible = "socionext,uniphier-denali-nand-v5b";
648*4882a593Smuzhiyun			status = "disabled";
649*4882a593Smuzhiyun			reg-names = "nand_data", "denali_reg";
650*4882a593Smuzhiyun			reg = <0x68000000 0x20>, <0x68100000 0x1000>;
651*4882a593Smuzhiyun			#address-cells = <1>;
652*4882a593Smuzhiyun			#size-cells = <0>;
653*4882a593Smuzhiyun			interrupts = <0 65 4>;
654*4882a593Smuzhiyun			pinctrl-names = "default";
655*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_nand>;
656*4882a593Smuzhiyun			clock-names = "nand", "nand_x", "ecc";
657*4882a593Smuzhiyun			clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
658*4882a593Smuzhiyun			reset-names = "nand", "reg";
659*4882a593Smuzhiyun			resets = <&sys_rst 2>, <&sys_rst 2>;
660*4882a593Smuzhiyun		};
661*4882a593Smuzhiyun
662*4882a593Smuzhiyun		emmc: mmc@68400000 {
663*4882a593Smuzhiyun			compatible = "socionext,uniphier-sd-v3.1";
664*4882a593Smuzhiyun			status = "disabled";
665*4882a593Smuzhiyun			reg = <0x68400000 0x800>;
666*4882a593Smuzhiyun			interrupts = <0 78 4>;
667*4882a593Smuzhiyun			pinctrl-names = "default";
668*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_emmc>;
669*4882a593Smuzhiyun			clocks = <&sd_clk 1>;
670*4882a593Smuzhiyun			reset-names = "host", "hw";
671*4882a593Smuzhiyun			resets = <&sd_rst 1>, <&sd_rst 6>;
672*4882a593Smuzhiyun			bus-width = <8>;
673*4882a593Smuzhiyun			cap-mmc-highspeed;
674*4882a593Smuzhiyun			cap-mmc-hw-reset;
675*4882a593Smuzhiyun			non-removable;
676*4882a593Smuzhiyun		};
677*4882a593Smuzhiyun
678*4882a593Smuzhiyun		sd: mmc@68800000 {
679*4882a593Smuzhiyun			compatible = "socionext,uniphier-sd-v3.1";
680*4882a593Smuzhiyun			status = "disabled";
681*4882a593Smuzhiyun			reg = <0x68800000 0x800>;
682*4882a593Smuzhiyun			interrupts = <0 76 4>;
683*4882a593Smuzhiyun			pinctrl-names = "default", "uhs";
684*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_sd>;
685*4882a593Smuzhiyun			pinctrl-1 = <&pinctrl_sd_uhs>;
686*4882a593Smuzhiyun			clocks = <&sd_clk 0>;
687*4882a593Smuzhiyun			reset-names = "host";
688*4882a593Smuzhiyun			resets = <&sd_rst 0>;
689*4882a593Smuzhiyun			bus-width = <4>;
690*4882a593Smuzhiyun			cap-sd-highspeed;
691*4882a593Smuzhiyun			sd-uhs-sdr12;
692*4882a593Smuzhiyun			sd-uhs-sdr25;
693*4882a593Smuzhiyun			sd-uhs-sdr50;
694*4882a593Smuzhiyun		};
695*4882a593Smuzhiyun	};
696*4882a593Smuzhiyun};
697*4882a593Smuzhiyun
698*4882a593Smuzhiyun#include "uniphier-pinctrl.dtsi"
699