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