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