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