xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/socfpga_arria10.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright Altera Corporation (C) 2014. All rights reserved.
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
7*4882a593Smuzhiyun#include <dt-bindings/reset/altr,rst-mgr-a10.h>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/ {
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		enable-method = "altr,socfpga-a10-smp";
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun		cpu@0 {
19*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
20*4882a593Smuzhiyun			device_type = "cpu";
21*4882a593Smuzhiyun			reg = <0>;
22*4882a593Smuzhiyun			next-level-cache = <&L2>;
23*4882a593Smuzhiyun		};
24*4882a593Smuzhiyun		cpu@1 {
25*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
26*4882a593Smuzhiyun			device_type = "cpu";
27*4882a593Smuzhiyun			reg = <1>;
28*4882a593Smuzhiyun			next-level-cache = <&L2>;
29*4882a593Smuzhiyun		};
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	intc: intc@ffffd000 {
33*4882a593Smuzhiyun		compatible = "arm,cortex-a9-gic";
34*4882a593Smuzhiyun		#interrupt-cells = <3>;
35*4882a593Smuzhiyun		interrupt-controller;
36*4882a593Smuzhiyun		reg = <0xffffd000 0x1000>,
37*4882a593Smuzhiyun		      <0xffffc100 0x100>;
38*4882a593Smuzhiyun	};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	soc {
41*4882a593Smuzhiyun		#address-cells = <1>;
42*4882a593Smuzhiyun		#size-cells = <1>;
43*4882a593Smuzhiyun		compatible = "simple-bus";
44*4882a593Smuzhiyun		device_type = "soc";
45*4882a593Smuzhiyun		interrupt-parent = <&intc>;
46*4882a593Smuzhiyun		ranges;
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		amba {
49*4882a593Smuzhiyun			compatible = "simple-bus";
50*4882a593Smuzhiyun			#address-cells = <1>;
51*4882a593Smuzhiyun			#size-cells = <1>;
52*4882a593Smuzhiyun			ranges;
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun			pdma: pdma@ffda1000 {
55*4882a593Smuzhiyun				compatible = "arm,pl330", "arm,primecell";
56*4882a593Smuzhiyun				reg = <0xffda1000 0x1000>;
57*4882a593Smuzhiyun				interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
58*4882a593Smuzhiyun					     <0 84 IRQ_TYPE_LEVEL_HIGH>,
59*4882a593Smuzhiyun					     <0 85 IRQ_TYPE_LEVEL_HIGH>,
60*4882a593Smuzhiyun					     <0 86 IRQ_TYPE_LEVEL_HIGH>,
61*4882a593Smuzhiyun					     <0 87 IRQ_TYPE_LEVEL_HIGH>,
62*4882a593Smuzhiyun					     <0 88 IRQ_TYPE_LEVEL_HIGH>,
63*4882a593Smuzhiyun					     <0 89 IRQ_TYPE_LEVEL_HIGH>,
64*4882a593Smuzhiyun					     <0 90 IRQ_TYPE_LEVEL_HIGH>,
65*4882a593Smuzhiyun					     <0 91 IRQ_TYPE_LEVEL_HIGH>;
66*4882a593Smuzhiyun				#dma-cells = <1>;
67*4882a593Smuzhiyun				#dma-channels = <8>;
68*4882a593Smuzhiyun				#dma-requests = <32>;
69*4882a593Smuzhiyun				clocks = <&l4_main_clk>;
70*4882a593Smuzhiyun				clock-names = "apb_pclk";
71*4882a593Smuzhiyun				resets = <&rst DMA_RESET>, <&rst DMA_OCP_RESET>;
72*4882a593Smuzhiyun				reset-names = "dma", "dma-ocp";
73*4882a593Smuzhiyun			};
74*4882a593Smuzhiyun		};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		base_fpga_region {
77*4882a593Smuzhiyun			#address-cells = <0x1>;
78*4882a593Smuzhiyun			#size-cells = <0x1>;
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun			compatible = "fpga-region";
81*4882a593Smuzhiyun			fpga-mgr = <&fpga_mgr>;
82*4882a593Smuzhiyun		};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun		clkmgr@ffd04000 {
85*4882a593Smuzhiyun				compatible = "altr,clk-mgr";
86*4882a593Smuzhiyun				reg = <0xffd04000 0x1000>;
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun				clocks {
89*4882a593Smuzhiyun					#address-cells = <1>;
90*4882a593Smuzhiyun					#size-cells = <0>;
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun					cb_intosc_hs_div2_clk: cb_intosc_hs_div2_clk {
93*4882a593Smuzhiyun						#clock-cells = <0>;
94*4882a593Smuzhiyun						compatible = "fixed-clock";
95*4882a593Smuzhiyun					};
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun					cb_intosc_ls_clk: cb_intosc_ls_clk {
98*4882a593Smuzhiyun						#clock-cells = <0>;
99*4882a593Smuzhiyun						compatible = "fixed-clock";
100*4882a593Smuzhiyun					};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun					f2s_free_clk: f2s_free_clk {
103*4882a593Smuzhiyun						#clock-cells = <0>;
104*4882a593Smuzhiyun						compatible = "fixed-clock";
105*4882a593Smuzhiyun					};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun					osc1: osc1 {
108*4882a593Smuzhiyun						#clock-cells = <0>;
109*4882a593Smuzhiyun						compatible = "fixed-clock";
110*4882a593Smuzhiyun					};
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun					main_pll: main_pll@40 {
113*4882a593Smuzhiyun						#address-cells = <1>;
114*4882a593Smuzhiyun						#size-cells = <0>;
115*4882a593Smuzhiyun						#clock-cells = <0>;
116*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-pll-clock";
117*4882a593Smuzhiyun						clocks = <&osc1>, <&cb_intosc_ls_clk>,
118*4882a593Smuzhiyun							 <&f2s_free_clk>;
119*4882a593Smuzhiyun						reg = <0x40>;
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun						main_mpu_base_clk: main_mpu_base_clk {
122*4882a593Smuzhiyun							#clock-cells = <0>;
123*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
124*4882a593Smuzhiyun							clocks = <&main_pll>;
125*4882a593Smuzhiyun							div-reg = <0x140 0 11>;
126*4882a593Smuzhiyun						};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun						main_noc_base_clk: main_noc_base_clk {
129*4882a593Smuzhiyun							#clock-cells = <0>;
130*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
131*4882a593Smuzhiyun							clocks = <&main_pll>;
132*4882a593Smuzhiyun							div-reg = <0x144 0 11>;
133*4882a593Smuzhiyun						};
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun						main_emaca_clk: main_emaca_clk@68 {
136*4882a593Smuzhiyun							#clock-cells = <0>;
137*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
138*4882a593Smuzhiyun							clocks = <&main_pll>;
139*4882a593Smuzhiyun							reg = <0x68>;
140*4882a593Smuzhiyun						};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun						main_emacb_clk: main_emacb_clk@6c {
143*4882a593Smuzhiyun							#clock-cells = <0>;
144*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
145*4882a593Smuzhiyun							clocks = <&main_pll>;
146*4882a593Smuzhiyun							reg = <0x6C>;
147*4882a593Smuzhiyun						};
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun						main_emac_ptp_clk: main_emac_ptp_clk@70 {
150*4882a593Smuzhiyun							#clock-cells = <0>;
151*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
152*4882a593Smuzhiyun							clocks = <&main_pll>;
153*4882a593Smuzhiyun							reg = <0x70>;
154*4882a593Smuzhiyun						};
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun						main_gpio_db_clk: main_gpio_db_clk@74 {
157*4882a593Smuzhiyun							#clock-cells = <0>;
158*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
159*4882a593Smuzhiyun							clocks = <&main_pll>;
160*4882a593Smuzhiyun							reg = <0x74>;
161*4882a593Smuzhiyun						};
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun						main_sdmmc_clk: main_sdmmc_clk@78 {
164*4882a593Smuzhiyun							#clock-cells = <0>;
165*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk"
166*4882a593Smuzhiyun;
167*4882a593Smuzhiyun							clocks = <&main_pll>;
168*4882a593Smuzhiyun							reg = <0x78>;
169*4882a593Smuzhiyun						};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun						main_s2f_usr0_clk: main_s2f_usr0_clk@7c {
172*4882a593Smuzhiyun							#clock-cells = <0>;
173*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
174*4882a593Smuzhiyun							clocks = <&main_pll>;
175*4882a593Smuzhiyun							reg = <0x7C>;
176*4882a593Smuzhiyun						};
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun						main_s2f_usr1_clk: main_s2f_usr1_clk@80 {
179*4882a593Smuzhiyun							#clock-cells = <0>;
180*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
181*4882a593Smuzhiyun							clocks = <&main_pll>;
182*4882a593Smuzhiyun							reg = <0x80>;
183*4882a593Smuzhiyun						};
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun						main_hmc_pll_ref_clk: main_hmc_pll_ref_clk@84 {
186*4882a593Smuzhiyun							#clock-cells = <0>;
187*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
188*4882a593Smuzhiyun							clocks = <&main_pll>;
189*4882a593Smuzhiyun							reg = <0x84>;
190*4882a593Smuzhiyun						};
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun						main_periph_ref_clk: main_periph_ref_clk@9c {
193*4882a593Smuzhiyun							#clock-cells = <0>;
194*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
195*4882a593Smuzhiyun							clocks = <&main_pll>;
196*4882a593Smuzhiyun							reg = <0x9C>;
197*4882a593Smuzhiyun						};
198*4882a593Smuzhiyun					};
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun					periph_pll: periph_pll@c0 {
201*4882a593Smuzhiyun						#address-cells = <1>;
202*4882a593Smuzhiyun						#size-cells = <0>;
203*4882a593Smuzhiyun						#clock-cells = <0>;
204*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-pll-clock";
205*4882a593Smuzhiyun						clocks = <&osc1>, <&cb_intosc_ls_clk>,
206*4882a593Smuzhiyun							 <&f2s_free_clk>, <&main_periph_ref_clk>;
207*4882a593Smuzhiyun						reg = <0xC0>;
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun						peri_mpu_base_clk: peri_mpu_base_clk {
210*4882a593Smuzhiyun							#clock-cells = <0>;
211*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
212*4882a593Smuzhiyun							clocks = <&periph_pll>;
213*4882a593Smuzhiyun							div-reg = <0x140 16 11>;
214*4882a593Smuzhiyun						};
215*4882a593Smuzhiyun
216*4882a593Smuzhiyun						peri_noc_base_clk: peri_noc_base_clk {
217*4882a593Smuzhiyun							#clock-cells = <0>;
218*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
219*4882a593Smuzhiyun							clocks = <&periph_pll>;
220*4882a593Smuzhiyun							div-reg = <0x144 16 11>;
221*4882a593Smuzhiyun						};
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun						peri_emaca_clk: peri_emaca_clk@e8 {
224*4882a593Smuzhiyun							#clock-cells = <0>;
225*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
226*4882a593Smuzhiyun							clocks = <&periph_pll>;
227*4882a593Smuzhiyun							reg = <0xE8>;
228*4882a593Smuzhiyun						};
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun						peri_emacb_clk: peri_emacb_clk@ec {
231*4882a593Smuzhiyun							#clock-cells = <0>;
232*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
233*4882a593Smuzhiyun							clocks = <&periph_pll>;
234*4882a593Smuzhiyun							reg = <0xEC>;
235*4882a593Smuzhiyun						};
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun						peri_emac_ptp_clk: peri_emac_ptp_clk@f0 {
238*4882a593Smuzhiyun							#clock-cells = <0>;
239*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
240*4882a593Smuzhiyun							clocks = <&periph_pll>;
241*4882a593Smuzhiyun							reg = <0xF0>;
242*4882a593Smuzhiyun						};
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun						peri_gpio_db_clk: peri_gpio_db_clk@f4 {
245*4882a593Smuzhiyun							#clock-cells = <0>;
246*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
247*4882a593Smuzhiyun							clocks = <&periph_pll>;
248*4882a593Smuzhiyun							reg = <0xF4>;
249*4882a593Smuzhiyun						};
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun						peri_sdmmc_clk: peri_sdmmc_clk@f8 {
252*4882a593Smuzhiyun							#clock-cells = <0>;
253*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
254*4882a593Smuzhiyun							clocks = <&periph_pll>;
255*4882a593Smuzhiyun							reg = <0xF8>;
256*4882a593Smuzhiyun						};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun						peri_s2f_usr0_clk: peri_s2f_usr0_clk@fc {
259*4882a593Smuzhiyun							#clock-cells = <0>;
260*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
261*4882a593Smuzhiyun							clocks = <&periph_pll>;
262*4882a593Smuzhiyun							reg = <0xFC>;
263*4882a593Smuzhiyun						};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun						peri_s2f_usr1_clk: peri_s2f_usr1_clk@100 {
266*4882a593Smuzhiyun							#clock-cells = <0>;
267*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
268*4882a593Smuzhiyun							clocks = <&periph_pll>;
269*4882a593Smuzhiyun							reg = <0x100>;
270*4882a593Smuzhiyun						};
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun						peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk@104 {
273*4882a593Smuzhiyun							#clock-cells = <0>;
274*4882a593Smuzhiyun							compatible = "altr,socfpga-a10-perip-clk";
275*4882a593Smuzhiyun							clocks = <&periph_pll>;
276*4882a593Smuzhiyun							reg = <0x104>;
277*4882a593Smuzhiyun						};
278*4882a593Smuzhiyun					};
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun					mpu_free_clk: mpu_free_clk@60 {
281*4882a593Smuzhiyun						#clock-cells = <0>;
282*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-perip-clk";
283*4882a593Smuzhiyun						clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
284*4882a593Smuzhiyun							 <&osc1>, <&cb_intosc_hs_div2_clk>,
285*4882a593Smuzhiyun							 <&f2s_free_clk>;
286*4882a593Smuzhiyun						reg = <0x60>;
287*4882a593Smuzhiyun					};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun					noc_free_clk: noc_free_clk@64 {
290*4882a593Smuzhiyun						#clock-cells = <0>;
291*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-perip-clk";
292*4882a593Smuzhiyun						clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
293*4882a593Smuzhiyun							 <&osc1>, <&cb_intosc_hs_div2_clk>,
294*4882a593Smuzhiyun							 <&f2s_free_clk>;
295*4882a593Smuzhiyun						reg = <0x64>;
296*4882a593Smuzhiyun					};
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun					s2f_user1_free_clk: s2f_user1_free_clk@104 {
299*4882a593Smuzhiyun						#clock-cells = <0>;
300*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-perip-clk";
301*4882a593Smuzhiyun						clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
302*4882a593Smuzhiyun							 <&osc1>, <&cb_intosc_hs_div2_clk>,
303*4882a593Smuzhiyun							 <&f2s_free_clk>;
304*4882a593Smuzhiyun						reg = <0x104>;
305*4882a593Smuzhiyun					};
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun					sdmmc_free_clk: sdmmc_free_clk@f8 {
308*4882a593Smuzhiyun						#clock-cells = <0>;
309*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-perip-clk";
310*4882a593Smuzhiyun						clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
311*4882a593Smuzhiyun							 <&osc1>, <&cb_intosc_hs_div2_clk>,
312*4882a593Smuzhiyun							 <&f2s_free_clk>;
313*4882a593Smuzhiyun						fixed-divider = <4>;
314*4882a593Smuzhiyun						reg = <0xF8>;
315*4882a593Smuzhiyun					};
316*4882a593Smuzhiyun
317*4882a593Smuzhiyun					l4_sys_free_clk: l4_sys_free_clk {
318*4882a593Smuzhiyun						#clock-cells = <0>;
319*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-perip-clk";
320*4882a593Smuzhiyun						clocks = <&noc_free_clk>;
321*4882a593Smuzhiyun						fixed-divider = <4>;
322*4882a593Smuzhiyun					};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun					l4_main_clk: l4_main_clk {
325*4882a593Smuzhiyun						#clock-cells = <0>;
326*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
327*4882a593Smuzhiyun						clocks = <&noc_free_clk>;
328*4882a593Smuzhiyun						div-reg = <0xA8 0 2>;
329*4882a593Smuzhiyun						clk-gate = <0x48 1>;
330*4882a593Smuzhiyun					};
331*4882a593Smuzhiyun
332*4882a593Smuzhiyun					l4_mp_clk: l4_mp_clk {
333*4882a593Smuzhiyun						#clock-cells = <0>;
334*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
335*4882a593Smuzhiyun						clocks = <&noc_free_clk>;
336*4882a593Smuzhiyun						div-reg = <0xA8 8 2>;
337*4882a593Smuzhiyun						clk-gate = <0x48 2>;
338*4882a593Smuzhiyun					};
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun					l4_sp_clk: l4_sp_clk {
341*4882a593Smuzhiyun						#clock-cells = <0>;
342*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
343*4882a593Smuzhiyun						clocks = <&noc_free_clk>;
344*4882a593Smuzhiyun						div-reg = <0xA8 16 2>;
345*4882a593Smuzhiyun						clk-gate = <0x48 3>;
346*4882a593Smuzhiyun					};
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun					mpu_periph_clk: mpu_periph_clk {
349*4882a593Smuzhiyun						#clock-cells = <0>;
350*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
351*4882a593Smuzhiyun						clocks = <&mpu_free_clk>;
352*4882a593Smuzhiyun						fixed-divider = <4>;
353*4882a593Smuzhiyun						clk-gate = <0x48 0>;
354*4882a593Smuzhiyun					};
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun					sdmmc_clk: sdmmc_clk {
357*4882a593Smuzhiyun						#clock-cells = <0>;
358*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
359*4882a593Smuzhiyun						clocks = <&sdmmc_free_clk>;
360*4882a593Smuzhiyun						clk-gate = <0xC8 5>;
361*4882a593Smuzhiyun						clk-phase = <0 135>;
362*4882a593Smuzhiyun					};
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun					qspi_clk: qspi_clk {
365*4882a593Smuzhiyun						#clock-cells = <0>;
366*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
367*4882a593Smuzhiyun						clocks = <&l4_main_clk>;
368*4882a593Smuzhiyun						clk-gate = <0xC8 11>;
369*4882a593Smuzhiyun					};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun					nand_x_clk: nand_x_clk {
372*4882a593Smuzhiyun						#clock-cells = <0>;
373*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
374*4882a593Smuzhiyun						clocks = <&l4_mp_clk>;
375*4882a593Smuzhiyun						clk-gate = <0xC8 10>;
376*4882a593Smuzhiyun					};
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun					nand_ecc_clk: nand_ecc_clk {
379*4882a593Smuzhiyun						#clock-cells = <0>;
380*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
381*4882a593Smuzhiyun						clocks = <&nand_x_clk>;
382*4882a593Smuzhiyun						clk-gate = <0xC8 10>;
383*4882a593Smuzhiyun					};
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun					nand_clk: nand_clk {
386*4882a593Smuzhiyun						#clock-cells = <0>;
387*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
388*4882a593Smuzhiyun						clocks = <&nand_x_clk>;
389*4882a593Smuzhiyun						fixed-divider = <4>;
390*4882a593Smuzhiyun						clk-gate = <0xC8 10>;
391*4882a593Smuzhiyun					};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun					spi_m_clk: spi_m_clk {
394*4882a593Smuzhiyun						#clock-cells = <0>;
395*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
396*4882a593Smuzhiyun						clocks = <&l4_main_clk>;
397*4882a593Smuzhiyun						clk-gate = <0xC8 9>;
398*4882a593Smuzhiyun					};
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun					usb_clk: usb_clk {
401*4882a593Smuzhiyun						#clock-cells = <0>;
402*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
403*4882a593Smuzhiyun						clocks = <&l4_mp_clk>;
404*4882a593Smuzhiyun						clk-gate = <0xC8 8>;
405*4882a593Smuzhiyun					};
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun					s2f_usr1_clk: s2f_usr1_clk {
408*4882a593Smuzhiyun						#clock-cells = <0>;
409*4882a593Smuzhiyun						compatible = "altr,socfpga-a10-gate-clk";
410*4882a593Smuzhiyun						clocks = <&peri_s2f_usr1_clk>;
411*4882a593Smuzhiyun						clk-gate = <0xC8 6>;
412*4882a593Smuzhiyun					};
413*4882a593Smuzhiyun				};
414*4882a593Smuzhiyun		};
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun		socfpga_axi_setup: stmmac-axi-config {
417*4882a593Smuzhiyun			snps,wr_osr_lmt = <0xf>;
418*4882a593Smuzhiyun			snps,rd_osr_lmt = <0xf>;
419*4882a593Smuzhiyun			snps,blen = <0 0 0 0 16 0 0>;
420*4882a593Smuzhiyun		};
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun		gmac0: ethernet@ff800000 {
423*4882a593Smuzhiyun			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.72a", "snps,dwmac";
424*4882a593Smuzhiyun			altr,sysmgr-syscon = <&sysmgr 0x44 0>;
425*4882a593Smuzhiyun			reg = <0xff800000 0x2000>;
426*4882a593Smuzhiyun			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
427*4882a593Smuzhiyun			interrupt-names = "macirq";
428*4882a593Smuzhiyun			/* Filled in by bootloader */
429*4882a593Smuzhiyun			mac-address = [00 00 00 00 00 00];
430*4882a593Smuzhiyun			snps,multicast-filter-bins = <256>;
431*4882a593Smuzhiyun			snps,perfect-filter-entries = <128>;
432*4882a593Smuzhiyun			tx-fifo-depth = <4096>;
433*4882a593Smuzhiyun			rx-fifo-depth = <16384>;
434*4882a593Smuzhiyun			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
435*4882a593Smuzhiyun			clock-names = "stmmaceth", "ptp_ref";
436*4882a593Smuzhiyun			resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
437*4882a593Smuzhiyun			reset-names = "stmmaceth", "stmmaceth-ocp";
438*4882a593Smuzhiyun			snps,axi-config = <&socfpga_axi_setup>;
439*4882a593Smuzhiyun			status = "disabled";
440*4882a593Smuzhiyun		};
441*4882a593Smuzhiyun
442*4882a593Smuzhiyun		gmac1: ethernet@ff802000 {
443*4882a593Smuzhiyun			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.72a", "snps,dwmac";
444*4882a593Smuzhiyun			altr,sysmgr-syscon = <&sysmgr 0x48 8>;
445*4882a593Smuzhiyun		        reg = <0xff802000 0x2000>;
446*4882a593Smuzhiyun			interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
447*4882a593Smuzhiyun			interrupt-names = "macirq";
448*4882a593Smuzhiyun			/* Filled in by bootloader */
449*4882a593Smuzhiyun			mac-address = [00 00 00 00 00 00];
450*4882a593Smuzhiyun			snps,multicast-filter-bins = <256>;
451*4882a593Smuzhiyun			snps,perfect-filter-entries = <128>;
452*4882a593Smuzhiyun			tx-fifo-depth = <4096>;
453*4882a593Smuzhiyun			rx-fifo-depth = <16384>;
454*4882a593Smuzhiyun			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
455*4882a593Smuzhiyun			clock-names = "stmmaceth", "ptp_ref";
456*4882a593Smuzhiyun			resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
457*4882a593Smuzhiyun			reset-names = "stmmaceth", "stmmaceth-ocp";
458*4882a593Smuzhiyun			snps,axi-config = <&socfpga_axi_setup>;
459*4882a593Smuzhiyun			status = "disabled";
460*4882a593Smuzhiyun		};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun		gmac2: ethernet@ff804000 {
463*4882a593Smuzhiyun			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.72a", "snps,dwmac";
464*4882a593Smuzhiyun			altr,sysmgr-syscon = <&sysmgr 0x4C 16>;
465*4882a593Smuzhiyun			reg = <0xff804000 0x2000>;
466*4882a593Smuzhiyun			interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
467*4882a593Smuzhiyun			interrupt-names = "macirq";
468*4882a593Smuzhiyun			/* Filled in by bootloader */
469*4882a593Smuzhiyun			mac-address = [00 00 00 00 00 00];
470*4882a593Smuzhiyun			snps,multicast-filter-bins = <256>;
471*4882a593Smuzhiyun			snps,perfect-filter-entries = <128>;
472*4882a593Smuzhiyun			tx-fifo-depth = <4096>;
473*4882a593Smuzhiyun			rx-fifo-depth = <16384>;
474*4882a593Smuzhiyun			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
475*4882a593Smuzhiyun			clock-names = "stmmaceth", "ptp_ref";
476*4882a593Smuzhiyun			resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
477*4882a593Smuzhiyun			reset-names = "stmmaceth", "stmmaceth-ocp";
478*4882a593Smuzhiyun			snps,axi-config = <&socfpga_axi_setup>;
479*4882a593Smuzhiyun			status = "disabled";
480*4882a593Smuzhiyun		};
481*4882a593Smuzhiyun
482*4882a593Smuzhiyun		gpio0: gpio@ffc02900 {
483*4882a593Smuzhiyun			#address-cells = <1>;
484*4882a593Smuzhiyun			#size-cells = <0>;
485*4882a593Smuzhiyun			compatible = "snps,dw-apb-gpio";
486*4882a593Smuzhiyun			reg = <0xffc02900 0x100>;
487*4882a593Smuzhiyun			resets = <&rst GPIO0_RESET>;
488*4882a593Smuzhiyun			status = "disabled";
489*4882a593Smuzhiyun
490*4882a593Smuzhiyun			porta: gpio-controller@0 {
491*4882a593Smuzhiyun				compatible = "snps,dw-apb-gpio-port";
492*4882a593Smuzhiyun				gpio-controller;
493*4882a593Smuzhiyun				#gpio-cells = <2>;
494*4882a593Smuzhiyun				snps,nr-gpios = <29>;
495*4882a593Smuzhiyun				reg = <0>;
496*4882a593Smuzhiyun				interrupt-controller;
497*4882a593Smuzhiyun				#interrupt-cells = <2>;
498*4882a593Smuzhiyun				interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
499*4882a593Smuzhiyun			};
500*4882a593Smuzhiyun		};
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun		gpio1: gpio@ffc02a00 {
503*4882a593Smuzhiyun			#address-cells = <1>;
504*4882a593Smuzhiyun			#size-cells = <0>;
505*4882a593Smuzhiyun			compatible = "snps,dw-apb-gpio";
506*4882a593Smuzhiyun			reg = <0xffc02a00 0x100>;
507*4882a593Smuzhiyun			resets = <&rst GPIO1_RESET>;
508*4882a593Smuzhiyun			status = "disabled";
509*4882a593Smuzhiyun
510*4882a593Smuzhiyun			portb: gpio-controller@0 {
511*4882a593Smuzhiyun				compatible = "snps,dw-apb-gpio-port";
512*4882a593Smuzhiyun				gpio-controller;
513*4882a593Smuzhiyun				#gpio-cells = <2>;
514*4882a593Smuzhiyun				snps,nr-gpios = <29>;
515*4882a593Smuzhiyun				reg = <0>;
516*4882a593Smuzhiyun				interrupt-controller;
517*4882a593Smuzhiyun				#interrupt-cells = <2>;
518*4882a593Smuzhiyun				interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
519*4882a593Smuzhiyun			};
520*4882a593Smuzhiyun		};
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun		gpio2: gpio@ffc02b00 {
523*4882a593Smuzhiyun			#address-cells = <1>;
524*4882a593Smuzhiyun			#size-cells = <0>;
525*4882a593Smuzhiyun			compatible = "snps,dw-apb-gpio";
526*4882a593Smuzhiyun			reg = <0xffc02b00 0x100>;
527*4882a593Smuzhiyun			resets = <&rst GPIO2_RESET>;
528*4882a593Smuzhiyun			status = "disabled";
529*4882a593Smuzhiyun
530*4882a593Smuzhiyun			portc: gpio-controller@0 {
531*4882a593Smuzhiyun				compatible = "snps,dw-apb-gpio-port";
532*4882a593Smuzhiyun				gpio-controller;
533*4882a593Smuzhiyun				#gpio-cells = <2>;
534*4882a593Smuzhiyun				snps,nr-gpios = <27>;
535*4882a593Smuzhiyun				reg = <0>;
536*4882a593Smuzhiyun				interrupt-controller;
537*4882a593Smuzhiyun				#interrupt-cells = <2>;
538*4882a593Smuzhiyun				interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
539*4882a593Smuzhiyun			};
540*4882a593Smuzhiyun		};
541*4882a593Smuzhiyun
542*4882a593Smuzhiyun		fpga_mgr: fpga-mgr@ffd03000 {
543*4882a593Smuzhiyun			compatible = "altr,socfpga-a10-fpga-mgr";
544*4882a593Smuzhiyun			reg = <0xffd03000 0x100
545*4882a593Smuzhiyun			       0xffcfe400 0x20>;
546*4882a593Smuzhiyun			clocks = <&l4_mp_clk>;
547*4882a593Smuzhiyun			resets = <&rst FPGAMGR_RESET>;
548*4882a593Smuzhiyun			reset-names = "fpgamgr";
549*4882a593Smuzhiyun		};
550*4882a593Smuzhiyun
551*4882a593Smuzhiyun		i2c0: i2c@ffc02200 {
552*4882a593Smuzhiyun			#address-cells = <1>;
553*4882a593Smuzhiyun			#size-cells = <0>;
554*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
555*4882a593Smuzhiyun			reg = <0xffc02200 0x100>;
556*4882a593Smuzhiyun			interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
557*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
558*4882a593Smuzhiyun			resets = <&rst I2C0_RESET>;
559*4882a593Smuzhiyun			status = "disabled";
560*4882a593Smuzhiyun		};
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun		i2c1: i2c@ffc02300 {
563*4882a593Smuzhiyun			#address-cells = <1>;
564*4882a593Smuzhiyun			#size-cells = <0>;
565*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
566*4882a593Smuzhiyun			reg = <0xffc02300 0x100>;
567*4882a593Smuzhiyun			interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
568*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
569*4882a593Smuzhiyun			resets = <&rst I2C1_RESET>;
570*4882a593Smuzhiyun			status = "disabled";
571*4882a593Smuzhiyun		};
572*4882a593Smuzhiyun
573*4882a593Smuzhiyun		i2c2: i2c@ffc02400 {
574*4882a593Smuzhiyun			#address-cells = <1>;
575*4882a593Smuzhiyun			#size-cells = <0>;
576*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
577*4882a593Smuzhiyun			reg = <0xffc02400 0x100>;
578*4882a593Smuzhiyun			interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
579*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
580*4882a593Smuzhiyun			resets = <&rst I2C2_RESET>;
581*4882a593Smuzhiyun			status = "disabled";
582*4882a593Smuzhiyun		};
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun		i2c3: i2c@ffc02500 {
585*4882a593Smuzhiyun			#address-cells = <1>;
586*4882a593Smuzhiyun			#size-cells = <0>;
587*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
588*4882a593Smuzhiyun			reg = <0xffc02500 0x100>;
589*4882a593Smuzhiyun			interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
590*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
591*4882a593Smuzhiyun			resets = <&rst I2C3_RESET>;
592*4882a593Smuzhiyun			status = "disabled";
593*4882a593Smuzhiyun		};
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun		i2c4: i2c@ffc02600 {
596*4882a593Smuzhiyun			#address-cells = <1>;
597*4882a593Smuzhiyun			#size-cells = <0>;
598*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
599*4882a593Smuzhiyun			reg = <0xffc02600 0x100>;
600*4882a593Smuzhiyun			interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
601*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
602*4882a593Smuzhiyun			resets = <&rst I2C4_RESET>;
603*4882a593Smuzhiyun			status = "disabled";
604*4882a593Smuzhiyun		};
605*4882a593Smuzhiyun
606*4882a593Smuzhiyun		spi0: spi@ffda4000 {
607*4882a593Smuzhiyun			compatible = "snps,dw-apb-ssi";
608*4882a593Smuzhiyun			#address-cells = <1>;
609*4882a593Smuzhiyun			#size-cells = <0>;
610*4882a593Smuzhiyun			reg = <0xffda4000 0x100>;
611*4882a593Smuzhiyun			interrupts = <0 101 4>;
612*4882a593Smuzhiyun			num-cs = <4>;
613*4882a593Smuzhiyun			/*32bit_access;*/
614*4882a593Smuzhiyun			clocks = <&spi_m_clk>;
615*4882a593Smuzhiyun			resets = <&rst SPIM0_RESET>;
616*4882a593Smuzhiyun			reset-names = "spi";
617*4882a593Smuzhiyun			status = "disabled";
618*4882a593Smuzhiyun		};
619*4882a593Smuzhiyun
620*4882a593Smuzhiyun		spi1: spi@ffda5000 {
621*4882a593Smuzhiyun			compatible = "snps,dw-apb-ssi";
622*4882a593Smuzhiyun			#address-cells = <1>;
623*4882a593Smuzhiyun			#size-cells = <0>;
624*4882a593Smuzhiyun			reg = <0xffda5000 0x100>;
625*4882a593Smuzhiyun			interrupts = <0 102 4>;
626*4882a593Smuzhiyun			num-cs = <4>;
627*4882a593Smuzhiyun			/*32bit_access;*/
628*4882a593Smuzhiyun			tx-dma-channel = <&pdma 16>;
629*4882a593Smuzhiyun			rx-dma-channel = <&pdma 17>;
630*4882a593Smuzhiyun			clocks = <&spi_m_clk>;
631*4882a593Smuzhiyun			resets = <&rst SPIM1_RESET>;
632*4882a593Smuzhiyun			reset-names = "spi";
633*4882a593Smuzhiyun			status = "disabled";
634*4882a593Smuzhiyun		};
635*4882a593Smuzhiyun
636*4882a593Smuzhiyun		sdr: sdr@ffcfb100 {
637*4882a593Smuzhiyun			compatible = "altr,sdr-ctl", "syscon";
638*4882a593Smuzhiyun			reg = <0xffcfb100 0x80>;
639*4882a593Smuzhiyun		};
640*4882a593Smuzhiyun
641*4882a593Smuzhiyun		L2: cache-controller@fffff000 {
642*4882a593Smuzhiyun			compatible = "arm,pl310-cache";
643*4882a593Smuzhiyun			reg = <0xfffff000 0x1000>;
644*4882a593Smuzhiyun			interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
645*4882a593Smuzhiyun			cache-unified;
646*4882a593Smuzhiyun			cache-level = <2>;
647*4882a593Smuzhiyun			prefetch-data = <1>;
648*4882a593Smuzhiyun			prefetch-instr = <1>;
649*4882a593Smuzhiyun			arm,shared-override;
650*4882a593Smuzhiyun		};
651*4882a593Smuzhiyun
652*4882a593Smuzhiyun		mmc: dwmmc0@ff808000 {
653*4882a593Smuzhiyun			#address-cells = <1>;
654*4882a593Smuzhiyun			#size-cells = <0>;
655*4882a593Smuzhiyun			compatible = "altr,socfpga-dw-mshc";
656*4882a593Smuzhiyun			reg = <0xff808000 0x1000>;
657*4882a593Smuzhiyun			interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
658*4882a593Smuzhiyun			fifo-depth = <0x400>;
659*4882a593Smuzhiyun			clocks = <&l4_mp_clk>, <&sdmmc_clk>;
660*4882a593Smuzhiyun			clock-names = "biu", "ciu";
661*4882a593Smuzhiyun			resets = <&rst SDMMC_RESET>;
662*4882a593Smuzhiyun			status = "disabled";
663*4882a593Smuzhiyun		};
664*4882a593Smuzhiyun
665*4882a593Smuzhiyun		nand: nand@ffb90000 {
666*4882a593Smuzhiyun			#address-cells = <1>;
667*4882a593Smuzhiyun			#size-cells = <0>;
668*4882a593Smuzhiyun			compatible = "altr,socfpga-denali-nand";
669*4882a593Smuzhiyun			reg = <0xffb90000 0x72000>,
670*4882a593Smuzhiyun			      <0xffb80000 0x10000>;
671*4882a593Smuzhiyun			reg-names = "nand_data", "denali_reg";
672*4882a593Smuzhiyun			interrupts = <0 99 4>;
673*4882a593Smuzhiyun			clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
674*4882a593Smuzhiyun			clock-names = "nand", "nand_x", "ecc";
675*4882a593Smuzhiyun			resets = <&rst NAND_RESET>;
676*4882a593Smuzhiyun			status = "disabled";
677*4882a593Smuzhiyun		};
678*4882a593Smuzhiyun
679*4882a593Smuzhiyun		ocram: sram@ffe00000 {
680*4882a593Smuzhiyun			compatible = "mmio-sram";
681*4882a593Smuzhiyun			reg = <0xffe00000 0x40000>;
682*4882a593Smuzhiyun		};
683*4882a593Smuzhiyun
684*4882a593Smuzhiyun		eccmgr: eccmgr {
685*4882a593Smuzhiyun			compatible = "altr,socfpga-a10-ecc-manager";
686*4882a593Smuzhiyun			altr,sysmgr-syscon = <&sysmgr>;
687*4882a593Smuzhiyun			#address-cells = <1>;
688*4882a593Smuzhiyun			#size-cells = <1>;
689*4882a593Smuzhiyun			interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
690*4882a593Smuzhiyun				     <0 0 IRQ_TYPE_LEVEL_HIGH>;
691*4882a593Smuzhiyun			interrupt-controller;
692*4882a593Smuzhiyun			#interrupt-cells = <2>;
693*4882a593Smuzhiyun			ranges;
694*4882a593Smuzhiyun
695*4882a593Smuzhiyun			sdramedac {
696*4882a593Smuzhiyun				compatible = "altr,sdram-edac-a10";
697*4882a593Smuzhiyun				altr,sdr-syscon = <&sdr>;
698*4882a593Smuzhiyun				interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
699*4882a593Smuzhiyun					     <49 IRQ_TYPE_LEVEL_HIGH>;
700*4882a593Smuzhiyun			};
701*4882a593Smuzhiyun
702*4882a593Smuzhiyun			l2-ecc@ffd06010 {
703*4882a593Smuzhiyun				compatible = "altr,socfpga-a10-l2-ecc";
704*4882a593Smuzhiyun				reg = <0xffd06010 0x4>;
705*4882a593Smuzhiyun				interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
706*4882a593Smuzhiyun					     <32 IRQ_TYPE_LEVEL_HIGH>;
707*4882a593Smuzhiyun			};
708*4882a593Smuzhiyun
709*4882a593Smuzhiyun			ocram-ecc@ff8c3000 {
710*4882a593Smuzhiyun				compatible = "altr,socfpga-a10-ocram-ecc";
711*4882a593Smuzhiyun				reg = <0xff8c3000 0x400>;
712*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
713*4882a593Smuzhiyun					     <33 IRQ_TYPE_LEVEL_HIGH>;
714*4882a593Smuzhiyun			};
715*4882a593Smuzhiyun
716*4882a593Smuzhiyun			emac0-rx-ecc@ff8c0800 {
717*4882a593Smuzhiyun				compatible = "altr,socfpga-eth-mac-ecc";
718*4882a593Smuzhiyun				reg = <0xff8c0800 0x400>;
719*4882a593Smuzhiyun				altr,ecc-parent = <&gmac0>;
720*4882a593Smuzhiyun				interrupts = <4 IRQ_TYPE_LEVEL_HIGH>,
721*4882a593Smuzhiyun					     <36 IRQ_TYPE_LEVEL_HIGH>;
722*4882a593Smuzhiyun			};
723*4882a593Smuzhiyun
724*4882a593Smuzhiyun			emac0-tx-ecc@ff8c0c00 {
725*4882a593Smuzhiyun				compatible = "altr,socfpga-eth-mac-ecc";
726*4882a593Smuzhiyun				reg = <0xff8c0c00 0x400>;
727*4882a593Smuzhiyun				altr,ecc-parent = <&gmac0>;
728*4882a593Smuzhiyun				interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
729*4882a593Smuzhiyun					     <37 IRQ_TYPE_LEVEL_HIGH>;
730*4882a593Smuzhiyun			};
731*4882a593Smuzhiyun
732*4882a593Smuzhiyun			dma-ecc@ff8c8000 {
733*4882a593Smuzhiyun				compatible = "altr,socfpga-dma-ecc";
734*4882a593Smuzhiyun				reg = <0xff8c8000 0x400>;
735*4882a593Smuzhiyun				altr,ecc-parent = <&pdma>;
736*4882a593Smuzhiyun				interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
737*4882a593Smuzhiyun					     <42 IRQ_TYPE_LEVEL_HIGH>;
738*4882a593Smuzhiyun			};
739*4882a593Smuzhiyun
740*4882a593Smuzhiyun			usb0-ecc@ff8c8800 {
741*4882a593Smuzhiyun				compatible = "altr,socfpga-usb-ecc";
742*4882a593Smuzhiyun				reg = <0xff8c8800 0x400>;
743*4882a593Smuzhiyun				altr,ecc-parent = <&usb0>;
744*4882a593Smuzhiyun				interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
745*4882a593Smuzhiyun					     <34 IRQ_TYPE_LEVEL_HIGH>;
746*4882a593Smuzhiyun			};
747*4882a593Smuzhiyun		};
748*4882a593Smuzhiyun
749*4882a593Smuzhiyun		qspi: spi@ff809000 {
750*4882a593Smuzhiyun			compatible = "cdns,qspi-nor";
751*4882a593Smuzhiyun			#address-cells = <1>;
752*4882a593Smuzhiyun			#size-cells = <0>;
753*4882a593Smuzhiyun			reg = <0xff809000 0x100>,
754*4882a593Smuzhiyun			      <0xffa00000 0x100000>;
755*4882a593Smuzhiyun			interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
756*4882a593Smuzhiyun			cdns,fifo-depth = <128>;
757*4882a593Smuzhiyun			cdns,fifo-width = <4>;
758*4882a593Smuzhiyun			cdns,trigger-address = <0x00000000>;
759*4882a593Smuzhiyun			clocks = <&qspi_clk>;
760*4882a593Smuzhiyun			resets = <&rst QSPI_RESET>, <&rst QSPI_OCP_RESET>;
761*4882a593Smuzhiyun			reset-names = "qspi", "qspi-ocp";
762*4882a593Smuzhiyun			status = "disabled";
763*4882a593Smuzhiyun		};
764*4882a593Smuzhiyun
765*4882a593Smuzhiyun		rst: rstmgr@ffd05000 {
766*4882a593Smuzhiyun			#reset-cells = <1>;
767*4882a593Smuzhiyun			compatible = "altr,rst-mgr";
768*4882a593Smuzhiyun			reg = <0xffd05000 0x100>;
769*4882a593Smuzhiyun			altr,modrst-offset = <0x20>;
770*4882a593Smuzhiyun		};
771*4882a593Smuzhiyun
772*4882a593Smuzhiyun		scu: snoop-control-unit@ffffc000 {
773*4882a593Smuzhiyun			compatible = "arm,cortex-a9-scu";
774*4882a593Smuzhiyun			reg = <0xffffc000 0x100>;
775*4882a593Smuzhiyun		};
776*4882a593Smuzhiyun
777*4882a593Smuzhiyun		sysmgr: sysmgr@ffd06000 {
778*4882a593Smuzhiyun			compatible = "altr,sys-mgr", "syscon";
779*4882a593Smuzhiyun			reg = <0xffd06000 0x300>;
780*4882a593Smuzhiyun			cpu1-start-addr = <0xffd06230>;
781*4882a593Smuzhiyun		};
782*4882a593Smuzhiyun
783*4882a593Smuzhiyun		/* Local timer */
784*4882a593Smuzhiyun		timer@ffffc600 {
785*4882a593Smuzhiyun			compatible = "arm,cortex-a9-twd-timer";
786*4882a593Smuzhiyun			reg = <0xffffc600 0x100>;
787*4882a593Smuzhiyun			interrupts = <1 13 0xf01>;
788*4882a593Smuzhiyun			clocks = <&mpu_periph_clk>;
789*4882a593Smuzhiyun		};
790*4882a593Smuzhiyun
791*4882a593Smuzhiyun		timer0: timer0@ffc02700 {
792*4882a593Smuzhiyun			compatible = "snps,dw-apb-timer";
793*4882a593Smuzhiyun			interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
794*4882a593Smuzhiyun			reg = <0xffc02700 0x100>;
795*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
796*4882a593Smuzhiyun			clock-names = "timer";
797*4882a593Smuzhiyun			resets = <&rst SPTIMER0_RESET>;
798*4882a593Smuzhiyun			reset-names = "timer";
799*4882a593Smuzhiyun		};
800*4882a593Smuzhiyun
801*4882a593Smuzhiyun		timer1: timer1@ffc02800 {
802*4882a593Smuzhiyun			compatible = "snps,dw-apb-timer";
803*4882a593Smuzhiyun			interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
804*4882a593Smuzhiyun			reg = <0xffc02800 0x100>;
805*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
806*4882a593Smuzhiyun			clock-names = "timer";
807*4882a593Smuzhiyun			resets = <&rst SPTIMER1_RESET>;
808*4882a593Smuzhiyun			reset-names = "timer";
809*4882a593Smuzhiyun		};
810*4882a593Smuzhiyun
811*4882a593Smuzhiyun		timer2: timer2@ffd00000 {
812*4882a593Smuzhiyun			compatible = "snps,dw-apb-timer";
813*4882a593Smuzhiyun			interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
814*4882a593Smuzhiyun			reg = <0xffd00000 0x100>;
815*4882a593Smuzhiyun			clocks = <&l4_sys_free_clk>;
816*4882a593Smuzhiyun			clock-names = "timer";
817*4882a593Smuzhiyun			resets = <&rst L4SYSTIMER0_RESET>;
818*4882a593Smuzhiyun			reset-names = "timer";
819*4882a593Smuzhiyun		};
820*4882a593Smuzhiyun
821*4882a593Smuzhiyun		timer3: timer3@ffd00100 {
822*4882a593Smuzhiyun			compatible = "snps,dw-apb-timer";
823*4882a593Smuzhiyun			interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
824*4882a593Smuzhiyun			reg = <0xffd00100 0x100>;
825*4882a593Smuzhiyun			clocks = <&l4_sys_free_clk>;
826*4882a593Smuzhiyun			clock-names = "timer";
827*4882a593Smuzhiyun			resets = <&rst L4SYSTIMER1_RESET>;
828*4882a593Smuzhiyun			reset-names = "timer";
829*4882a593Smuzhiyun		};
830*4882a593Smuzhiyun
831*4882a593Smuzhiyun		uart0: serial0@ffc02000 {
832*4882a593Smuzhiyun			compatible = "snps,dw-apb-uart";
833*4882a593Smuzhiyun			reg = <0xffc02000 0x100>;
834*4882a593Smuzhiyun			interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
835*4882a593Smuzhiyun			reg-shift = <2>;
836*4882a593Smuzhiyun			reg-io-width = <4>;
837*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
838*4882a593Smuzhiyun			resets = <&rst UART0_RESET>;
839*4882a593Smuzhiyun			status = "disabled";
840*4882a593Smuzhiyun		};
841*4882a593Smuzhiyun
842*4882a593Smuzhiyun		uart1: serial1@ffc02100 {
843*4882a593Smuzhiyun			compatible = "snps,dw-apb-uart";
844*4882a593Smuzhiyun			reg = <0xffc02100 0x100>;
845*4882a593Smuzhiyun			interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
846*4882a593Smuzhiyun			reg-shift = <2>;
847*4882a593Smuzhiyun			reg-io-width = <4>;
848*4882a593Smuzhiyun			clocks = <&l4_sp_clk>;
849*4882a593Smuzhiyun			resets = <&rst UART1_RESET>;
850*4882a593Smuzhiyun			status = "disabled";
851*4882a593Smuzhiyun		};
852*4882a593Smuzhiyun
853*4882a593Smuzhiyun		usbphy0: usbphy {
854*4882a593Smuzhiyun			#phy-cells = <0>;
855*4882a593Smuzhiyun			compatible = "usb-nop-xceiv";
856*4882a593Smuzhiyun			status = "okay";
857*4882a593Smuzhiyun		};
858*4882a593Smuzhiyun
859*4882a593Smuzhiyun		usb0: usb@ffb00000 {
860*4882a593Smuzhiyun			compatible = "snps,dwc2";
861*4882a593Smuzhiyun			reg = <0xffb00000 0xffff>;
862*4882a593Smuzhiyun			interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
863*4882a593Smuzhiyun			clocks = <&usb_clk>;
864*4882a593Smuzhiyun			clock-names = "otg";
865*4882a593Smuzhiyun			resets = <&rst USB0_RESET>;
866*4882a593Smuzhiyun			reset-names = "dwc2";
867*4882a593Smuzhiyun			phys = <&usbphy0>;
868*4882a593Smuzhiyun			phy-names = "usb2-phy";
869*4882a593Smuzhiyun			status = "disabled";
870*4882a593Smuzhiyun		};
871*4882a593Smuzhiyun
872*4882a593Smuzhiyun		usb1: usb@ffb40000 {
873*4882a593Smuzhiyun			compatible = "snps,dwc2";
874*4882a593Smuzhiyun			reg = <0xffb40000 0xffff>;
875*4882a593Smuzhiyun			interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
876*4882a593Smuzhiyun			clocks = <&usb_clk>;
877*4882a593Smuzhiyun			clock-names = "otg";
878*4882a593Smuzhiyun			resets = <&rst USB1_RESET>;
879*4882a593Smuzhiyun			reset-names = "dwc2";
880*4882a593Smuzhiyun			phys = <&usbphy0>;
881*4882a593Smuzhiyun			phy-names = "usb2-phy";
882*4882a593Smuzhiyun			status = "disabled";
883*4882a593Smuzhiyun		};
884*4882a593Smuzhiyun
885*4882a593Smuzhiyun		watchdog0: watchdog@ffd00200 {
886*4882a593Smuzhiyun			compatible = "snps,dw-wdt";
887*4882a593Smuzhiyun			reg = <0xffd00200 0x100>;
888*4882a593Smuzhiyun			interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
889*4882a593Smuzhiyun			clocks = <&l4_sys_free_clk>;
890*4882a593Smuzhiyun			resets = <&rst L4WD0_RESET>;
891*4882a593Smuzhiyun			status = "disabled";
892*4882a593Smuzhiyun		};
893*4882a593Smuzhiyun
894*4882a593Smuzhiyun		watchdog1: watchdog@ffd00300 {
895*4882a593Smuzhiyun			compatible = "snps,dw-wdt";
896*4882a593Smuzhiyun			reg = <0xffd00300 0x100>;
897*4882a593Smuzhiyun			interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
898*4882a593Smuzhiyun			clocks = <&l4_sys_free_clk>;
899*4882a593Smuzhiyun			resets = <&rst L4WD1_RESET>;
900*4882a593Smuzhiyun			status = "disabled";
901*4882a593Smuzhiyun		};
902*4882a593Smuzhiyun	};
903*4882a593Smuzhiyun};
904