blob: 2f935a21e95ce33ce41328d6d3987af38b3cafc7 [file] [log] [blame]
Ley Foon Tan2f721202017-04-26 02:44:44 +08001/*
Marek Vasut03f80b12018-04-23 01:37:57 +02002 * Copyright Altera Corporation (C) 2014. All rights reserved.
Ley Foon Tan2f721202017-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 Tan2f721202017-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 Tan2f721202017-04-26 02:44:44 +080024 cpus {
25 #address-cells = <1>;
26 #size-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +020027 enable-method = "altr,socfpga-a10-smp";
Ley Foon Tan2f721202017-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;
58
59 amba {
60 compatible = "simple-bus";
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64
65 pdma: pdma@ffda1000 {
66 compatible = "arm,pl330", "arm,primecell";
67 reg = <0xffda1000 0x1000>;
68 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
69 <0 84 IRQ_TYPE_LEVEL_HIGH>,
70 <0 85 IRQ_TYPE_LEVEL_HIGH>,
71 <0 86 IRQ_TYPE_LEVEL_HIGH>,
72 <0 87 IRQ_TYPE_LEVEL_HIGH>,
73 <0 88 IRQ_TYPE_LEVEL_HIGH>,
74 <0 89 IRQ_TYPE_LEVEL_HIGH>,
75 <0 90 IRQ_TYPE_LEVEL_HIGH>,
76 <0 91 IRQ_TYPE_LEVEL_HIGH>;
77 #dma-cells = <1>;
78 #dma-channels = <8>;
79 #dma-requests = <32>;
80 clocks = <&l4_main_clk>;
81 clock-names = "apb_pclk";
82 };
83 };
84
Marek Vasut03f80b12018-04-23 01:37:57 +020085 base_fpga_region {
86 #address-cells = <0x1>;
87 #size-cells = <0x1>;
Ley Foon Tan2f721202017-04-26 02:44:44 +080088
Marek Vasut03f80b12018-04-23 01:37:57 +020089 compatible = "fpga-region";
90 fpga-mgr = <&fpga_mgr>;
91 };
Ley Foon Tan2f721202017-04-26 02:44:44 +080092
Marek Vasut03f80b12018-04-23 01:37:57 +020093 clkmgr@ffd04000 {
94 compatible = "altr,clk-mgr";
95 reg = <0xffd04000 0x1000>;
Ley Foon Tan2f721202017-04-26 02:44:44 +080096
Marek Vasut03f80b12018-04-23 01:37:57 +020097 clocks {
Ley Foon Tan2f721202017-04-26 02:44:44 +080098 #address-cells = <1>;
99 #size-cells = <0>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800100
Marek Vasut03f80b12018-04-23 01:37:57 +0200101 cb_intosc_hs_div2_clk: cb_intosc_hs_div2_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800102 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200103 compatible = "fixed-clock";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800104 };
105
Marek Vasut03f80b12018-04-23 01:37:57 +0200106 cb_intosc_ls_clk: cb_intosc_ls_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800107 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200108 compatible = "fixed-clock";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800109 };
110
Marek Vasut03f80b12018-04-23 01:37:57 +0200111 f2s_free_clk: f2s_free_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800112 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200113 compatible = "fixed-clock";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800114 };
115
Marek Vasut03f80b12018-04-23 01:37:57 +0200116 osc1: osc1 {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800117 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200118 compatible = "fixed-clock";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800119 };
120
Marek Vasut03f80b12018-04-23 01:37:57 +0200121 main_pll: main_pll@40 {
122 #address-cells = <1>;
123 #size-cells = <0>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800124 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200125 compatible = "altr,socfpga-a10-pll-clock";
126 clocks = <&osc1>, <&cb_intosc_ls_clk>,
127 <&f2s_free_clk>;
128 reg = <0x40>;
129
130 main_mpu_base_clk: main_mpu_base_clk {
131 #clock-cells = <0>;
132 compatible = "altr,socfpga-a10-perip-clk";
133 clocks = <&main_pll>;
134 div-reg = <0x140 0 11>;
135 };
136
137 main_noc_base_clk: main_noc_base_clk {
138 #clock-cells = <0>;
139 compatible = "altr,socfpga-a10-perip-clk";
140 clocks = <&main_pll>;
141 div-reg = <0x144 0 11>;
142 };
143
144 main_emaca_clk: main_emaca_clk@68 {
145 #clock-cells = <0>;
146 compatible = "altr,socfpga-a10-perip-clk";
147 clocks = <&main_pll>;
148 reg = <0x68>;
149 };
150
151 main_emacb_clk: main_emacb_clk@6c {
152 #clock-cells = <0>;
153 compatible = "altr,socfpga-a10-perip-clk";
154 clocks = <&main_pll>;
155 reg = <0x6C>;
156 };
157
158 main_emac_ptp_clk: main_emac_ptp_clk@70 {
159 #clock-cells = <0>;
160 compatible = "altr,socfpga-a10-perip-clk";
161 clocks = <&main_pll>;
162 reg = <0x70>;
163 };
164
165 main_gpio_db_clk: main_gpio_db_clk@74 {
166 #clock-cells = <0>;
167 compatible = "altr,socfpga-a10-perip-clk";
168 clocks = <&main_pll>;
169 reg = <0x74>;
170 };
171
172 main_sdmmc_clk: main_sdmmc_clk@78 {
173 #clock-cells = <0>;
174 compatible = "altr,socfpga-a10-perip-clk"
175;
176 clocks = <&main_pll>;
177 reg = <0x78>;
178 };
179
180 main_s2f_usr0_clk: main_s2f_usr0_clk@7c {
181 #clock-cells = <0>;
182 compatible = "altr,socfpga-a10-perip-clk";
183 clocks = <&main_pll>;
184 reg = <0x7C>;
185 };
186
187 main_s2f_usr1_clk: main_s2f_usr1_clk@80 {
188 #clock-cells = <0>;
189 compatible = "altr,socfpga-a10-perip-clk";
190 clocks = <&main_pll>;
191 reg = <0x80>;
192 };
193
194 main_hmc_pll_ref_clk: main_hmc_pll_ref_clk@84 {
195 #clock-cells = <0>;
196 compatible = "altr,socfpga-a10-perip-clk";
197 clocks = <&main_pll>;
198 reg = <0x84>;
199 };
200
201 main_periph_ref_clk: main_periph_ref_clk@9c {
202 #clock-cells = <0>;
203 compatible = "altr,socfpga-a10-perip-clk";
204 clocks = <&main_pll>;
205 reg = <0x9C>;
206 };
Ley Foon Tan2f721202017-04-26 02:44:44 +0800207 };
208
Marek Vasut03f80b12018-04-23 01:37:57 +0200209 periph_pll: periph_pll@c0 {
210 #address-cells = <1>;
211 #size-cells = <0>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800212 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200213 compatible = "altr,socfpga-a10-pll-clock";
214 clocks = <&osc1>, <&cb_intosc_ls_clk>,
215 <&f2s_free_clk>, <&main_periph_ref_clk>;
216 reg = <0xC0>;
217
218 peri_mpu_base_clk: peri_mpu_base_clk {
219 #clock-cells = <0>;
220 compatible = "altr,socfpga-a10-perip-clk";
221 clocks = <&periph_pll>;
222 div-reg = <0x140 16 11>;
223 };
224
225 peri_noc_base_clk: peri_noc_base_clk {
226 #clock-cells = <0>;
227 compatible = "altr,socfpga-a10-perip-clk";
228 clocks = <&periph_pll>;
229 div-reg = <0x144 16 11>;
230 };
231
232 peri_emaca_clk: peri_emaca_clk@e8 {
233 #clock-cells = <0>;
234 compatible = "altr,socfpga-a10-perip-clk";
235 clocks = <&periph_pll>;
236 reg = <0xE8>;
237 };
238
239 peri_emacb_clk: peri_emacb_clk@ec {
240 #clock-cells = <0>;
241 compatible = "altr,socfpga-a10-perip-clk";
242 clocks = <&periph_pll>;
243 reg = <0xEC>;
244 };
245
246 peri_emac_ptp_clk: peri_emac_ptp_clk@f0 {
247 #clock-cells = <0>;
248 compatible = "altr,socfpga-a10-perip-clk";
249 clocks = <&periph_pll>;
250 reg = <0xF0>;
251 };
252
253 peri_gpio_db_clk: peri_gpio_db_clk@f4 {
254 #clock-cells = <0>;
255 compatible = "altr,socfpga-a10-perip-clk";
256 clocks = <&periph_pll>;
257 reg = <0xF4>;
258 };
259
260 peri_sdmmc_clk: peri_sdmmc_clk@f8 {
261 #clock-cells = <0>;
262 compatible = "altr,socfpga-a10-perip-clk";
263 clocks = <&periph_pll>;
264 reg = <0xF8>;
265 };
266
267 peri_s2f_usr0_clk: peri_s2f_usr0_clk@fc {
268 #clock-cells = <0>;
269 compatible = "altr,socfpga-a10-perip-clk";
270 clocks = <&periph_pll>;
271 reg = <0xFC>;
272 };
273
274 peri_s2f_usr1_clk: peri_s2f_usr1_clk@100 {
275 #clock-cells = <0>;
276 compatible = "altr,socfpga-a10-perip-clk";
277 clocks = <&periph_pll>;
278 reg = <0x100>;
279 };
280
281 peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk@104 {
282 #clock-cells = <0>;
283 compatible = "altr,socfpga-a10-perip-clk";
284 clocks = <&periph_pll>;
285 reg = <0x104>;
286 };
Ley Foon Tan2f721202017-04-26 02:44:44 +0800287 };
288
Marek Vasut03f80b12018-04-23 01:37:57 +0200289 mpu_free_clk: mpu_free_clk@60 {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800290 #clock-cells = <0>;
291 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasut03f80b12018-04-23 01:37:57 +0200292 clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
293 <&osc1>, <&cb_intosc_hs_div2_clk>,
294 <&f2s_free_clk>;
295 reg = <0x60>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800296 };
297
Marek Vasut03f80b12018-04-23 01:37:57 +0200298 noc_free_clk: noc_free_clk@64 {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800299 #clock-cells = <0>;
300 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasut03f80b12018-04-23 01:37:57 +0200301 clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
302 <&osc1>, <&cb_intosc_hs_div2_clk>,
303 <&f2s_free_clk>;
304 reg = <0x64>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800305 };
306
Marek Vasut03f80b12018-04-23 01:37:57 +0200307 s2f_user1_free_clk: s2f_user1_free_clk@104 {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800308 #clock-cells = <0>;
309 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasut03f80b12018-04-23 01:37:57 +0200310 clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
311 <&osc1>, <&cb_intosc_hs_div2_clk>,
312 <&f2s_free_clk>;
313 reg = <0x104>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800314 };
315
Marek Vasut03f80b12018-04-23 01:37:57 +0200316 sdmmc_free_clk: sdmmc_free_clk@f8 {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800317 #clock-cells = <0>;
318 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasut03f80b12018-04-23 01:37:57 +0200319 clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
320 <&osc1>, <&cb_intosc_hs_div2_clk>,
321 <&f2s_free_clk>;
322 fixed-divider = <4>;
323 reg = <0xF8>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800324 };
325
Marek Vasut03f80b12018-04-23 01:37:57 +0200326 l4_sys_free_clk: l4_sys_free_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800327 #clock-cells = <0>;
328 compatible = "altr,socfpga-a10-perip-clk";
Marek Vasut03f80b12018-04-23 01:37:57 +0200329 clocks = <&noc_free_clk>;
330 fixed-divider = <4>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800331 };
Ley Foon Tan2f721202017-04-26 02:44:44 +0800332
Marek Vasut03f80b12018-04-23 01:37:57 +0200333 l4_main_clk: l4_main_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800334 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200335 compatible = "altr,socfpga-a10-gate-clk";
336 clocks = <&noc_free_clk>;
337 div-reg = <0xA8 0 2>;
338 clk-gate = <0x48 1>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800339 };
340
Marek Vasut03f80b12018-04-23 01:37:57 +0200341 l4_mp_clk: l4_mp_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800342 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200343 compatible = "altr,socfpga-a10-gate-clk";
344 clocks = <&noc_free_clk>;
345 div-reg = <0xA8 8 2>;
346 clk-gate = <0x48 2>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800347 };
348
Marek Vasut03f80b12018-04-23 01:37:57 +0200349 l4_sp_clk: l4_sp_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800350 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200351 compatible = "altr,socfpga-a10-gate-clk";
352 clocks = <&noc_free_clk>;
353 div-reg = <0xA8 16 2>;
354 clk-gate = <0x48 3>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800355 };
356
Marek Vasut03f80b12018-04-23 01:37:57 +0200357 mpu_periph_clk: mpu_periph_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800358 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200359 compatible = "altr,socfpga-a10-gate-clk";
360 clocks = <&mpu_free_clk>;
361 fixed-divider = <4>;
362 clk-gate = <0x48 0>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800363 };
364
Marek Vasut03f80b12018-04-23 01:37:57 +0200365 sdmmc_clk: sdmmc_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800366 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200367 compatible = "altr,socfpga-a10-gate-clk";
368 clocks = <&sdmmc_free_clk>;
369 clk-gate = <0xC8 5>;
370 clk-phase = <0 135>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800371 };
372
Marek Vasut03f80b12018-04-23 01:37:57 +0200373 qspi_clk: qspi_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800374 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200375 compatible = "altr,socfpga-a10-gate-clk";
376 clocks = <&l4_main_clk>;
377 clk-gate = <0xC8 11>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800378 };
379
Marek Vasut03f80b12018-04-23 01:37:57 +0200380 nand_clk: nand_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800381 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200382 compatible = "altr,socfpga-a10-gate-clk";
383 clocks = <&l4_mp_clk>;
384 clk-gate = <0xC8 10>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800385 };
386
Marek Vasut03f80b12018-04-23 01:37:57 +0200387 spi_m_clk: spi_m_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800388 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200389 compatible = "altr,socfpga-a10-gate-clk";
390 clocks = <&l4_main_clk>;
391 clk-gate = <0xC8 9>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800392 };
393
Marek Vasut03f80b12018-04-23 01:37:57 +0200394 usb_clk: usb_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800395 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200396 compatible = "altr,socfpga-a10-gate-clk";
397 clocks = <&l4_mp_clk>;
398 clk-gate = <0xC8 8>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800399 };
400
Marek Vasut03f80b12018-04-23 01:37:57 +0200401 s2f_usr1_clk: s2f_usr1_clk {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800402 #clock-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200403 compatible = "altr,socfpga-a10-gate-clk";
404 clocks = <&peri_s2f_usr1_clk>;
405 clk-gate = <0xC8 6>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800406 };
407 };
Marek Vasut03f80b12018-04-23 01:37:57 +0200408 };
Ley Foon Tan2f721202017-04-26 02:44:44 +0800409
Marek Vasut03f80b12018-04-23 01:37:57 +0200410 socfpga_axi_setup: stmmac-axi-config {
411 snps,wr_osr_lmt = <0xf>;
412 snps,rd_osr_lmt = <0xf>;
413 snps,blen = <0 0 0 0 16 0 0>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800414 };
415
416 gmac0: ethernet@ff800000 {
417 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
418 altr,sysmgr-syscon = <&sysmgr 0x44 0>;
419 reg = <0xff800000 0x2000>;
420 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
421 interrupt-names = "macirq";
422 /* Filled in by bootloader */
423 mac-address = [00 00 00 00 00 00];
424 snps,multicast-filter-bins = <256>;
425 snps,perfect-filter-entries = <128>;
426 tx-fifo-depth = <4096>;
427 rx-fifo-depth = <16384>;
428 clocks = <&l4_mp_clk>;
429 clock-names = "stmmaceth";
430 resets = <&rst EMAC0_RESET>;
431 reset-names = "stmmaceth";
Marek Vasut03f80b12018-04-23 01:37:57 +0200432 snps,axi-config = <&socfpga_axi_setup>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800433 status = "disabled";
434 };
435
436 gmac1: ethernet@ff802000 {
437 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
438 altr,sysmgr-syscon = <&sysmgr 0x48 0>;
439 reg = <0xff802000 0x2000>;
440 interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
441 interrupt-names = "macirq";
442 /* Filled in by bootloader */
443 mac-address = [00 00 00 00 00 00];
444 snps,multicast-filter-bins = <256>;
445 snps,perfect-filter-entries = <128>;
446 tx-fifo-depth = <4096>;
447 rx-fifo-depth = <16384>;
448 clocks = <&l4_mp_clk>;
449 clock-names = "stmmaceth";
450 resets = <&rst EMAC1_RESET>;
451 reset-names = "stmmaceth";
Marek Vasut03f80b12018-04-23 01:37:57 +0200452 snps,axi-config = <&socfpga_axi_setup>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800453 status = "disabled";
454 };
455
456 gmac2: ethernet@ff804000 {
457 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
458 altr,sysmgr-syscon = <&sysmgr 0x4C 0>;
459 reg = <0xff804000 0x2000>;
460 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
461 interrupt-names = "macirq";
462 /* Filled in by bootloader */
463 mac-address = [00 00 00 00 00 00];
464 snps,multicast-filter-bins = <256>;
465 snps,perfect-filter-entries = <128>;
466 tx-fifo-depth = <4096>;
467 rx-fifo-depth = <16384>;
468 clocks = <&l4_mp_clk>;
469 clock-names = "stmmaceth";
Marek Vasut03f80b12018-04-23 01:37:57 +0200470 snps,axi-config = <&socfpga_axi_setup>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800471 status = "disabled";
472 };
473
474 gpio0: gpio@ffc02900 {
475 #address-cells = <1>;
476 #size-cells = <0>;
477 compatible = "snps,dw-apb-gpio";
478 reg = <0xffc02900 0x100>;
479 status = "disabled";
480
481 porta: gpio-controller@0 {
482 compatible = "snps,dw-apb-gpio-port";
Marek Vasut03f80b12018-04-23 01:37:57 +0200483 bank-name = "porta";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800484 gpio-controller;
485 #gpio-cells = <2>;
486 snps,nr-gpios = <29>;
487 reg = <0>;
488 interrupt-controller;
489 #interrupt-cells = <2>;
490 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
491 };
492 };
493
494 gpio1: gpio@ffc02a00 {
495 #address-cells = <1>;
496 #size-cells = <0>;
497 compatible = "snps,dw-apb-gpio";
498 reg = <0xffc02a00 0x100>;
499 status = "disabled";
500
501 portb: gpio-controller@0 {
502 compatible = "snps,dw-apb-gpio-port";
Marek Vasut03f80b12018-04-23 01:37:57 +0200503 bank-name = "portb";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800504 gpio-controller;
505 #gpio-cells = <2>;
506 snps,nr-gpios = <29>;
507 reg = <0>;
508 interrupt-controller;
509 #interrupt-cells = <2>;
510 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
511 };
512 };
513
514 gpio2: gpio@ffc02b00 {
515 #address-cells = <1>;
516 #size-cells = <0>;
517 compatible = "snps,dw-apb-gpio";
518 reg = <0xffc02b00 0x100>;
519 status = "disabled";
520
521 portc: gpio-controller@0 {
522 compatible = "snps,dw-apb-gpio-port";
Marek Vasut03f80b12018-04-23 01:37:57 +0200523 bank-name = "portc";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800524 gpio-controller;
525 #gpio-cells = <2>;
526 snps,nr-gpios = <27>;
527 reg = <0>;
528 interrupt-controller;
529 #interrupt-cells = <2>;
530 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
531 };
532 };
533
534 fpga_mgr: fpga-mgr@ffd03000 {
535 compatible = "altr,socfpga-a10-fpga-mgr";
536 reg = <0xffd03000 0x100
537 0xffcfe400 0x20>;
538 clocks = <&l4_mp_clk>;
539 resets = <&rst FPGAMGR_RESET>;
540 reset-names = "fpgamgr";
541 };
542
543 i2c0: i2c@ffc02200 {
544 #address-cells = <1>;
545 #size-cells = <0>;
546 compatible = "snps,designware-i2c";
547 reg = <0xffc02200 0x100>;
548 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
549 clocks = <&l4_sp_clk>;
550 status = "disabled";
551 };
552
553 i2c1: i2c@ffc02300 {
554 #address-cells = <1>;
555 #size-cells = <0>;
556 compatible = "snps,designware-i2c";
557 reg = <0xffc02300 0x100>;
558 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
559 clocks = <&l4_sp_clk>;
560 status = "disabled";
561 };
562
563 i2c2: i2c@ffc02400 {
564 #address-cells = <1>;
565 #size-cells = <0>;
566 compatible = "snps,designware-i2c";
567 reg = <0xffc02400 0x100>;
568 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
569 clocks = <&l4_sp_clk>;
570 status = "disabled";
571 };
572
573 i2c3: i2c@ffc02500 {
574 #address-cells = <1>;
575 #size-cells = <0>;
576 compatible = "snps,designware-i2c";
577 reg = <0xffc02500 0x100>;
578 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
579 clocks = <&l4_sp_clk>;
580 status = "disabled";
581 };
582
583 i2c4: i2c@ffc02600 {
584 #address-cells = <1>;
585 #size-cells = <0>;
586 compatible = "snps,designware-i2c";
587 reg = <0xffc02600 0x100>;
588 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
589 clocks = <&l4_sp_clk>;
590 status = "disabled";
591 };
592
Marek Vasut03f80b12018-04-23 01:37:57 +0200593 spi1: spi@ffda5000 {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800594 compatible = "snps,dw-apb-ssi";
595 #address-cells = <1>;
596 #size-cells = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200597 reg = <0xffda5000 0x100>;
598 interrupts = <0 102 4>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800599 num-chipselect = <4>;
600 bus-num = <0>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200601 /*32bit_access;*/
Ley Foon Tan2f721202017-04-26 02:44:44 +0800602 tx-dma-channel = <&pdma 16>;
603 rx-dma-channel = <&pdma 17>;
604 clocks = <&spi_m_clk>;
605 status = "disabled";
606 };
607
Marek Vasut03f80b12018-04-23 01:37:57 +0200608 sdr: sdr@ffc25000 {
609 compatible = "altr,sdr-ctl", "syscon";
610 reg = <0xffcfb100 0x80>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800611 };
612
613 L2: l2-cache@fffff000 {
614 compatible = "arm,pl310-cache";
615 reg = <0xfffff000 0x1000>;
616 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
617 cache-unified;
618 cache-level = <2>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200619 prefetch-data = <1>;
620 prefetch-instr = <1>;
621 arm,shared-override;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800622 };
623
624 mmc: dwmmc0@ff808000 {
625 #address-cells = <1>;
626 #size-cells = <0>;
627 compatible = "altr,socfpga-dw-mshc";
628 reg = <0xff808000 0x1000>;
629 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
630 fifo-depth = <0x400>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800631 clocks = <&l4_mp_clk>, <&sdmmc_clk>;
632 clock-names = "biu", "ciu";
633 status = "disabled";
634 };
635
Marek Vasut03f80b12018-04-23 01:37:57 +0200636 nand: nand@ffb90000 {
637 #address-cells = <1>;
638 #size-cells = <1>;
639 compatible = "denali,denali-nand-dt", "altr,socfpga-denali-nand";
Marek Vasut66803de2018-05-07 22:22:26 +0200640 reg = <0xffb90000 0x20>,
641 <0xffb80000 0x1000>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200642 reg-names = "nand_data", "denali_reg";
643 interrupts = <0 99 4>;
644 dma-mask = <0xffffffff>;
645 clocks = <&nand_clk>;
646 status = "disabled";
647 };
648
Ley Foon Tan2f721202017-04-26 02:44:44 +0800649 ocram: sram@ffe00000 {
650 compatible = "mmio-sram";
651 reg = <0xffe00000 0x40000>;
652 };
653
Marek Vasut03f80b12018-04-23 01:37:57 +0200654 eccmgr: eccmgr {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800655 compatible = "altr,socfpga-a10-ecc-manager";
656 altr,sysmgr-syscon = <&sysmgr>;
657 #address-cells = <1>;
658 #size-cells = <1>;
659 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
660 <0 0 IRQ_TYPE_LEVEL_HIGH>;
661 interrupt-controller;
662 #interrupt-cells = <2>;
663 ranges;
664
665 sdramedac {
666 compatible = "altr,sdram-edac-a10";
667 altr,sdr-syscon = <&sdr>;
668 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
669 <49 IRQ_TYPE_LEVEL_HIGH>;
670 };
671
672 l2-ecc@ffd06010 {
673 compatible = "altr,socfpga-a10-l2-ecc";
674 reg = <0xffd06010 0x4>;
675 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
676 <32 IRQ_TYPE_LEVEL_HIGH>;
677 };
678
679 ocram-ecc@ff8c3000 {
680 compatible = "altr,socfpga-a10-ocram-ecc";
681 reg = <0xff8c3000 0x400>;
682 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
683 <33 IRQ_TYPE_LEVEL_HIGH>;
684 };
685
Ley Foon Tan2f721202017-04-26 02:44:44 +0800686 emac0-rx-ecc@ff8c0800 {
687 compatible = "altr,socfpga-eth-mac-ecc";
688 reg = <0xff8c0800 0x400>;
689 altr,ecc-parent = <&gmac0>;
690 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>,
691 <36 IRQ_TYPE_LEVEL_HIGH>;
692 };
693
694 emac0-tx-ecc@ff8c0c00 {
695 compatible = "altr,socfpga-eth-mac-ecc";
696 reg = <0xff8c0c00 0x400>;
697 altr,ecc-parent = <&gmac0>;
698 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
699 <37 IRQ_TYPE_LEVEL_HIGH>;
700 };
701
702 dma-ecc@ff8c8000 {
703 compatible = "altr,socfpga-dma-ecc";
704 reg = <0xff8c8000 0x400>;
705 altr,ecc-parent = <&pdma>;
706 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
707 <42 IRQ_TYPE_LEVEL_HIGH>;
708 };
709
710 usb0-ecc@ff8c8800 {
711 compatible = "altr,socfpga-usb-ecc";
712 reg = <0xff8c8800 0x400>;
713 altr,ecc-parent = <&usb0>;
714 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
715 <34 IRQ_TYPE_LEVEL_HIGH>;
716 };
717 };
718
Marek Vasut03f80b12018-04-23 01:37:57 +0200719 qspi: spi@ff809000 {
720 compatible = "cdns,qspi-nor", "cadence,qspi";
Ley Foon Tan2f721202017-04-26 02:44:44 +0800721 #address-cells = <1>;
722 #size-cells = <0>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800723 reg = <0xff809000 0x100>,
Marek Vasut03f80b12018-04-23 01:37:57 +0200724 <0xffa00000 0x100000>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800725 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
Jason Rushfeaa3f92018-01-23 17:13:10 -0600726 cdns,fifo-depth = <128>;
727 cdns,fifo-width = <4>;
Marek Vasut03f80b12018-04-23 01:37:57 +0200728 cdns,trigger-address = <0x00000000>;
729 clocks = <&qspi_clk>;
Ley Foon Tan2f721202017-04-26 02:44:44 +0800730 status = "disabled";
731 };
732
733 rst: rstmgr@ffd05000 {
734 #reset-cells = <1>;
735 compatible = "altr,rst-mgr";
736 reg = <0xffd05000 0x100>;
737 altr,modrst-offset = <0x20>;
738 };
739
740 scu: snoop-control-unit@ffffc000 {
741 compatible = "arm,cortex-a9-scu";
742 reg = <0xffffc000 0x100>;
743 };
744
745 sysmgr: sysmgr@ffd06000 {
746 compatible = "altr,sys-mgr", "syscon";
747 reg = <0xffd06000 0x300>;
748 cpu1-start-addr = <0xffd06230>;
749 };
750
751 /* Local timer */
752 timer@ffffc600 {
753 compatible = "arm,cortex-a9-twd-timer";
754 reg = <0xffffc600 0x100>;
755 interrupts = <1 13 0xf04>;
756 clocks = <&mpu_periph_clk>;
757 };
758
759 timer0: timer0@ffc02700 {
760 compatible = "snps,dw-apb-timer";
761 interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
762 reg = <0xffc02700 0x100>;
763 clocks = <&l4_sp_clk>;
764 clock-names = "timer";
765 };
766
767 timer1: timer1@ffc02800 {
768 compatible = "snps,dw-apb-timer";
769 interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
770 reg = <0xffc02800 0x100>;
771 clocks = <&l4_sp_clk>;
772 clock-names = "timer";
773 };
774
775 timer2: timer2@ffd00000 {
776 compatible = "snps,dw-apb-timer";
777 interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
778 reg = <0xffd00000 0x100>;
779 clocks = <&l4_sys_free_clk>;
780 clock-names = "timer";
781 };
782
783 timer3: timer3@ffd00100 {
784 compatible = "snps,dw-apb-timer";
785 interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
786 reg = <0xffd01000 0x100>;
787 clocks = <&l4_sys_free_clk>;
788 clock-names = "timer";
789 };
790
791 uart0: serial0@ffc02000 {
792 compatible = "snps,dw-apb-uart";
793 reg = <0xffc02000 0x100>;
794 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
795 reg-shift = <2>;
796 reg-io-width = <4>;
797 clocks = <&l4_sp_clk>;
798 status = "disabled";
799 };
800
801 uart1: serial1@ffc02100 {
802 compatible = "snps,dw-apb-uart";
803 reg = <0xffc02100 0x100>;
804 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
805 reg-shift = <2>;
806 reg-io-width = <4>;
807 clocks = <&l4_sp_clk>;
808 status = "disabled";
809 };
810
Marek Vasut03f80b12018-04-23 01:37:57 +0200811 usbphy0: usbphy {
Ley Foon Tan2f721202017-04-26 02:44:44 +0800812 #phy-cells = <0>;
813 compatible = "usb-nop-xceiv";
814 status = "okay";
815 };
816
817 usb0: usb@ffb00000 {
818 compatible = "snps,dwc2";
819 reg = <0xffb00000 0xffff>;
820 interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
821 clocks = <&usb_clk>;
822 clock-names = "otg";
823 resets = <&rst USB0_RESET>;
824 reset-names = "dwc2";
825 phys = <&usbphy0>;
826 phy-names = "usb2-phy";
827 status = "disabled";
828 };
829
830 usb1: usb@ffb40000 {
831 compatible = "snps,dwc2";
832 reg = <0xffb40000 0xffff>;
833 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
834 clocks = <&usb_clk>;
835 clock-names = "otg";
836 resets = <&rst USB1_RESET>;
837 reset-names = "dwc2";
838 phys = <&usbphy0>;
839 phy-names = "usb2-phy";
840 status = "disabled";
841 };
842
843 watchdog0: watchdog@ffd00200 {
844 compatible = "snps,dw-wdt";
845 reg = <0xffd00200 0x100>;
846 interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
847 clocks = <&l4_sys_free_clk>;
848 status = "disabled";
849 };
850
851 watchdog1: watchdog@ffd00300 {
852 compatible = "snps,dw-wdt";
853 reg = <0xffd00300 0x100>;
854 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
855 clocks = <&l4_sys_free_clk>;
856 status = "disabled";
857 };
858 };
859};