xref: /freebsd-src/sys/contrib/device-tree/src/arm/intel/socfpga/socfpga.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * Copyright (C) 2012 Altera <www.altera.com>
4*f126890aSEmmanuel Vadot */
5*f126890aSEmmanuel Vadot
6*f126890aSEmmanuel Vadot#include <dt-bindings/reset/altr,rst-mgr.h>
7*f126890aSEmmanuel Vadot
8*f126890aSEmmanuel Vadot/ {
9*f126890aSEmmanuel Vadot	#address-cells = <1>;
10*f126890aSEmmanuel Vadot	#size-cells = <1>;
11*f126890aSEmmanuel Vadot
12*f126890aSEmmanuel Vadot	aliases {
13*f126890aSEmmanuel Vadot		serial0 = &uart0;
14*f126890aSEmmanuel Vadot		serial1 = &uart1;
15*f126890aSEmmanuel Vadot		timer0 = &timer0;
16*f126890aSEmmanuel Vadot		timer1 = &timer1;
17*f126890aSEmmanuel Vadot		timer2 = &timer2;
18*f126890aSEmmanuel Vadot		timer3 = &timer3;
19*f126890aSEmmanuel Vadot	};
20*f126890aSEmmanuel Vadot
21*f126890aSEmmanuel Vadot	cpus {
22*f126890aSEmmanuel Vadot		#address-cells = <1>;
23*f126890aSEmmanuel Vadot		#size-cells = <0>;
24*f126890aSEmmanuel Vadot		enable-method = "altr,socfpga-smp";
25*f126890aSEmmanuel Vadot
26*f126890aSEmmanuel Vadot		cpu0: cpu@0 {
27*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
28*f126890aSEmmanuel Vadot			device_type = "cpu";
29*f126890aSEmmanuel Vadot			reg = <0>;
30*f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
31*f126890aSEmmanuel Vadot		};
32*f126890aSEmmanuel Vadot		cpu1: cpu@1 {
33*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
34*f126890aSEmmanuel Vadot			device_type = "cpu";
35*f126890aSEmmanuel Vadot			reg = <1>;
36*f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
37*f126890aSEmmanuel Vadot		};
38*f126890aSEmmanuel Vadot	};
39*f126890aSEmmanuel Vadot
40*f126890aSEmmanuel Vadot	pmu: pmu@ff111000 {
41*f126890aSEmmanuel Vadot		compatible = "arm,cortex-a9-pmu";
42*f126890aSEmmanuel Vadot		interrupt-parent = <&intc>;
43*f126890aSEmmanuel Vadot		interrupts = <0 176 4>, <0 177 4>;
44*f126890aSEmmanuel Vadot		interrupt-affinity = <&cpu0>, <&cpu1>;
45*f126890aSEmmanuel Vadot		reg = <0xff111000 0x1000>,
46*f126890aSEmmanuel Vadot		      <0xff113000 0x1000>;
47*f126890aSEmmanuel Vadot	};
48*f126890aSEmmanuel Vadot
49*f126890aSEmmanuel Vadot	intc: interrupt-controller@fffed000 {
50*f126890aSEmmanuel Vadot		compatible = "arm,cortex-a9-gic";
51*f126890aSEmmanuel Vadot		#interrupt-cells = <3>;
52*f126890aSEmmanuel Vadot		interrupt-controller;
53*f126890aSEmmanuel Vadot		reg = <0xfffed000 0x1000>,
54*f126890aSEmmanuel Vadot		      <0xfffec100 0x100>;
55*f126890aSEmmanuel Vadot	};
56*f126890aSEmmanuel Vadot
57*f126890aSEmmanuel Vadot	soc {
58*f126890aSEmmanuel Vadot		#address-cells = <1>;
59*f126890aSEmmanuel Vadot		#size-cells = <1>;
60*f126890aSEmmanuel Vadot		compatible = "simple-bus";
61*f126890aSEmmanuel Vadot		device_type = "soc";
62*f126890aSEmmanuel Vadot		interrupt-parent = <&intc>;
63*f126890aSEmmanuel Vadot		ranges;
64*f126890aSEmmanuel Vadot
65*f126890aSEmmanuel Vadot		amba {
66*f126890aSEmmanuel Vadot			compatible = "simple-bus";
67*f126890aSEmmanuel Vadot			#address-cells = <1>;
68*f126890aSEmmanuel Vadot			#size-cells = <1>;
69*f126890aSEmmanuel Vadot			ranges;
70*f126890aSEmmanuel Vadot
71*f126890aSEmmanuel Vadot			pdma: pdma@ffe01000 {
72*f126890aSEmmanuel Vadot				compatible = "arm,pl330", "arm,primecell";
73*f126890aSEmmanuel Vadot				reg = <0xffe01000 0x1000>;
74*f126890aSEmmanuel Vadot				interrupts = <0 104 4>,
75*f126890aSEmmanuel Vadot					     <0 105 4>,
76*f126890aSEmmanuel Vadot					     <0 106 4>,
77*f126890aSEmmanuel Vadot					     <0 107 4>,
78*f126890aSEmmanuel Vadot					     <0 108 4>,
79*f126890aSEmmanuel Vadot					     <0 109 4>,
80*f126890aSEmmanuel Vadot					     <0 110 4>,
81*f126890aSEmmanuel Vadot					     <0 111 4>;
82*f126890aSEmmanuel Vadot				#dma-cells = <1>;
83*f126890aSEmmanuel Vadot				clocks = <&l4_main_clk>;
84*f126890aSEmmanuel Vadot				clock-names = "apb_pclk";
85*f126890aSEmmanuel Vadot				resets = <&rst DMA_RESET>;
86*f126890aSEmmanuel Vadot				reset-names = "dma";
87*f126890aSEmmanuel Vadot			};
88*f126890aSEmmanuel Vadot		};
89*f126890aSEmmanuel Vadot
90*f126890aSEmmanuel Vadot		base_fpga_region {
91*f126890aSEmmanuel Vadot			compatible = "fpga-region";
92*f126890aSEmmanuel Vadot			fpga-mgr = <&fpgamgr0>;
93*f126890aSEmmanuel Vadot
94*f126890aSEmmanuel Vadot			#address-cells = <0x1>;
95*f126890aSEmmanuel Vadot			#size-cells = <0x1>;
96*f126890aSEmmanuel Vadot		};
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot		can0: can@ffc00000 {
99*f126890aSEmmanuel Vadot			compatible = "bosch,d_can";
100*f126890aSEmmanuel Vadot			reg = <0xffc00000 0x1000>;
101*f126890aSEmmanuel Vadot			interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>;
102*f126890aSEmmanuel Vadot			clocks = <&can0_clk>;
103*f126890aSEmmanuel Vadot			resets = <&rst CAN0_RESET>;
104*f126890aSEmmanuel Vadot			status = "disabled";
105*f126890aSEmmanuel Vadot		};
106*f126890aSEmmanuel Vadot
107*f126890aSEmmanuel Vadot		can1: can@ffc01000 {
108*f126890aSEmmanuel Vadot			compatible = "bosch,d_can";
109*f126890aSEmmanuel Vadot			reg = <0xffc01000 0x1000>;
110*f126890aSEmmanuel Vadot			interrupts = <0 135 4>, <0 136 4>, <0 137 4>, <0 138 4>;
111*f126890aSEmmanuel Vadot			clocks = <&can1_clk>;
112*f126890aSEmmanuel Vadot			resets = <&rst CAN1_RESET>;
113*f126890aSEmmanuel Vadot			status = "disabled";
114*f126890aSEmmanuel Vadot		};
115*f126890aSEmmanuel Vadot
116*f126890aSEmmanuel Vadot		clkmgr@ffd04000 {
117*f126890aSEmmanuel Vadot				compatible = "altr,clk-mgr";
118*f126890aSEmmanuel Vadot				reg = <0xffd04000 0x1000>;
119*f126890aSEmmanuel Vadot
120*f126890aSEmmanuel Vadot				clocks {
121*f126890aSEmmanuel Vadot					#address-cells = <1>;
122*f126890aSEmmanuel Vadot					#size-cells = <0>;
123*f126890aSEmmanuel Vadot
124*f126890aSEmmanuel Vadot					osc1: osc1 {
125*f126890aSEmmanuel Vadot						#clock-cells = <0>;
126*f126890aSEmmanuel Vadot						compatible = "fixed-clock";
127*f126890aSEmmanuel Vadot					};
128*f126890aSEmmanuel Vadot
129*f126890aSEmmanuel Vadot					osc2: osc2 {
130*f126890aSEmmanuel Vadot						#clock-cells = <0>;
131*f126890aSEmmanuel Vadot						compatible = "fixed-clock";
132*f126890aSEmmanuel Vadot					};
133*f126890aSEmmanuel Vadot
134*f126890aSEmmanuel Vadot					f2s_periph_ref_clk: f2s_periph_ref_clk {
135*f126890aSEmmanuel Vadot						#clock-cells = <0>;
136*f126890aSEmmanuel Vadot						compatible = "fixed-clock";
137*f126890aSEmmanuel Vadot					};
138*f126890aSEmmanuel Vadot
139*f126890aSEmmanuel Vadot					f2s_sdram_ref_clk: f2s_sdram_ref_clk {
140*f126890aSEmmanuel Vadot						#clock-cells = <0>;
141*f126890aSEmmanuel Vadot						compatible = "fixed-clock";
142*f126890aSEmmanuel Vadot					};
143*f126890aSEmmanuel Vadot
144*f126890aSEmmanuel Vadot					main_pll: main_pll@40 {
145*f126890aSEmmanuel Vadot						#address-cells = <1>;
146*f126890aSEmmanuel Vadot						#size-cells = <0>;
147*f126890aSEmmanuel Vadot						#clock-cells = <0>;
148*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-pll-clock";
149*f126890aSEmmanuel Vadot						clocks = <&osc1>;
150*f126890aSEmmanuel Vadot						reg = <0x40>;
151*f126890aSEmmanuel Vadot
152*f126890aSEmmanuel Vadot						mpuclk: mpuclk@48 {
153*f126890aSEmmanuel Vadot							#clock-cells = <0>;
154*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
155*f126890aSEmmanuel Vadot							clocks = <&main_pll>;
156*f126890aSEmmanuel Vadot							div-reg = <0xe0 0 9>;
157*f126890aSEmmanuel Vadot							reg = <0x48>;
158*f126890aSEmmanuel Vadot						};
159*f126890aSEmmanuel Vadot
160*f126890aSEmmanuel Vadot						mainclk: mainclk@4c {
161*f126890aSEmmanuel Vadot							#clock-cells = <0>;
162*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
163*f126890aSEmmanuel Vadot							clocks = <&main_pll>;
164*f126890aSEmmanuel Vadot							div-reg = <0xe4 0 9>;
165*f126890aSEmmanuel Vadot							reg = <0x4C>;
166*f126890aSEmmanuel Vadot						};
167*f126890aSEmmanuel Vadot
168*f126890aSEmmanuel Vadot						dbg_base_clk: dbg_base_clk@50 {
169*f126890aSEmmanuel Vadot							#clock-cells = <0>;
170*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
171*f126890aSEmmanuel Vadot							clocks = <&main_pll>, <&osc1>;
172*f126890aSEmmanuel Vadot							div-reg = <0xe8 0 9>;
173*f126890aSEmmanuel Vadot							reg = <0x50>;
174*f126890aSEmmanuel Vadot						};
175*f126890aSEmmanuel Vadot
176*f126890aSEmmanuel Vadot						main_qspi_clk: main_qspi_clk@54 {
177*f126890aSEmmanuel Vadot							#clock-cells = <0>;
178*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
179*f126890aSEmmanuel Vadot							clocks = <&main_pll>;
180*f126890aSEmmanuel Vadot							reg = <0x54>;
181*f126890aSEmmanuel Vadot						};
182*f126890aSEmmanuel Vadot
183*f126890aSEmmanuel Vadot						main_nand_sdmmc_clk: main_nand_sdmmc_clk@58 {
184*f126890aSEmmanuel Vadot							#clock-cells = <0>;
185*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
186*f126890aSEmmanuel Vadot							clocks = <&main_pll>;
187*f126890aSEmmanuel Vadot							reg = <0x58>;
188*f126890aSEmmanuel Vadot						};
189*f126890aSEmmanuel Vadot
190*f126890aSEmmanuel Vadot						cfg_h2f_usr0_clk: cfg_h2f_usr0_clk@5c {
191*f126890aSEmmanuel Vadot							#clock-cells = <0>;
192*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
193*f126890aSEmmanuel Vadot							clocks = <&main_pll>;
194*f126890aSEmmanuel Vadot							reg = <0x5C>;
195*f126890aSEmmanuel Vadot						};
196*f126890aSEmmanuel Vadot					};
197*f126890aSEmmanuel Vadot
198*f126890aSEmmanuel Vadot					periph_pll: periph_pll@80 {
199*f126890aSEmmanuel Vadot						#address-cells = <1>;
200*f126890aSEmmanuel Vadot						#size-cells = <0>;
201*f126890aSEmmanuel Vadot						#clock-cells = <0>;
202*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-pll-clock";
203*f126890aSEmmanuel Vadot						clocks = <&osc1>, <&osc2>, <&f2s_periph_ref_clk>;
204*f126890aSEmmanuel Vadot						reg = <0x80>;
205*f126890aSEmmanuel Vadot
206*f126890aSEmmanuel Vadot						emac0_clk: emac0_clk@88 {
207*f126890aSEmmanuel Vadot							#clock-cells = <0>;
208*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
209*f126890aSEmmanuel Vadot							clocks = <&periph_pll>;
210*f126890aSEmmanuel Vadot							reg = <0x88>;
211*f126890aSEmmanuel Vadot						};
212*f126890aSEmmanuel Vadot
213*f126890aSEmmanuel Vadot						emac1_clk: emac1_clk@8c {
214*f126890aSEmmanuel Vadot							#clock-cells = <0>;
215*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
216*f126890aSEmmanuel Vadot							clocks = <&periph_pll>;
217*f126890aSEmmanuel Vadot							reg = <0x8C>;
218*f126890aSEmmanuel Vadot						};
219*f126890aSEmmanuel Vadot
220*f126890aSEmmanuel Vadot						per_qspi_clk: per_qsi_clk@90 {
221*f126890aSEmmanuel Vadot							#clock-cells = <0>;
222*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
223*f126890aSEmmanuel Vadot							clocks = <&periph_pll>;
224*f126890aSEmmanuel Vadot							reg = <0x90>;
225*f126890aSEmmanuel Vadot						};
226*f126890aSEmmanuel Vadot
227*f126890aSEmmanuel Vadot						per_nand_mmc_clk: per_nand_mmc_clk@94 {
228*f126890aSEmmanuel Vadot							#clock-cells = <0>;
229*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
230*f126890aSEmmanuel Vadot							clocks = <&periph_pll>;
231*f126890aSEmmanuel Vadot							reg = <0x94>;
232*f126890aSEmmanuel Vadot						};
233*f126890aSEmmanuel Vadot
234*f126890aSEmmanuel Vadot						per_base_clk: per_base_clk@98 {
235*f126890aSEmmanuel Vadot							#clock-cells = <0>;
236*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
237*f126890aSEmmanuel Vadot							clocks = <&periph_pll>;
238*f126890aSEmmanuel Vadot							reg = <0x98>;
239*f126890aSEmmanuel Vadot						};
240*f126890aSEmmanuel Vadot
241*f126890aSEmmanuel Vadot						h2f_usr1_clk: h2f_usr1_clk@9c {
242*f126890aSEmmanuel Vadot							#clock-cells = <0>;
243*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
244*f126890aSEmmanuel Vadot							clocks = <&periph_pll>;
245*f126890aSEmmanuel Vadot							reg = <0x9C>;
246*f126890aSEmmanuel Vadot						};
247*f126890aSEmmanuel Vadot					};
248*f126890aSEmmanuel Vadot
249*f126890aSEmmanuel Vadot					sdram_pll: sdram_pll@c0 {
250*f126890aSEmmanuel Vadot						#address-cells = <1>;
251*f126890aSEmmanuel Vadot						#size-cells = <0>;
252*f126890aSEmmanuel Vadot						#clock-cells = <0>;
253*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-pll-clock";
254*f126890aSEmmanuel Vadot						clocks = <&osc1>, <&osc2>, <&f2s_sdram_ref_clk>;
255*f126890aSEmmanuel Vadot						reg = <0xC0>;
256*f126890aSEmmanuel Vadot
257*f126890aSEmmanuel Vadot						ddr_dqs_clk: ddr_dqs_clk@c8 {
258*f126890aSEmmanuel Vadot							#clock-cells = <0>;
259*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
260*f126890aSEmmanuel Vadot							clocks = <&sdram_pll>;
261*f126890aSEmmanuel Vadot							reg = <0xC8>;
262*f126890aSEmmanuel Vadot						};
263*f126890aSEmmanuel Vadot
264*f126890aSEmmanuel Vadot						ddr_2x_dqs_clk: ddr_2x_dqs_clk@cc {
265*f126890aSEmmanuel Vadot							#clock-cells = <0>;
266*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
267*f126890aSEmmanuel Vadot							clocks = <&sdram_pll>;
268*f126890aSEmmanuel Vadot							reg = <0xCC>;
269*f126890aSEmmanuel Vadot						};
270*f126890aSEmmanuel Vadot
271*f126890aSEmmanuel Vadot						ddr_dq_clk: ddr_dq_clk@d0 {
272*f126890aSEmmanuel Vadot							#clock-cells = <0>;
273*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
274*f126890aSEmmanuel Vadot							clocks = <&sdram_pll>;
275*f126890aSEmmanuel Vadot							reg = <0xD0>;
276*f126890aSEmmanuel Vadot						};
277*f126890aSEmmanuel Vadot
278*f126890aSEmmanuel Vadot						h2f_usr2_clk: h2f_usr2_clk@d4 {
279*f126890aSEmmanuel Vadot							#clock-cells = <0>;
280*f126890aSEmmanuel Vadot							compatible = "altr,socfpga-perip-clk";
281*f126890aSEmmanuel Vadot							clocks = <&sdram_pll>;
282*f126890aSEmmanuel Vadot							reg = <0xD4>;
283*f126890aSEmmanuel Vadot						};
284*f126890aSEmmanuel Vadot					};
285*f126890aSEmmanuel Vadot
286*f126890aSEmmanuel Vadot					mpu_periph_clk: mpu_periph_clk {
287*f126890aSEmmanuel Vadot						#clock-cells = <0>;
288*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-perip-clk";
289*f126890aSEmmanuel Vadot						clocks = <&mpuclk>;
290*f126890aSEmmanuel Vadot						fixed-divider = <4>;
291*f126890aSEmmanuel Vadot					};
292*f126890aSEmmanuel Vadot
293*f126890aSEmmanuel Vadot					mpu_l2_ram_clk: mpu_l2_ram_clk {
294*f126890aSEmmanuel Vadot						#clock-cells = <0>;
295*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-perip-clk";
296*f126890aSEmmanuel Vadot						clocks = <&mpuclk>;
297*f126890aSEmmanuel Vadot						fixed-divider = <2>;
298*f126890aSEmmanuel Vadot					};
299*f126890aSEmmanuel Vadot
300*f126890aSEmmanuel Vadot					l4_main_clk: l4_main_clk {
301*f126890aSEmmanuel Vadot						#clock-cells = <0>;
302*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
303*f126890aSEmmanuel Vadot						clocks = <&mainclk>;
304*f126890aSEmmanuel Vadot						clk-gate = <0x60 0>;
305*f126890aSEmmanuel Vadot					};
306*f126890aSEmmanuel Vadot
307*f126890aSEmmanuel Vadot					l3_main_clk: l3_main_clk {
308*f126890aSEmmanuel Vadot						#clock-cells = <0>;
309*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-perip-clk";
310*f126890aSEmmanuel Vadot						clocks = <&mainclk>;
311*f126890aSEmmanuel Vadot						fixed-divider = <1>;
312*f126890aSEmmanuel Vadot					};
313*f126890aSEmmanuel Vadot
314*f126890aSEmmanuel Vadot					l3_mp_clk: l3_mp_clk {
315*f126890aSEmmanuel Vadot						#clock-cells = <0>;
316*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
317*f126890aSEmmanuel Vadot						clocks = <&mainclk>;
318*f126890aSEmmanuel Vadot						div-reg = <0x64 0 2>;
319*f126890aSEmmanuel Vadot						clk-gate = <0x60 1>;
320*f126890aSEmmanuel Vadot					};
321*f126890aSEmmanuel Vadot
322*f126890aSEmmanuel Vadot					l3_sp_clk: l3_sp_clk {
323*f126890aSEmmanuel Vadot						#clock-cells = <0>;
324*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
325*f126890aSEmmanuel Vadot						clocks = <&l3_mp_clk>;
326*f126890aSEmmanuel Vadot						div-reg = <0x64 2 2>;
327*f126890aSEmmanuel Vadot					};
328*f126890aSEmmanuel Vadot
329*f126890aSEmmanuel Vadot					l4_mp_clk: l4_mp_clk {
330*f126890aSEmmanuel Vadot						#clock-cells = <0>;
331*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
332*f126890aSEmmanuel Vadot						clocks = <&mainclk>, <&per_base_clk>;
333*f126890aSEmmanuel Vadot						div-reg = <0x64 4 3>;
334*f126890aSEmmanuel Vadot						clk-gate = <0x60 2>;
335*f126890aSEmmanuel Vadot					};
336*f126890aSEmmanuel Vadot
337*f126890aSEmmanuel Vadot					l4_sp_clk: l4_sp_clk {
338*f126890aSEmmanuel Vadot						#clock-cells = <0>;
339*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
340*f126890aSEmmanuel Vadot						clocks = <&mainclk>, <&per_base_clk>;
341*f126890aSEmmanuel Vadot						div-reg = <0x64 7 3>;
342*f126890aSEmmanuel Vadot						clk-gate = <0x60 3>;
343*f126890aSEmmanuel Vadot					};
344*f126890aSEmmanuel Vadot
345*f126890aSEmmanuel Vadot					dbg_at_clk: dbg_at_clk {
346*f126890aSEmmanuel Vadot						#clock-cells = <0>;
347*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
348*f126890aSEmmanuel Vadot						clocks = <&dbg_base_clk>;
349*f126890aSEmmanuel Vadot						div-reg = <0x68 0 2>;
350*f126890aSEmmanuel Vadot						clk-gate = <0x60 4>;
351*f126890aSEmmanuel Vadot					};
352*f126890aSEmmanuel Vadot
353*f126890aSEmmanuel Vadot					dbg_clk: dbg_clk {
354*f126890aSEmmanuel Vadot						#clock-cells = <0>;
355*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
356*f126890aSEmmanuel Vadot						clocks = <&dbg_at_clk>;
357*f126890aSEmmanuel Vadot						div-reg = <0x68 2 2>;
358*f126890aSEmmanuel Vadot						clk-gate = <0x60 5>;
359*f126890aSEmmanuel Vadot					};
360*f126890aSEmmanuel Vadot
361*f126890aSEmmanuel Vadot					dbg_trace_clk: dbg_trace_clk {
362*f126890aSEmmanuel Vadot						#clock-cells = <0>;
363*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
364*f126890aSEmmanuel Vadot						clocks = <&dbg_base_clk>;
365*f126890aSEmmanuel Vadot						div-reg = <0x6C 0 3>;
366*f126890aSEmmanuel Vadot						clk-gate = <0x60 6>;
367*f126890aSEmmanuel Vadot					};
368*f126890aSEmmanuel Vadot
369*f126890aSEmmanuel Vadot					dbg_timer_clk: dbg_timer_clk {
370*f126890aSEmmanuel Vadot						#clock-cells = <0>;
371*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
372*f126890aSEmmanuel Vadot						clocks = <&dbg_base_clk>;
373*f126890aSEmmanuel Vadot						clk-gate = <0x60 7>;
374*f126890aSEmmanuel Vadot					};
375*f126890aSEmmanuel Vadot
376*f126890aSEmmanuel Vadot					cfg_clk: cfg_clk {
377*f126890aSEmmanuel Vadot						#clock-cells = <0>;
378*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
379*f126890aSEmmanuel Vadot						clocks = <&cfg_h2f_usr0_clk>;
380*f126890aSEmmanuel Vadot						clk-gate = <0x60 8>;
381*f126890aSEmmanuel Vadot					};
382*f126890aSEmmanuel Vadot
383*f126890aSEmmanuel Vadot					h2f_user0_clk: h2f_user0_clk {
384*f126890aSEmmanuel Vadot						#clock-cells = <0>;
385*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
386*f126890aSEmmanuel Vadot						clocks = <&cfg_h2f_usr0_clk>;
387*f126890aSEmmanuel Vadot						clk-gate = <0x60 9>;
388*f126890aSEmmanuel Vadot					};
389*f126890aSEmmanuel Vadot
390*f126890aSEmmanuel Vadot					emac_0_clk: emac_0_clk {
391*f126890aSEmmanuel Vadot						#clock-cells = <0>;
392*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
393*f126890aSEmmanuel Vadot						clocks = <&emac0_clk>;
394*f126890aSEmmanuel Vadot						clk-gate = <0xa0 0>;
395*f126890aSEmmanuel Vadot					};
396*f126890aSEmmanuel Vadot
397*f126890aSEmmanuel Vadot					emac_1_clk: emac_1_clk {
398*f126890aSEmmanuel Vadot						#clock-cells = <0>;
399*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
400*f126890aSEmmanuel Vadot						clocks = <&emac1_clk>;
401*f126890aSEmmanuel Vadot						clk-gate = <0xa0 1>;
402*f126890aSEmmanuel Vadot					};
403*f126890aSEmmanuel Vadot
404*f126890aSEmmanuel Vadot					usb_mp_clk: usb_mp_clk {
405*f126890aSEmmanuel Vadot						#clock-cells = <0>;
406*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
407*f126890aSEmmanuel Vadot						clocks = <&per_base_clk>;
408*f126890aSEmmanuel Vadot						clk-gate = <0xa0 2>;
409*f126890aSEmmanuel Vadot						div-reg = <0xa4 0 3>;
410*f126890aSEmmanuel Vadot					};
411*f126890aSEmmanuel Vadot
412*f126890aSEmmanuel Vadot					spi_m_clk: spi_m_clk {
413*f126890aSEmmanuel Vadot						#clock-cells = <0>;
414*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
415*f126890aSEmmanuel Vadot						clocks = <&per_base_clk>;
416*f126890aSEmmanuel Vadot						clk-gate = <0xa0 3>;
417*f126890aSEmmanuel Vadot						div-reg = <0xa4 3 3>;
418*f126890aSEmmanuel Vadot					};
419*f126890aSEmmanuel Vadot
420*f126890aSEmmanuel Vadot					can0_clk: can0_clk {
421*f126890aSEmmanuel Vadot						#clock-cells = <0>;
422*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
423*f126890aSEmmanuel Vadot						clocks = <&per_base_clk>;
424*f126890aSEmmanuel Vadot						clk-gate = <0xa0 4>;
425*f126890aSEmmanuel Vadot						div-reg = <0xa4 6 3>;
426*f126890aSEmmanuel Vadot					};
427*f126890aSEmmanuel Vadot
428*f126890aSEmmanuel Vadot					can1_clk: can1_clk {
429*f126890aSEmmanuel Vadot						#clock-cells = <0>;
430*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
431*f126890aSEmmanuel Vadot						clocks = <&per_base_clk>;
432*f126890aSEmmanuel Vadot						clk-gate = <0xa0 5>;
433*f126890aSEmmanuel Vadot						div-reg = <0xa4 9 3>;
434*f126890aSEmmanuel Vadot					};
435*f126890aSEmmanuel Vadot
436*f126890aSEmmanuel Vadot					gpio_db_clk: gpio_db_clk {
437*f126890aSEmmanuel Vadot						#clock-cells = <0>;
438*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
439*f126890aSEmmanuel Vadot						clocks = <&per_base_clk>;
440*f126890aSEmmanuel Vadot						clk-gate = <0xa0 6>;
441*f126890aSEmmanuel Vadot						div-reg = <0xa8 0 24>;
442*f126890aSEmmanuel Vadot					};
443*f126890aSEmmanuel Vadot
444*f126890aSEmmanuel Vadot					h2f_user1_clk: h2f_user1_clk {
445*f126890aSEmmanuel Vadot						#clock-cells = <0>;
446*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
447*f126890aSEmmanuel Vadot						clocks = <&h2f_usr1_clk>;
448*f126890aSEmmanuel Vadot						clk-gate = <0xa0 7>;
449*f126890aSEmmanuel Vadot					};
450*f126890aSEmmanuel Vadot
451*f126890aSEmmanuel Vadot					sdmmc_clk: sdmmc_clk {
452*f126890aSEmmanuel Vadot						#clock-cells = <0>;
453*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
454*f126890aSEmmanuel Vadot						clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
455*f126890aSEmmanuel Vadot						clk-gate = <0xa0 8>;
456*f126890aSEmmanuel Vadot					};
457*f126890aSEmmanuel Vadot
458*f126890aSEmmanuel Vadot					sdmmc_clk_divided: sdmmc_clk_divided {
459*f126890aSEmmanuel Vadot						#clock-cells = <0>;
460*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
461*f126890aSEmmanuel Vadot						clocks = <&sdmmc_clk>;
462*f126890aSEmmanuel Vadot						clk-gate = <0xa0 8>;
463*f126890aSEmmanuel Vadot						fixed-divider = <4>;
464*f126890aSEmmanuel Vadot					};
465*f126890aSEmmanuel Vadot
466*f126890aSEmmanuel Vadot					nand_x_clk: nand_x_clk {
467*f126890aSEmmanuel Vadot						#clock-cells = <0>;
468*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
469*f126890aSEmmanuel Vadot						clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
470*f126890aSEmmanuel Vadot						clk-gate = <0xa0 9>;
471*f126890aSEmmanuel Vadot					};
472*f126890aSEmmanuel Vadot
473*f126890aSEmmanuel Vadot					nand_ecc_clk: nand_ecc_clk {
474*f126890aSEmmanuel Vadot						#clock-cells = <0>;
475*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
476*f126890aSEmmanuel Vadot						clocks = <&nand_x_clk>;
477*f126890aSEmmanuel Vadot						clk-gate = <0xa0 9>;
478*f126890aSEmmanuel Vadot					};
479*f126890aSEmmanuel Vadot
480*f126890aSEmmanuel Vadot					nand_clk: nand_clk {
481*f126890aSEmmanuel Vadot						#clock-cells = <0>;
482*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
483*f126890aSEmmanuel Vadot						clocks = <&nand_x_clk>;
484*f126890aSEmmanuel Vadot						clk-gate = <0xa0 10>;
485*f126890aSEmmanuel Vadot						fixed-divider = <4>;
486*f126890aSEmmanuel Vadot					};
487*f126890aSEmmanuel Vadot
488*f126890aSEmmanuel Vadot					qspi_clk: qspi_clk {
489*f126890aSEmmanuel Vadot						#clock-cells = <0>;
490*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
491*f126890aSEmmanuel Vadot						clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>;
492*f126890aSEmmanuel Vadot						clk-gate = <0xa0 11>;
493*f126890aSEmmanuel Vadot					};
494*f126890aSEmmanuel Vadot
495*f126890aSEmmanuel Vadot					ddr_dqs_clk_gate: ddr_dqs_clk_gate {
496*f126890aSEmmanuel Vadot						#clock-cells = <0>;
497*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
498*f126890aSEmmanuel Vadot						clocks = <&ddr_dqs_clk>;
499*f126890aSEmmanuel Vadot						clk-gate = <0xd8 0>;
500*f126890aSEmmanuel Vadot					};
501*f126890aSEmmanuel Vadot
502*f126890aSEmmanuel Vadot					ddr_2x_dqs_clk_gate: ddr_2x_dqs_clk_gate {
503*f126890aSEmmanuel Vadot						#clock-cells = <0>;
504*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
505*f126890aSEmmanuel Vadot						clocks = <&ddr_2x_dqs_clk>;
506*f126890aSEmmanuel Vadot						clk-gate = <0xd8 1>;
507*f126890aSEmmanuel Vadot					};
508*f126890aSEmmanuel Vadot
509*f126890aSEmmanuel Vadot					ddr_dq_clk_gate: ddr_dq_clk_gate {
510*f126890aSEmmanuel Vadot						#clock-cells = <0>;
511*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
512*f126890aSEmmanuel Vadot						clocks = <&ddr_dq_clk>;
513*f126890aSEmmanuel Vadot						clk-gate = <0xd8 2>;
514*f126890aSEmmanuel Vadot					};
515*f126890aSEmmanuel Vadot
516*f126890aSEmmanuel Vadot					h2f_user2_clk: h2f_user2_clk {
517*f126890aSEmmanuel Vadot						#clock-cells = <0>;
518*f126890aSEmmanuel Vadot						compatible = "altr,socfpga-gate-clk";
519*f126890aSEmmanuel Vadot						clocks = <&h2f_usr2_clk>;
520*f126890aSEmmanuel Vadot						clk-gate = <0xd8 3>;
521*f126890aSEmmanuel Vadot					};
522*f126890aSEmmanuel Vadot
523*f126890aSEmmanuel Vadot				};
524*f126890aSEmmanuel Vadot		};
525*f126890aSEmmanuel Vadot
526*f126890aSEmmanuel Vadot		fpga_bridge0: fpga_bridge@ff400000 {
527*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-lwhps2fpga-bridge";
528*f126890aSEmmanuel Vadot			reg = <0xff400000 0x100000>;
529*f126890aSEmmanuel Vadot			resets = <&rst LWHPS2FPGA_RESET>;
530*f126890aSEmmanuel Vadot			clocks = <&l4_main_clk>;
531*f126890aSEmmanuel Vadot			status = "disabled";
532*f126890aSEmmanuel Vadot		};
533*f126890aSEmmanuel Vadot
534*f126890aSEmmanuel Vadot		fpga_bridge1: fpga_bridge@ff500000 {
535*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-hps2fpga-bridge";
536*f126890aSEmmanuel Vadot			reg = <0xff500000 0x10000>;
537*f126890aSEmmanuel Vadot			resets = <&rst HPS2FPGA_RESET>;
538*f126890aSEmmanuel Vadot			clocks = <&l4_main_clk>;
539*f126890aSEmmanuel Vadot			status = "disabled";
540*f126890aSEmmanuel Vadot		};
541*f126890aSEmmanuel Vadot
542*f126890aSEmmanuel Vadot		fpga_bridge2: fpga-bridge@ff600000 {
543*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-fpga2hps-bridge";
544*f126890aSEmmanuel Vadot			reg = <0xff600000 0x100000>;
545*f126890aSEmmanuel Vadot			resets = <&rst FPGA2HPS_RESET>;
546*f126890aSEmmanuel Vadot			clocks = <&l4_main_clk>;
547*f126890aSEmmanuel Vadot			status = "disabled";
548*f126890aSEmmanuel Vadot		};
549*f126890aSEmmanuel Vadot
550*f126890aSEmmanuel Vadot		fpga_bridge3: fpga-bridge@ffc25080 {
551*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-fpga2sdram-bridge";
552*f126890aSEmmanuel Vadot			reg = <0xffc25080 0x4>;
553*f126890aSEmmanuel Vadot			status = "disabled";
554*f126890aSEmmanuel Vadot		};
555*f126890aSEmmanuel Vadot
556*f126890aSEmmanuel Vadot		fpgamgr0: fpgamgr@ff706000 {
557*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-fpga-mgr";
558*f126890aSEmmanuel Vadot			reg = <0xff706000 0x1000
559*f126890aSEmmanuel Vadot			       0xffb90000 0x4>;
560*f126890aSEmmanuel Vadot			interrupts = <0 175 4>;
561*f126890aSEmmanuel Vadot		};
562*f126890aSEmmanuel Vadot
563*f126890aSEmmanuel Vadot		socfpga_axi_setup: stmmac-axi-config {
564*f126890aSEmmanuel Vadot			snps,wr_osr_lmt = <0xf>;
565*f126890aSEmmanuel Vadot			snps,rd_osr_lmt = <0xf>;
566*f126890aSEmmanuel Vadot			snps,blen = <0 0 0 0 16 0 0>;
567*f126890aSEmmanuel Vadot		};
568*f126890aSEmmanuel Vadot
569*f126890aSEmmanuel Vadot		gmac0: ethernet@ff700000 {
570*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
571*f126890aSEmmanuel Vadot			altr,sysmgr-syscon = <&sysmgr 0x60 0>;
572*f126890aSEmmanuel Vadot			reg = <0xff700000 0x2000>;
573*f126890aSEmmanuel Vadot			interrupts = <0 115 4>;
574*f126890aSEmmanuel Vadot			interrupt-names = "macirq";
575*f126890aSEmmanuel Vadot			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
576*f126890aSEmmanuel Vadot			clocks = <&emac_0_clk>;
577*f126890aSEmmanuel Vadot			clock-names = "stmmaceth";
578*f126890aSEmmanuel Vadot			resets = <&rst EMAC0_RESET>;
579*f126890aSEmmanuel Vadot			reset-names = "stmmaceth";
580*f126890aSEmmanuel Vadot			snps,multicast-filter-bins = <256>;
581*f126890aSEmmanuel Vadot			snps,perfect-filter-entries = <128>;
582*f126890aSEmmanuel Vadot			tx-fifo-depth = <4096>;
583*f126890aSEmmanuel Vadot			rx-fifo-depth = <4096>;
584*f126890aSEmmanuel Vadot			snps,axi-config = <&socfpga_axi_setup>;
585*f126890aSEmmanuel Vadot			status = "disabled";
586*f126890aSEmmanuel Vadot		};
587*f126890aSEmmanuel Vadot
588*f126890aSEmmanuel Vadot		gmac1: ethernet@ff702000 {
589*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
590*f126890aSEmmanuel Vadot			altr,sysmgr-syscon = <&sysmgr 0x60 2>;
591*f126890aSEmmanuel Vadot			reg = <0xff702000 0x2000>;
592*f126890aSEmmanuel Vadot			interrupts = <0 120 4>;
593*f126890aSEmmanuel Vadot			interrupt-names = "macirq";
594*f126890aSEmmanuel Vadot			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
595*f126890aSEmmanuel Vadot			clocks = <&emac_1_clk>;
596*f126890aSEmmanuel Vadot			clock-names = "stmmaceth";
597*f126890aSEmmanuel Vadot			resets = <&rst EMAC1_RESET>;
598*f126890aSEmmanuel Vadot			reset-names = "stmmaceth";
599*f126890aSEmmanuel Vadot			snps,multicast-filter-bins = <256>;
600*f126890aSEmmanuel Vadot			snps,perfect-filter-entries = <128>;
601*f126890aSEmmanuel Vadot			tx-fifo-depth = <4096>;
602*f126890aSEmmanuel Vadot			rx-fifo-depth = <4096>;
603*f126890aSEmmanuel Vadot			snps,axi-config = <&socfpga_axi_setup>;
604*f126890aSEmmanuel Vadot			status = "disabled";
605*f126890aSEmmanuel Vadot		};
606*f126890aSEmmanuel Vadot
607*f126890aSEmmanuel Vadot		gpio0: gpio@ff708000 {
608*f126890aSEmmanuel Vadot			#address-cells = <1>;
609*f126890aSEmmanuel Vadot			#size-cells = <0>;
610*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-gpio";
611*f126890aSEmmanuel Vadot			reg = <0xff708000 0x1000>;
612*f126890aSEmmanuel Vadot			clocks = <&l4_mp_clk>;
613*f126890aSEmmanuel Vadot			resets = <&rst GPIO0_RESET>;
614*f126890aSEmmanuel Vadot			status = "disabled";
615*f126890aSEmmanuel Vadot
616*f126890aSEmmanuel Vadot			porta: gpio-controller@0 {
617*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio-port";
618*f126890aSEmmanuel Vadot				gpio-controller;
619*f126890aSEmmanuel Vadot				#gpio-cells = <2>;
620*f126890aSEmmanuel Vadot				snps,nr-gpios = <29>;
621*f126890aSEmmanuel Vadot				reg = <0>;
622*f126890aSEmmanuel Vadot				interrupt-controller;
623*f126890aSEmmanuel Vadot				#interrupt-cells = <2>;
624*f126890aSEmmanuel Vadot				interrupts = <0 164 4>;
625*f126890aSEmmanuel Vadot			};
626*f126890aSEmmanuel Vadot		};
627*f126890aSEmmanuel Vadot
628*f126890aSEmmanuel Vadot		gpio1: gpio@ff709000 {
629*f126890aSEmmanuel Vadot			#address-cells = <1>;
630*f126890aSEmmanuel Vadot			#size-cells = <0>;
631*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-gpio";
632*f126890aSEmmanuel Vadot			reg = <0xff709000 0x1000>;
633*f126890aSEmmanuel Vadot			clocks = <&l4_mp_clk>;
634*f126890aSEmmanuel Vadot			resets = <&rst GPIO1_RESET>;
635*f126890aSEmmanuel Vadot			status = "disabled";
636*f126890aSEmmanuel Vadot
637*f126890aSEmmanuel Vadot			portb: gpio-controller@0 {
638*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio-port";
639*f126890aSEmmanuel Vadot				gpio-controller;
640*f126890aSEmmanuel Vadot				#gpio-cells = <2>;
641*f126890aSEmmanuel Vadot				snps,nr-gpios = <29>;
642*f126890aSEmmanuel Vadot				reg = <0>;
643*f126890aSEmmanuel Vadot				interrupt-controller;
644*f126890aSEmmanuel Vadot				#interrupt-cells = <2>;
645*f126890aSEmmanuel Vadot				interrupts = <0 165 4>;
646*f126890aSEmmanuel Vadot			};
647*f126890aSEmmanuel Vadot		};
648*f126890aSEmmanuel Vadot
649*f126890aSEmmanuel Vadot		gpio2: gpio@ff70a000 {
650*f126890aSEmmanuel Vadot			#address-cells = <1>;
651*f126890aSEmmanuel Vadot			#size-cells = <0>;
652*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-gpio";
653*f126890aSEmmanuel Vadot			reg = <0xff70a000 0x1000>;
654*f126890aSEmmanuel Vadot			clocks = <&l4_mp_clk>;
655*f126890aSEmmanuel Vadot			resets = <&rst GPIO2_RESET>;
656*f126890aSEmmanuel Vadot			status = "disabled";
657*f126890aSEmmanuel Vadot
658*f126890aSEmmanuel Vadot			portc: gpio-controller@0 {
659*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio-port";
660*f126890aSEmmanuel Vadot				gpio-controller;
661*f126890aSEmmanuel Vadot				#gpio-cells = <2>;
662*f126890aSEmmanuel Vadot				snps,nr-gpios = <27>;
663*f126890aSEmmanuel Vadot				reg = <0>;
664*f126890aSEmmanuel Vadot				interrupt-controller;
665*f126890aSEmmanuel Vadot				#interrupt-cells = <2>;
666*f126890aSEmmanuel Vadot				interrupts = <0 166 4>;
667*f126890aSEmmanuel Vadot			};
668*f126890aSEmmanuel Vadot		};
669*f126890aSEmmanuel Vadot
670*f126890aSEmmanuel Vadot		i2c0: i2c@ffc04000 {
671*f126890aSEmmanuel Vadot			#address-cells = <1>;
672*f126890aSEmmanuel Vadot			#size-cells = <0>;
673*f126890aSEmmanuel Vadot			compatible = "snps,designware-i2c";
674*f126890aSEmmanuel Vadot			reg = <0xffc04000 0x1000>;
675*f126890aSEmmanuel Vadot			resets = <&rst I2C0_RESET>;
676*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
677*f126890aSEmmanuel Vadot			interrupts = <0 158 0x4>;
678*f126890aSEmmanuel Vadot			status = "disabled";
679*f126890aSEmmanuel Vadot		};
680*f126890aSEmmanuel Vadot
681*f126890aSEmmanuel Vadot		i2c1: i2c@ffc05000 {
682*f126890aSEmmanuel Vadot			#address-cells = <1>;
683*f126890aSEmmanuel Vadot			#size-cells = <0>;
684*f126890aSEmmanuel Vadot			compatible = "snps,designware-i2c";
685*f126890aSEmmanuel Vadot			reg = <0xffc05000 0x1000>;
686*f126890aSEmmanuel Vadot			resets = <&rst I2C1_RESET>;
687*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
688*f126890aSEmmanuel Vadot			interrupts = <0 159 0x4>;
689*f126890aSEmmanuel Vadot			status = "disabled";
690*f126890aSEmmanuel Vadot		};
691*f126890aSEmmanuel Vadot
692*f126890aSEmmanuel Vadot		i2c2: i2c@ffc06000 {
693*f126890aSEmmanuel Vadot			#address-cells = <1>;
694*f126890aSEmmanuel Vadot			#size-cells = <0>;
695*f126890aSEmmanuel Vadot			compatible = "snps,designware-i2c";
696*f126890aSEmmanuel Vadot			reg = <0xffc06000 0x1000>;
697*f126890aSEmmanuel Vadot			resets = <&rst I2C2_RESET>;
698*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
699*f126890aSEmmanuel Vadot			interrupts = <0 160 0x4>;
700*f126890aSEmmanuel Vadot			status = "disabled";
701*f126890aSEmmanuel Vadot		};
702*f126890aSEmmanuel Vadot
703*f126890aSEmmanuel Vadot		i2c3: i2c@ffc07000 {
704*f126890aSEmmanuel Vadot			#address-cells = <1>;
705*f126890aSEmmanuel Vadot			#size-cells = <0>;
706*f126890aSEmmanuel Vadot			compatible = "snps,designware-i2c";
707*f126890aSEmmanuel Vadot			reg = <0xffc07000 0x1000>;
708*f126890aSEmmanuel Vadot			resets = <&rst I2C3_RESET>;
709*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
710*f126890aSEmmanuel Vadot			interrupts = <0 161 0x4>;
711*f126890aSEmmanuel Vadot			status = "disabled";
712*f126890aSEmmanuel Vadot		};
713*f126890aSEmmanuel Vadot
714*f126890aSEmmanuel Vadot		eccmgr: eccmgr {
715*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-ecc-manager";
716*f126890aSEmmanuel Vadot			#address-cells = <1>;
717*f126890aSEmmanuel Vadot			#size-cells = <1>;
718*f126890aSEmmanuel Vadot			ranges;
719*f126890aSEmmanuel Vadot
720*f126890aSEmmanuel Vadot			l2-ecc@ffd08140 {
721*f126890aSEmmanuel Vadot				compatible = "altr,socfpga-l2-ecc";
722*f126890aSEmmanuel Vadot				reg = <0xffd08140 0x4>;
723*f126890aSEmmanuel Vadot				interrupts = <0 36 1>, <0 37 1>;
724*f126890aSEmmanuel Vadot			};
725*f126890aSEmmanuel Vadot
726*f126890aSEmmanuel Vadot			ocram-ecc@ffd08144 {
727*f126890aSEmmanuel Vadot				compatible = "altr,socfpga-ocram-ecc";
728*f126890aSEmmanuel Vadot				reg = <0xffd08144 0x4>;
729*f126890aSEmmanuel Vadot				iram = <&ocram>;
730*f126890aSEmmanuel Vadot				interrupts = <0 178 1>, <0 179 1>;
731*f126890aSEmmanuel Vadot			};
732*f126890aSEmmanuel Vadot		};
733*f126890aSEmmanuel Vadot
734*f126890aSEmmanuel Vadot		L2: cache-controller@fffef000 {
735*f126890aSEmmanuel Vadot			compatible = "arm,pl310-cache";
736*f126890aSEmmanuel Vadot			reg = <0xfffef000 0x1000>;
737*f126890aSEmmanuel Vadot			interrupts = <0 38 0x04>;
738*f126890aSEmmanuel Vadot			cache-unified;
739*f126890aSEmmanuel Vadot			cache-level = <2>;
740*f126890aSEmmanuel Vadot			arm,tag-latency = <1 1 1>;
741*f126890aSEmmanuel Vadot			arm,data-latency = <2 1 1>;
742*f126890aSEmmanuel Vadot			prefetch-data = <1>;
743*f126890aSEmmanuel Vadot			prefetch-instr = <1>;
744*f126890aSEmmanuel Vadot			arm,shared-override;
745*f126890aSEmmanuel Vadot			arm,double-linefill = <1>;
746*f126890aSEmmanuel Vadot			arm,double-linefill-incr = <0>;
747*f126890aSEmmanuel Vadot			arm,double-linefill-wrap = <1>;
748*f126890aSEmmanuel Vadot			arm,prefetch-drop = <0>;
749*f126890aSEmmanuel Vadot			arm,prefetch-offset = <7>;
750*f126890aSEmmanuel Vadot		};
751*f126890aSEmmanuel Vadot
752*f126890aSEmmanuel Vadot		l3regs@ff800000 {
753*f126890aSEmmanuel Vadot			compatible = "altr,l3regs", "syscon";
754*f126890aSEmmanuel Vadot			reg = <0xff800000 0x1000>;
755*f126890aSEmmanuel Vadot		};
756*f126890aSEmmanuel Vadot
757*f126890aSEmmanuel Vadot		mmc: mmc@ff704000 {
758*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-dw-mshc";
759*f126890aSEmmanuel Vadot			reg = <0xff704000 0x1000>;
760*f126890aSEmmanuel Vadot			interrupts = <0 139 4>;
761*f126890aSEmmanuel Vadot			fifo-depth = <0x400>;
762*f126890aSEmmanuel Vadot			#address-cells = <1>;
763*f126890aSEmmanuel Vadot			#size-cells = <0>;
764*f126890aSEmmanuel Vadot			clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>;
765*f126890aSEmmanuel Vadot			clock-names = "biu", "ciu";
766*f126890aSEmmanuel Vadot			resets = <&rst SDMMC_RESET>;
767*f126890aSEmmanuel Vadot			altr,sysmgr-syscon = <&sysmgr 0x108 3>;
768*f126890aSEmmanuel Vadot			status = "disabled";
769*f126890aSEmmanuel Vadot		};
770*f126890aSEmmanuel Vadot
771*f126890aSEmmanuel Vadot		nand0: nand@ff900000 {
772*f126890aSEmmanuel Vadot			#address-cells = <0x1>;
773*f126890aSEmmanuel Vadot			#size-cells = <0x0>;
774*f126890aSEmmanuel Vadot			compatible = "altr,socfpga-denali-nand";
775*f126890aSEmmanuel Vadot			reg = <0xff900000 0x100000>,
776*f126890aSEmmanuel Vadot			      <0xffb80000 0x10000>;
777*f126890aSEmmanuel Vadot			reg-names = "nand_data", "denali_reg";
778*f126890aSEmmanuel Vadot			interrupts = <0x0 0x90 0x4>;
779*f126890aSEmmanuel Vadot			clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
780*f126890aSEmmanuel Vadot			clock-names = "nand", "nand_x", "ecc";
781*f126890aSEmmanuel Vadot			resets = <&rst NAND_RESET>;
782*f126890aSEmmanuel Vadot			status = "disabled";
783*f126890aSEmmanuel Vadot		};
784*f126890aSEmmanuel Vadot
785*f126890aSEmmanuel Vadot		ocram: sram@ffff0000 {
786*f126890aSEmmanuel Vadot			compatible = "mmio-sram";
787*f126890aSEmmanuel Vadot			reg = <0xffff0000 0x10000>;
788*f126890aSEmmanuel Vadot		};
789*f126890aSEmmanuel Vadot
790*f126890aSEmmanuel Vadot		qspi: spi@ff705000 {
791*f126890aSEmmanuel Vadot			compatible = "intel,socfpga-qspi", "cdns,qspi-nor";
792*f126890aSEmmanuel Vadot			#address-cells = <1>;
793*f126890aSEmmanuel Vadot			#size-cells = <0>;
794*f126890aSEmmanuel Vadot			reg = <0xff705000 0x1000>,
795*f126890aSEmmanuel Vadot			      <0xffa00000 0x1000>;
796*f126890aSEmmanuel Vadot			interrupts = <0 151 4>;
797*f126890aSEmmanuel Vadot			cdns,fifo-depth = <128>;
798*f126890aSEmmanuel Vadot			cdns,fifo-width = <4>;
799*f126890aSEmmanuel Vadot			cdns,trigger-address = <0x00000000>;
800*f126890aSEmmanuel Vadot			clocks = <&qspi_clk>;
801*f126890aSEmmanuel Vadot			resets = <&rst QSPI_RESET>;
802*f126890aSEmmanuel Vadot			status = "disabled";
803*f126890aSEmmanuel Vadot		};
804*f126890aSEmmanuel Vadot
805*f126890aSEmmanuel Vadot		rst: rstmgr@ffd05000 {
806*f126890aSEmmanuel Vadot			#reset-cells = <1>;
807*f126890aSEmmanuel Vadot			compatible = "altr,rst-mgr";
808*f126890aSEmmanuel Vadot			reg = <0xffd05000 0x1000>;
809*f126890aSEmmanuel Vadot			altr,modrst-offset = <0x10>;
810*f126890aSEmmanuel Vadot		};
811*f126890aSEmmanuel Vadot
812*f126890aSEmmanuel Vadot		scu: snoop-control-unit@fffec000 {
813*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9-scu";
814*f126890aSEmmanuel Vadot			reg = <0xfffec000 0x100>;
815*f126890aSEmmanuel Vadot		};
816*f126890aSEmmanuel Vadot
817*f126890aSEmmanuel Vadot		sdr: sdr@ffc25000 {
818*f126890aSEmmanuel Vadot			compatible = "altr,sdr-ctl", "syscon";
819*f126890aSEmmanuel Vadot			reg = <0xffc25000 0x1000>;
820*f126890aSEmmanuel Vadot			resets = <&rst SDR_RESET>;
821*f126890aSEmmanuel Vadot		};
822*f126890aSEmmanuel Vadot
823*f126890aSEmmanuel Vadot		sdramedac {
824*f126890aSEmmanuel Vadot			compatible = "altr,sdram-edac";
825*f126890aSEmmanuel Vadot			altr,sdr-syscon = <&sdr>;
826*f126890aSEmmanuel Vadot			interrupts = <0 39 4>;
827*f126890aSEmmanuel Vadot		};
828*f126890aSEmmanuel Vadot
829*f126890aSEmmanuel Vadot		spi0: spi@fff00000 {
830*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-ssi";
831*f126890aSEmmanuel Vadot			#address-cells = <1>;
832*f126890aSEmmanuel Vadot			#size-cells = <0>;
833*f126890aSEmmanuel Vadot			reg = <0xfff00000 0x1000>;
834*f126890aSEmmanuel Vadot			interrupts = <0 154 4>;
835*f126890aSEmmanuel Vadot			num-cs = <4>;
836*f126890aSEmmanuel Vadot			clocks = <&spi_m_clk>;
837*f126890aSEmmanuel Vadot			resets = <&rst SPIM0_RESET>;
838*f126890aSEmmanuel Vadot			reset-names = "spi";
839*f126890aSEmmanuel Vadot			status = "disabled";
840*f126890aSEmmanuel Vadot		};
841*f126890aSEmmanuel Vadot
842*f126890aSEmmanuel Vadot		spi1: spi@fff01000 {
843*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-ssi";
844*f126890aSEmmanuel Vadot			#address-cells = <1>;
845*f126890aSEmmanuel Vadot			#size-cells = <0>;
846*f126890aSEmmanuel Vadot			reg = <0xfff01000 0x1000>;
847*f126890aSEmmanuel Vadot			interrupts = <0 155 4>;
848*f126890aSEmmanuel Vadot			num-cs = <4>;
849*f126890aSEmmanuel Vadot			clocks = <&spi_m_clk>;
850*f126890aSEmmanuel Vadot			resets = <&rst SPIM1_RESET>;
851*f126890aSEmmanuel Vadot			reset-names = "spi";
852*f126890aSEmmanuel Vadot			status = "disabled";
853*f126890aSEmmanuel Vadot		};
854*f126890aSEmmanuel Vadot
855*f126890aSEmmanuel Vadot		sysmgr: sysmgr@ffd08000 {
856*f126890aSEmmanuel Vadot			compatible = "altr,sys-mgr", "syscon";
857*f126890aSEmmanuel Vadot			reg = <0xffd08000 0x4000>;
858*f126890aSEmmanuel Vadot		};
859*f126890aSEmmanuel Vadot
860*f126890aSEmmanuel Vadot		/* Local timer */
861*f126890aSEmmanuel Vadot		timer@fffec600 {
862*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9-twd-timer";
863*f126890aSEmmanuel Vadot			reg = <0xfffec600 0x100>;
864*f126890aSEmmanuel Vadot			interrupts = <1 13 0xf01>;
865*f126890aSEmmanuel Vadot			clocks = <&mpu_periph_clk>;
866*f126890aSEmmanuel Vadot		};
867*f126890aSEmmanuel Vadot
868*f126890aSEmmanuel Vadot		timer0: timer0@ffc08000 {
869*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-timer";
870*f126890aSEmmanuel Vadot			interrupts = <0 167 4>;
871*f126890aSEmmanuel Vadot			reg = <0xffc08000 0x1000>;
872*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
873*f126890aSEmmanuel Vadot			clock-names = "timer";
874*f126890aSEmmanuel Vadot			resets = <&rst SPTIMER0_RESET>;
875*f126890aSEmmanuel Vadot			reset-names = "timer";
876*f126890aSEmmanuel Vadot		};
877*f126890aSEmmanuel Vadot
878*f126890aSEmmanuel Vadot		timer1: timer1@ffc09000 {
879*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-timer";
880*f126890aSEmmanuel Vadot			interrupts = <0 168 4>;
881*f126890aSEmmanuel Vadot			reg = <0xffc09000 0x1000>;
882*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
883*f126890aSEmmanuel Vadot			clock-names = "timer";
884*f126890aSEmmanuel Vadot			resets = <&rst SPTIMER1_RESET>;
885*f126890aSEmmanuel Vadot			reset-names = "timer";
886*f126890aSEmmanuel Vadot		};
887*f126890aSEmmanuel Vadot
888*f126890aSEmmanuel Vadot		timer2: timer2@ffd00000 {
889*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-timer";
890*f126890aSEmmanuel Vadot			interrupts = <0 169 4>;
891*f126890aSEmmanuel Vadot			reg = <0xffd00000 0x1000>;
892*f126890aSEmmanuel Vadot			clocks = <&osc1>;
893*f126890aSEmmanuel Vadot			clock-names = "timer";
894*f126890aSEmmanuel Vadot			resets = <&rst OSC1TIMER0_RESET>;
895*f126890aSEmmanuel Vadot			reset-names = "timer";
896*f126890aSEmmanuel Vadot		};
897*f126890aSEmmanuel Vadot
898*f126890aSEmmanuel Vadot		timer3: timer3@ffd01000 {
899*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-timer";
900*f126890aSEmmanuel Vadot			interrupts = <0 170 4>;
901*f126890aSEmmanuel Vadot			reg = <0xffd01000 0x1000>;
902*f126890aSEmmanuel Vadot			clocks = <&osc1>;
903*f126890aSEmmanuel Vadot			clock-names = "timer";
904*f126890aSEmmanuel Vadot			resets = <&rst OSC1TIMER1_RESET>;
905*f126890aSEmmanuel Vadot			reset-names = "timer";
906*f126890aSEmmanuel Vadot		};
907*f126890aSEmmanuel Vadot
908*f126890aSEmmanuel Vadot		uart0: serial@ffc02000 {
909*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
910*f126890aSEmmanuel Vadot			reg = <0xffc02000 0x1000>;
911*f126890aSEmmanuel Vadot			interrupts = <0 162 4>;
912*f126890aSEmmanuel Vadot			reg-shift = <2>;
913*f126890aSEmmanuel Vadot			reg-io-width = <4>;
914*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
915*f126890aSEmmanuel Vadot			dmas = <&pdma 28>,
916*f126890aSEmmanuel Vadot			       <&pdma 29>;
917*f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
918*f126890aSEmmanuel Vadot			resets = <&rst UART0_RESET>;
919*f126890aSEmmanuel Vadot		};
920*f126890aSEmmanuel Vadot
921*f126890aSEmmanuel Vadot		uart1: serial@ffc03000 {
922*f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
923*f126890aSEmmanuel Vadot			reg = <0xffc03000 0x1000>;
924*f126890aSEmmanuel Vadot			interrupts = <0 163 4>;
925*f126890aSEmmanuel Vadot			reg-shift = <2>;
926*f126890aSEmmanuel Vadot			reg-io-width = <4>;
927*f126890aSEmmanuel Vadot			clocks = <&l4_sp_clk>;
928*f126890aSEmmanuel Vadot			dmas = <&pdma 30>,
929*f126890aSEmmanuel Vadot			       <&pdma 31>;
930*f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
931*f126890aSEmmanuel Vadot			resets = <&rst UART1_RESET>;
932*f126890aSEmmanuel Vadot		};
933*f126890aSEmmanuel Vadot
934*f126890aSEmmanuel Vadot		usbphy0: usbphy {
935*f126890aSEmmanuel Vadot			#phy-cells = <0>;
936*f126890aSEmmanuel Vadot			compatible = "usb-nop-xceiv";
937*f126890aSEmmanuel Vadot			status = "okay";
938*f126890aSEmmanuel Vadot		};
939*f126890aSEmmanuel Vadot
940*f126890aSEmmanuel Vadot		usb0: usb@ffb00000 {
941*f126890aSEmmanuel Vadot			compatible = "snps,dwc2";
942*f126890aSEmmanuel Vadot			reg = <0xffb00000 0xffff>;
943*f126890aSEmmanuel Vadot			interrupts = <0 125 4>;
944*f126890aSEmmanuel Vadot			clocks = <&usb_mp_clk>;
945*f126890aSEmmanuel Vadot			clock-names = "otg";
946*f126890aSEmmanuel Vadot			resets = <&rst USB0_RESET>;
947*f126890aSEmmanuel Vadot			reset-names = "dwc2";
948*f126890aSEmmanuel Vadot			phys = <&usbphy0>;
949*f126890aSEmmanuel Vadot			phy-names = "usb2-phy";
950*f126890aSEmmanuel Vadot			status = "disabled";
951*f126890aSEmmanuel Vadot		};
952*f126890aSEmmanuel Vadot
953*f126890aSEmmanuel Vadot		usb1: usb@ffb40000 {
954*f126890aSEmmanuel Vadot			compatible = "snps,dwc2";
955*f126890aSEmmanuel Vadot			reg = <0xffb40000 0xffff>;
956*f126890aSEmmanuel Vadot			interrupts = <0 128 4>;
957*f126890aSEmmanuel Vadot			clocks = <&usb_mp_clk>;
958*f126890aSEmmanuel Vadot			clock-names = "otg";
959*f126890aSEmmanuel Vadot			resets = <&rst USB1_RESET>;
960*f126890aSEmmanuel Vadot			reset-names = "dwc2";
961*f126890aSEmmanuel Vadot			phys = <&usbphy0>;
962*f126890aSEmmanuel Vadot			phy-names = "usb2-phy";
963*f126890aSEmmanuel Vadot			status = "disabled";
964*f126890aSEmmanuel Vadot		};
965*f126890aSEmmanuel Vadot
966*f126890aSEmmanuel Vadot		watchdog0: watchdog@ffd02000 {
967*f126890aSEmmanuel Vadot			compatible = "snps,dw-wdt";
968*f126890aSEmmanuel Vadot			reg = <0xffd02000 0x1000>;
969*f126890aSEmmanuel Vadot			interrupts = <0 171 4>;
970*f126890aSEmmanuel Vadot			clocks = <&osc1>;
971*f126890aSEmmanuel Vadot			resets = <&rst L4WD0_RESET>;
972*f126890aSEmmanuel Vadot			status = "disabled";
973*f126890aSEmmanuel Vadot		};
974*f126890aSEmmanuel Vadot
975*f126890aSEmmanuel Vadot		watchdog1: watchdog@ffd03000 {
976*f126890aSEmmanuel Vadot			compatible = "snps,dw-wdt";
977*f126890aSEmmanuel Vadot			reg = <0xffd03000 0x1000>;
978*f126890aSEmmanuel Vadot			interrupts = <0 172 4>;
979*f126890aSEmmanuel Vadot			clocks = <&osc1>;
980*f126890aSEmmanuel Vadot			resets = <&rst L4WD1_RESET>;
981*f126890aSEmmanuel Vadot			status = "disabled";
982*f126890aSEmmanuel Vadot		};
983*f126890aSEmmanuel Vadot	};
984*f126890aSEmmanuel Vadot};
985