blob: f5f1b8db9bc9b71dc5976681257cdcdb49e419b4 [file] [log] [blame]
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +08001/*
Marek Vasutcc21ed62018-04-23 01:37:57 +02002 * Copyright Altera Corporation (C) 2014. All rights reserved.
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +08003 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080017#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include <dt-bindings/reset/altr,rst-mgr-a10.h>
19
20/ {
21 #address-cells = <1>;
22 #size-cells = <1>;
23
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080024 cpus {
25 #address-cells = <1>;
26 #size-cells = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +020027 enable-method = "altr,socfpga-a10-smp";
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080028
29 cpu@0 {
30 compatible = "arm,cortex-a9";
31 device_type = "cpu";
32 reg = <0>;
33 next-level-cache = <&L2>;
34 };
35 cpu@1 {
36 compatible = "arm,cortex-a9";
37 device_type = "cpu";
38 reg = <1>;
39 next-level-cache = <&L2>;
40 };
41 };
42
43 intc: intc@ffffd000 {
44 compatible = "arm,cortex-a9-gic";
45 #interrupt-cells = <3>;
46 interrupt-controller;
47 reg = <0xffffd000 0x1000>,
48 <0xffffc100 0x100>;
49 };
50
51 soc {
52 #address-cells = <1>;
53 #size-cells = <1>;
54 compatible = "simple-bus";
55 device_type = "soc";
56 interrupt-parent = <&intc>;
57 ranges;
Marek Vasut6f96ed72018-08-13 18:42:32 +020058 u-boot,dm-pre-reloc;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080059
60 amba {
61 compatible = "simple-bus";
62 #address-cells = <1>;
63 #size-cells = <1>;
64 ranges;
65
66 pdma: pdma@ffda1000 {
67 compatible = "arm,pl330", "arm,primecell";
68 reg = <0xffda1000 0x1000>;
69 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
70 <0 84 IRQ_TYPE_LEVEL_HIGH>,
71 <0 85 IRQ_TYPE_LEVEL_HIGH>,
72 <0 86 IRQ_TYPE_LEVEL_HIGH>,
73 <0 87 IRQ_TYPE_LEVEL_HIGH>,
74 <0 88 IRQ_TYPE_LEVEL_HIGH>,
75 <0 89 IRQ_TYPE_LEVEL_HIGH>,
76 <0 90 IRQ_TYPE_LEVEL_HIGH>,
77 <0 91 IRQ_TYPE_LEVEL_HIGH>;
78 #dma-cells = <1>;
79 #dma-channels = <8>;
80 #dma-requests = <32>;
81 clocks = <&l4_main_clk>;
82 clock-names = "apb_pclk";
83 };
84 };
85
Marek Vasutcc21ed62018-04-23 01:37:57 +020086 base_fpga_region {
87 #address-cells = <0x1>;
88 #size-cells = <0x1>;
89
90 compatible = "fpga-region";
91 fpga-mgr = <&fpga_mgr>;
92 };
93
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080094 clkmgr@ffd04000 {
Marek Vasutcc21ed62018-04-23 01:37:57 +020095 compatible = "altr,clk-mgr";
96 reg = <0xffd04000 0x1000>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080097
Marek Vasutcc21ed62018-04-23 01:37:57 +020098 clocks {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +080099 #address-cells = <1>;
100 #size-cells = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200101
102 cb_intosc_hs_div2_clk: cb_intosc_hs_div2_clk {
103 #clock-cells = <0>;
104 compatible = "fixed-clock";
105 };
106
107 cb_intosc_ls_clk: cb_intosc_ls_clk {
108 #clock-cells = <0>;
109 compatible = "fixed-clock";
110 };
111
112 f2s_free_clk: f2s_free_clk {
113 #clock-cells = <0>;
114 compatible = "fixed-clock";
115 };
116
117 osc1: osc1 {
118 #clock-cells = <0>;
119 compatible = "fixed-clock";
120 };
121
122 main_pll: main_pll@40 {
123 #address-cells = <1>;
124 #size-cells = <0>;
125 #clock-cells = <0>;
126 compatible = "altr,socfpga-a10-pll-clock";
127 clocks = <&osc1>, <&cb_intosc_ls_clk>,
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800128 <&f2s_free_clk>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200129 reg = <0x40>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800130
Marek Vasutcc21ed62018-04-23 01:37:57 +0200131 main_mpu_base_clk: main_mpu_base_clk {
132 #clock-cells = <0>;
133 compatible = "altr,socfpga-a10-perip-clk";
134 clocks = <&main_pll>;
135 div-reg = <0x140 0 11>;
136 };
137
138 main_noc_base_clk: main_noc_base_clk {
139 #clock-cells = <0>;
140 compatible = "altr,socfpga-a10-perip-clk";
141 clocks = <&main_pll>;
142 div-reg = <0x144 0 11>;
143 };
144
145 main_emaca_clk: main_emaca_clk@68 {
146 #clock-cells = <0>;
147 compatible = "altr,socfpga-a10-perip-clk";
148 clocks = <&main_pll>;
149 reg = <0x68>;
150 };
151
152 main_emacb_clk: main_emacb_clk@6c {
153 #clock-cells = <0>;
154 compatible = "altr,socfpga-a10-perip-clk";
155 clocks = <&main_pll>;
156 reg = <0x6C>;
157 };
158
159 main_emac_ptp_clk: main_emac_ptp_clk@70 {
160 #clock-cells = <0>;
161 compatible = "altr,socfpga-a10-perip-clk";
162 clocks = <&main_pll>;
163 reg = <0x70>;
164 };
165
166 main_gpio_db_clk: main_gpio_db_clk@74 {
167 #clock-cells = <0>;
168 compatible = "altr,socfpga-a10-perip-clk";
169 clocks = <&main_pll>;
170 reg = <0x74>;
171 };
172
173 main_sdmmc_clk: main_sdmmc_clk@78 {
174 #clock-cells = <0>;
175 compatible = "altr,socfpga-a10-perip-clk"
176;
177 clocks = <&main_pll>;
178 reg = <0x78>;
179 };
180
181 main_s2f_usr0_clk: main_s2f_usr0_clk@7c {
182 #clock-cells = <0>;
183 compatible = "altr,socfpga-a10-perip-clk";
184 clocks = <&main_pll>;
185 reg = <0x7C>;
186 };
187
188 main_s2f_usr1_clk: main_s2f_usr1_clk@80 {
189 #clock-cells = <0>;
190 compatible = "altr,socfpga-a10-perip-clk";
191 clocks = <&main_pll>;
192 reg = <0x80>;
193 };
194
195 main_hmc_pll_ref_clk: main_hmc_pll_ref_clk@84 {
196 #clock-cells = <0>;
197 compatible = "altr,socfpga-a10-perip-clk";
198 clocks = <&main_pll>;
199 reg = <0x84>;
200 };
201
202 main_periph_ref_clk: main_periph_ref_clk@9c {
203 #clock-cells = <0>;
204 compatible = "altr,socfpga-a10-perip-clk";
205 clocks = <&main_pll>;
206 reg = <0x9C>;
207 };
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800208 };
209
Marek Vasutcc21ed62018-04-23 01:37:57 +0200210 periph_pll: periph_pll@c0 {
211 #address-cells = <1>;
212 #size-cells = <0>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800213 #clock-cells = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200214 compatible = "altr,socfpga-a10-pll-clock";
215 clocks = <&osc1>, <&cb_intosc_ls_clk>,
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800216 <&f2s_free_clk>, <&main_periph_ref_clk>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200217 reg = <0xC0>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800218
Marek Vasutcc21ed62018-04-23 01:37:57 +0200219 peri_mpu_base_clk: peri_mpu_base_clk {
220 #clock-cells = <0>;
221 compatible = "altr,socfpga-a10-perip-clk";
222 clocks = <&periph_pll>;
223 div-reg = <0x140 16 11>;
224 };
225
226 peri_noc_base_clk: peri_noc_base_clk {
227 #clock-cells = <0>;
228 compatible = "altr,socfpga-a10-perip-clk";
229 clocks = <&periph_pll>;
230 div-reg = <0x144 16 11>;
231 };
232
233 peri_emaca_clk: peri_emaca_clk@e8 {
234 #clock-cells = <0>;
235 compatible = "altr,socfpga-a10-perip-clk";
236 clocks = <&periph_pll>;
237 reg = <0xE8>;
238 };
239
240 peri_emacb_clk: peri_emacb_clk@ec {
241 #clock-cells = <0>;
242 compatible = "altr,socfpga-a10-perip-clk";
243 clocks = <&periph_pll>;
244 reg = <0xEC>;
245 };
246
247 peri_emac_ptp_clk: peri_emac_ptp_clk@f0 {
248 #clock-cells = <0>;
249 compatible = "altr,socfpga-a10-perip-clk";
250 clocks = <&periph_pll>;
251 reg = <0xF0>;
252 };
253
254 peri_gpio_db_clk: peri_gpio_db_clk@f4 {
255 #clock-cells = <0>;
256 compatible = "altr,socfpga-a10-perip-clk";
257 clocks = <&periph_pll>;
258 reg = <0xF4>;
259 };
260
261 peri_sdmmc_clk: peri_sdmmc_clk@f8 {
262 #clock-cells = <0>;
263 compatible = "altr,socfpga-a10-perip-clk";
264 clocks = <&periph_pll>;
265 reg = <0xF8>;
266 };
267
268 peri_s2f_usr0_clk: peri_s2f_usr0_clk@fc {
269 #clock-cells = <0>;
270 compatible = "altr,socfpga-a10-perip-clk";
271 clocks = <&periph_pll>;
272 reg = <0xFC>;
273 };
274
275 peri_s2f_usr1_clk: peri_s2f_usr1_clk@100 {
276 #clock-cells = <0>;
277 compatible = "altr,socfpga-a10-perip-clk";
278 clocks = <&periph_pll>;
279 reg = <0x100>;
280 };
281
282 peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk@104 {
283 #clock-cells = <0>;
284 compatible = "altr,socfpga-a10-perip-clk";
285 clocks = <&periph_pll>;
286 reg = <0x104>;
287 };
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800288 };
289
Marek Vasutcc21ed62018-04-23 01:37:57 +0200290 mpu_free_clk: mpu_free_clk@60 {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800291 #clock-cells = <0>;
292 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200293 clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
294 <&osc1>, <&cb_intosc_hs_div2_clk>,
295 <&f2s_free_clk>;
296 reg = <0x60>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800297 };
298
Marek Vasutcc21ed62018-04-23 01:37:57 +0200299 noc_free_clk: noc_free_clk@64 {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800300 #clock-cells = <0>;
301 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200302 clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
303 <&osc1>, <&cb_intosc_hs_div2_clk>,
304 <&f2s_free_clk>;
305 reg = <0x64>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800306 };
307
Marek Vasutcc21ed62018-04-23 01:37:57 +0200308 s2f_user1_free_clk: s2f_user1_free_clk@104 {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800309 #clock-cells = <0>;
310 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200311 clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
312 <&osc1>, <&cb_intosc_hs_div2_clk>,
313 <&f2s_free_clk>;
314 reg = <0x104>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800315 };
316
Marek Vasutcc21ed62018-04-23 01:37:57 +0200317 sdmmc_free_clk: sdmmc_free_clk@f8 {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800318 #clock-cells = <0>;
319 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200320 clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
321 <&osc1>, <&cb_intosc_hs_div2_clk>,
322 <&f2s_free_clk>;
323 fixed-divider = <4>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800324 reg = <0xF8>;
325 };
326
Marek Vasutcc21ed62018-04-23 01:37:57 +0200327 l4_sys_free_clk: l4_sys_free_clk {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800328 #clock-cells = <0>;
329 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200330 clocks = <&noc_free_clk>;
331 fixed-divider = <4>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800332 };
333
Marek Vasutcc21ed62018-04-23 01:37:57 +0200334 l4_main_clk: l4_main_clk {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800335 #clock-cells = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200336 compatible = "altr,socfpga-a10-gate-clk";
337 clocks = <&noc_free_clk>;
338 div-reg = <0xA8 0 2>;
339 clk-gate = <0x48 1>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800340 };
341
Marek Vasutcc21ed62018-04-23 01:37:57 +0200342 l4_mp_clk: l4_mp_clk {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800343 #clock-cells = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200344 compatible = "altr,socfpga-a10-gate-clk";
345 clocks = <&noc_free_clk>;
346 div-reg = <0xA8 8 2>;
347 clk-gate = <0x48 2>;
348 };
349
350 l4_sp_clk: l4_sp_clk {
351 #clock-cells = <0>;
352 compatible = "altr,socfpga-a10-gate-clk";
353 clocks = <&noc_free_clk>;
354 div-reg = <0xA8 16 2>;
355 clk-gate = <0x48 3>;
356 };
357
358 mpu_periph_clk: mpu_periph_clk {
359 #clock-cells = <0>;
360 compatible = "altr,socfpga-a10-gate-clk";
361 clocks = <&mpu_free_clk>;
362 fixed-divider = <4>;
363 clk-gate = <0x48 0>;
364 };
365
366 sdmmc_clk: sdmmc_clk {
367 #clock-cells = <0>;
368 compatible = "altr,socfpga-a10-gate-clk";
369 clocks = <&sdmmc_free_clk>;
370 clk-gate = <0xC8 5>;
371 clk-phase = <0 135>;
372 };
373
374 qspi_clk: qspi_clk {
375 #clock-cells = <0>;
376 compatible = "altr,socfpga-a10-gate-clk";
377 clocks = <&l4_main_clk>;
378 clk-gate = <0xC8 11>;
379 };
380
381 nand_clk: nand_clk {
382 #clock-cells = <0>;
383 compatible = "altr,socfpga-a10-gate-clk";
384 clocks = <&l4_mp_clk>;
385 clk-gate = <0xC8 10>;
386 };
387
388 spi_m_clk: spi_m_clk {
389 #clock-cells = <0>;
390 compatible = "altr,socfpga-a10-gate-clk";
391 clocks = <&l4_main_clk>;
392 clk-gate = <0xC8 9>;
393 };
394
395 usb_clk: usb_clk {
396 #clock-cells = <0>;
397 compatible = "altr,socfpga-a10-gate-clk";
398 clocks = <&l4_mp_clk>;
399 clk-gate = <0xC8 8>;
400 };
401
402 s2f_usr1_clk: s2f_usr1_clk {
403 #clock-cells = <0>;
404 compatible = "altr,socfpga-a10-gate-clk";
405 clocks = <&peri_s2f_usr1_clk>;
406 clk-gate = <0xC8 6>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800407 };
408 };
Marek Vasutcc21ed62018-04-23 01:37:57 +0200409 };
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800410
Marek Vasutcc21ed62018-04-23 01:37:57 +0200411 socfpga_axi_setup: stmmac-axi-config {
412 snps,wr_osr_lmt = <0xf>;
413 snps,rd_osr_lmt = <0xf>;
414 snps,blen = <0 0 0 0 16 0 0>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800415 };
416
417 gmac0: ethernet@ff800000 {
418 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
419 altr,sysmgr-syscon = <&sysmgr 0x44 0>;
420 reg = <0xff800000 0x2000>;
421 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
422 interrupt-names = "macirq";
423 /* Filled in by bootloader */
424 mac-address = [00 00 00 00 00 00];
425 snps,multicast-filter-bins = <256>;
426 snps,perfect-filter-entries = <128>;
427 tx-fifo-depth = <4096>;
428 rx-fifo-depth = <16384>;
429 clocks = <&l4_mp_clk>;
430 clock-names = "stmmaceth";
Marek Vasutda61e502018-08-13 20:24:20 +0200431 resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
432 reset-names = "stmmaceth", "stmmaceth-ocp";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200433 snps,axi-config = <&socfpga_axi_setup>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800434 status = "disabled";
435 };
436
437 gmac1: ethernet@ff802000 {
438 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
439 altr,sysmgr-syscon = <&sysmgr 0x48 0>;
440 reg = <0xff802000 0x2000>;
441 interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
442 interrupt-names = "macirq";
443 /* Filled in by bootloader */
444 mac-address = [00 00 00 00 00 00];
445 snps,multicast-filter-bins = <256>;
446 snps,perfect-filter-entries = <128>;
447 tx-fifo-depth = <4096>;
448 rx-fifo-depth = <16384>;
449 clocks = <&l4_mp_clk>;
450 clock-names = "stmmaceth";
Marek Vasutda61e502018-08-13 20:24:20 +0200451 resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
452 reset-names = "stmmaceth", "stmmaceth-ocp";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200453 snps,axi-config = <&socfpga_axi_setup>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800454 status = "disabled";
455 };
456
457 gmac2: ethernet@ff804000 {
458 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
459 altr,sysmgr-syscon = <&sysmgr 0x4C 0>;
460 reg = <0xff804000 0x2000>;
461 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
462 interrupt-names = "macirq";
463 /* Filled in by bootloader */
464 mac-address = [00 00 00 00 00 00];
465 snps,multicast-filter-bins = <256>;
466 snps,perfect-filter-entries = <128>;
467 tx-fifo-depth = <4096>;
468 rx-fifo-depth = <16384>;
469 clocks = <&l4_mp_clk>;
470 clock-names = "stmmaceth";
Marek Vasutda61e502018-08-13 20:24:20 +0200471 resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
472 reset-names = "stmmaceth", "stmmaceth-ocp";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200473 snps,axi-config = <&socfpga_axi_setup>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800474 status = "disabled";
475 };
476
477 gpio0: gpio@ffc02900 {
478 #address-cells = <1>;
479 #size-cells = <0>;
480 compatible = "snps,dw-apb-gpio";
481 reg = <0xffc02900 0x100>;
482 status = "disabled";
483
484 porta: gpio-controller@0 {
485 compatible = "snps,dw-apb-gpio-port";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200486 bank-name = "porta";
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800487 gpio-controller;
488 #gpio-cells = <2>;
489 snps,nr-gpios = <29>;
490 reg = <0>;
491 interrupt-controller;
492 #interrupt-cells = <2>;
493 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
494 };
495 };
496
497 gpio1: gpio@ffc02a00 {
498 #address-cells = <1>;
499 #size-cells = <0>;
500 compatible = "snps,dw-apb-gpio";
501 reg = <0xffc02a00 0x100>;
502 status = "disabled";
503
504 portb: gpio-controller@0 {
505 compatible = "snps,dw-apb-gpio-port";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200506 bank-name = "portb";
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800507 gpio-controller;
508 #gpio-cells = <2>;
509 snps,nr-gpios = <29>;
510 reg = <0>;
511 interrupt-controller;
512 #interrupt-cells = <2>;
513 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
514 };
515 };
516
517 gpio2: gpio@ffc02b00 {
518 #address-cells = <1>;
519 #size-cells = <0>;
520 compatible = "snps,dw-apb-gpio";
521 reg = <0xffc02b00 0x100>;
522 status = "disabled";
523
524 portc: gpio-controller@0 {
525 compatible = "snps,dw-apb-gpio-port";
Marek Vasutcc21ed62018-04-23 01:37:57 +0200526 bank-name = "portc";
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800527 gpio-controller;
528 #gpio-cells = <2>;
529 snps,nr-gpios = <27>;
530 reg = <0>;
531 interrupt-controller;
532 #interrupt-cells = <2>;
533 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
534 };
535 };
536
537 fpga_mgr: fpga-mgr@ffd03000 {
538 compatible = "altr,socfpga-a10-fpga-mgr";
539 reg = <0xffd03000 0x100
540 0xffcfe400 0x20>;
541 clocks = <&l4_mp_clk>;
542 resets = <&rst FPGAMGR_RESET>;
543 reset-names = "fpgamgr";
544 };
545
546 i2c0: i2c@ffc02200 {
547 #address-cells = <1>;
548 #size-cells = <0>;
549 compatible = "snps,designware-i2c";
550 reg = <0xffc02200 0x100>;
551 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
552 clocks = <&l4_sp_clk>;
553 status = "disabled";
554 };
555
556 i2c1: i2c@ffc02300 {
557 #address-cells = <1>;
558 #size-cells = <0>;
559 compatible = "snps,designware-i2c";
560 reg = <0xffc02300 0x100>;
561 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
562 clocks = <&l4_sp_clk>;
563 status = "disabled";
564 };
565
566 i2c2: i2c@ffc02400 {
567 #address-cells = <1>;
568 #size-cells = <0>;
569 compatible = "snps,designware-i2c";
570 reg = <0xffc02400 0x100>;
571 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
572 clocks = <&l4_sp_clk>;
573 status = "disabled";
574 };
575
576 i2c3: i2c@ffc02500 {
577 #address-cells = <1>;
578 #size-cells = <0>;
579 compatible = "snps,designware-i2c";
580 reg = <0xffc02500 0x100>;
581 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
582 clocks = <&l4_sp_clk>;
583 status = "disabled";
584 };
585
586 i2c4: i2c@ffc02600 {
587 #address-cells = <1>;
588 #size-cells = <0>;
589 compatible = "snps,designware-i2c";
590 reg = <0xffc02600 0x100>;
591 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
592 clocks = <&l4_sp_clk>;
593 status = "disabled";
594 };
595
Marek Vasutcc21ed62018-04-23 01:37:57 +0200596 spi1: spi@ffda5000 {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800597 compatible = "snps,dw-apb-ssi";
598 #address-cells = <1>;
599 #size-cells = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200600 reg = <0xffda5000 0x100>;
601 interrupts = <0 102 4>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800602 num-chipselect = <4>;
603 bus-num = <0>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200604 /*32bit_access;*/
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800605 tx-dma-channel = <&pdma 16>;
606 rx-dma-channel = <&pdma 17>;
607 clocks = <&spi_m_clk>;
608 status = "disabled";
609 };
610
Marek Vasutcc21ed62018-04-23 01:37:57 +0200611 sdr: sdr@ffc25000 {
612 compatible = "altr,sdr-ctl", "syscon";
613 reg = <0xffcfb100 0x80>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800614 };
615
616 L2: l2-cache@fffff000 {
617 compatible = "arm,pl310-cache";
618 reg = <0xfffff000 0x1000>;
619 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
620 cache-unified;
621 cache-level = <2>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200622 prefetch-data = <1>;
623 prefetch-instr = <1>;
624 arm,shared-override;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800625 };
626
627 mmc: dwmmc0@ff808000 {
628 #address-cells = <1>;
629 #size-cells = <0>;
630 compatible = "altr,socfpga-dw-mshc";
631 reg = <0xff808000 0x1000>;
632 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
633 fifo-depth = <0x400>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800634 clocks = <&l4_mp_clk>, <&sdmmc_clk>;
635 clock-names = "biu", "ciu";
636 status = "disabled";
637 };
638
Marek Vasutcc21ed62018-04-23 01:37:57 +0200639 nand: nand@ffb90000 {
640 #address-cells = <1>;
641 #size-cells = <1>;
642 compatible = "denali,denali-nand-dt", "altr,socfpga-denali-nand";
Marek Vasut64eeb152018-05-07 22:22:26 +0200643 reg = <0xffb90000 0x20>,
644 <0xffb80000 0x1000>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200645 reg-names = "nand_data", "denali_reg";
646 interrupts = <0 99 4>;
647 dma-mask = <0xffffffff>;
648 clocks = <&nand_clk>;
649 status = "disabled";
650 };
651
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800652 ocram: sram@ffe00000 {
653 compatible = "mmio-sram";
654 reg = <0xffe00000 0x40000>;
655 };
656
Marek Vasutcc21ed62018-04-23 01:37:57 +0200657 eccmgr: eccmgr {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800658 compatible = "altr,socfpga-a10-ecc-manager";
659 altr,sysmgr-syscon = <&sysmgr>;
660 #address-cells = <1>;
661 #size-cells = <1>;
662 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
663 <0 0 IRQ_TYPE_LEVEL_HIGH>;
664 interrupt-controller;
665 #interrupt-cells = <2>;
666 ranges;
667
668 sdramedac {
669 compatible = "altr,sdram-edac-a10";
670 altr,sdr-syscon = <&sdr>;
671 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
672 <49 IRQ_TYPE_LEVEL_HIGH>;
673 };
674
675 l2-ecc@ffd06010 {
676 compatible = "altr,socfpga-a10-l2-ecc";
677 reg = <0xffd06010 0x4>;
678 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
679 <32 IRQ_TYPE_LEVEL_HIGH>;
680 };
681
682 ocram-ecc@ff8c3000 {
683 compatible = "altr,socfpga-a10-ocram-ecc";
684 reg = <0xff8c3000 0x400>;
685 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
686 <33 IRQ_TYPE_LEVEL_HIGH>;
687 };
688
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800689 emac0-rx-ecc@ff8c0800 {
690 compatible = "altr,socfpga-eth-mac-ecc";
691 reg = <0xff8c0800 0x400>;
692 altr,ecc-parent = <&gmac0>;
693 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>,
694 <36 IRQ_TYPE_LEVEL_HIGH>;
695 };
696
697 emac0-tx-ecc@ff8c0c00 {
698 compatible = "altr,socfpga-eth-mac-ecc";
699 reg = <0xff8c0c00 0x400>;
700 altr,ecc-parent = <&gmac0>;
701 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
702 <37 IRQ_TYPE_LEVEL_HIGH>;
703 };
704
705 dma-ecc@ff8c8000 {
706 compatible = "altr,socfpga-dma-ecc";
707 reg = <0xff8c8000 0x400>;
708 altr,ecc-parent = <&pdma>;
709 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
710 <42 IRQ_TYPE_LEVEL_HIGH>;
711 };
712
713 usb0-ecc@ff8c8800 {
714 compatible = "altr,socfpga-usb-ecc";
715 reg = <0xff8c8800 0x400>;
716 altr,ecc-parent = <&usb0>;
717 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
718 <34 IRQ_TYPE_LEVEL_HIGH>;
719 };
720 };
721
Marek Vasutcc21ed62018-04-23 01:37:57 +0200722 qspi: spi@ff809000 {
723 compatible = "cdns,qspi-nor", "cadence,qspi";
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800724 #address-cells = <1>;
725 #size-cells = <0>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800726 reg = <0xff809000 0x100>,
Marek Vasutcc21ed62018-04-23 01:37:57 +0200727 <0xffa00000 0x100000>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800728 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
Jason Rush6e62b172018-01-23 17:13:10 -0600729 cdns,fifo-depth = <128>;
730 cdns,fifo-width = <4>;
Marek Vasutcc21ed62018-04-23 01:37:57 +0200731 cdns,trigger-address = <0x00000000>;
732 clocks = <&qspi_clk>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800733 status = "disabled";
734 };
735
736 rst: rstmgr@ffd05000 {
737 #reset-cells = <1>;
738 compatible = "altr,rst-mgr";
739 reg = <0xffd05000 0x100>;
740 altr,modrst-offset = <0x20>;
Marek Vasut6f96ed72018-08-13 18:42:32 +0200741 u-boot,dm-pre-reloc;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800742 };
743
744 scu: snoop-control-unit@ffffc000 {
745 compatible = "arm,cortex-a9-scu";
746 reg = <0xffffc000 0x100>;
747 };
748
749 sysmgr: sysmgr@ffd06000 {
750 compatible = "altr,sys-mgr", "syscon";
751 reg = <0xffd06000 0x300>;
752 cpu1-start-addr = <0xffd06230>;
753 };
754
755 /* Local timer */
756 timer@ffffc600 {
757 compatible = "arm,cortex-a9-twd-timer";
758 reg = <0xffffc600 0x100>;
759 interrupts = <1 13 0xf04>;
760 clocks = <&mpu_periph_clk>;
761 };
762
763 timer0: timer0@ffc02700 {
764 compatible = "snps,dw-apb-timer";
765 interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
766 reg = <0xffc02700 0x100>;
767 clocks = <&l4_sp_clk>;
768 clock-names = "timer";
769 };
770
771 timer1: timer1@ffc02800 {
772 compatible = "snps,dw-apb-timer";
773 interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
774 reg = <0xffc02800 0x100>;
775 clocks = <&l4_sp_clk>;
776 clock-names = "timer";
777 };
778
779 timer2: timer2@ffd00000 {
780 compatible = "snps,dw-apb-timer";
781 interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
782 reg = <0xffd00000 0x100>;
783 clocks = <&l4_sys_free_clk>;
784 clock-names = "timer";
785 };
786
787 timer3: timer3@ffd00100 {
788 compatible = "snps,dw-apb-timer";
789 interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
790 reg = <0xffd01000 0x100>;
791 clocks = <&l4_sys_free_clk>;
792 clock-names = "timer";
793 };
794
795 uart0: serial0@ffc02000 {
796 compatible = "snps,dw-apb-uart";
797 reg = <0xffc02000 0x100>;
798 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
799 reg-shift = <2>;
800 reg-io-width = <4>;
801 clocks = <&l4_sp_clk>;
Marek Vasutf5775e62018-08-13 18:42:39 +0200802 resets = <&rst UART0_RESET>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800803 status = "disabled";
804 };
805
806 uart1: serial1@ffc02100 {
807 compatible = "snps,dw-apb-uart";
808 reg = <0xffc02100 0x100>;
809 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
810 reg-shift = <2>;
811 reg-io-width = <4>;
812 clocks = <&l4_sp_clk>;
Marek Vasutf5775e62018-08-13 18:42:39 +0200813 resets = <&rst UART1_RESET>;
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800814 status = "disabled";
815 };
816
Marek Vasutcc21ed62018-04-23 01:37:57 +0200817 usbphy0: usbphy {
Ley Foon Tan3d5f7c52017-04-26 02:44:44 +0800818 #phy-cells = <0>;
819 compatible = "usb-nop-xceiv";
820 status = "okay";
821 };
822
823 usb0: usb@ffb00000 {
824 compatible = "snps,dwc2";
825 reg = <0xffb00000 0xffff>;
826 interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
827 clocks = <&usb_clk>;
828 clock-names = "otg";
829 resets = <&rst USB0_RESET>;
830 reset-names = "dwc2";
831 phys = <&usbphy0>;
832 phy-names = "usb2-phy";
833 status = "disabled";
834 };
835
836 usb1: usb@ffb40000 {
837 compatible = "snps,dwc2";
838 reg = <0xffb40000 0xffff>;
839 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
840 clocks = <&usb_clk>;
841 clock-names = "otg";
842 resets = <&rst USB1_RESET>;
843 reset-names = "dwc2";
844 phys = <&usbphy0>;
845 phy-names = "usb2-phy";
846 status = "disabled";
847 };
848
849 watchdog0: watchdog@ffd00200 {
850 compatible = "snps,dw-wdt";
851 reg = <0xffd00200 0x100>;
852 interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
853 clocks = <&l4_sys_free_clk>;
854 status = "disabled";
855 };
856
857 watchdog1: watchdog@ffd00300 {
858 compatible = "snps,dw-wdt";
859 reg = <0xffd00300 0x100>;
860 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
861 clocks = <&l4_sys_free_clk>;
862 status = "disabled";
863 };
864 };
865};