blob: 64665e499e7f88836717b0888ebb83554c3055f1 [file] [log] [blame]
Jit Loon Lim977071e2024-03-12 22:01:03 +08001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2024 Intel Corporation <www.intel.com>
4 */
5
6/dts-v1/;
7#include <dt-bindings/reset/altr,rst-mgr-agx5.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/clock/agilex5-clock.h>
10
11/ {
12 compatible = "intel,socfpga-agilex";
13 #address-cells = <2>;
14 #size-cells = <2>;
15
16 reserved-memory {
17 #address-cells = <2>;
18 #size-cells = <2>;
19 ranges;
20
21 service_reserved: svcbuffer@0 {
22 compatible = "shared-dma-pool";
23 reg = <0x0 0x0 0x0 0x1000000>;
24 alignment = <0x1000>;
25 no-map;
26 };
27 };
28
29 cpus {
30 #address-cells = <1>;
31 #size-cells = <0>;
32
33 cpu0: cpu@0 {
34 compatible = "arm,cortex-a55";
35 device_type = "cpu";
36 enable-method = "psci";
37 reg = <0x0>;
38 };
39
40 cpu1: cpu@1 {
41 compatible = "arm,cortex-a55";
42 device_type = "cpu";
43 enable-method = "psci";
44 reg = <0x1>;
45 };
46
47 cpu2: cpu@2 {
48 compatible = "arm,cortex-a76";
49 device_type = "cpu";
50 enable-method = "psci";
51 reg = <0x2>;
52 };
53
54 cpu3: cpu@3 {
55 compatible = "arm,cortex-a76";
56 device_type = "cpu";
57 enable-method = "psci";
58 reg = <0x3>;
59 };
60 };
61
62 pmu {
63 compatible = "arm,armv8-pmuv3";
64 interrupts = <0 170 4>,
65 <0 171 4>,
66 <0 172 4>,
67 <0 173 4>;
68 interrupt-affinity = <&cpu0>,
69 <&cpu1>,
70 <&cpu2>,
71 <&cpu3>;
72 interrupt-parent = <&intc>;
73 };
74
75 psci {
76 compatible = "arm,psci-0.2";
77 method = "smc";
78 };
79
80 intc: intc@fffc1000 {
81 compatible = "arm,gic-400", "arm,cortex-a15-gic";
82 #interrupt-cells = <3>;
83 interrupt-controller;
84 reg = <0x0 0x1d000000 0x0 0x10000>;
85 };
86
87 soc {
88 #address-cells = <1>;
89 #size-cells = <1>;
90 compatible = "simple-bus";
91 device_type = "soc";
92 interrupt-parent = <&intc>;
93 ranges = <0 0 0 0xffffffff>;
94
95 base_fpga_region {
96 #address-cells = <0x1>;
97 #size-cells = <0x1>;
98 compatible = "fpga-region";
99 fpga-mgr = <&fpga_mgr>;
100 };
101
102 clkmgr: clock-controller@10d10000 {
103 compatible = "intel,agilex5-clkmgr";
104 reg = <0x10d10000 0x1000>;
105 #clock-cells = <1>;
106 };
107
108 clocks {
109 cb_intosc_hs_div2_clk: cb-intosc-hs-div2-clk {
110 #clock-cells = <0>;
111 compatible = "fixed-clock";
112 };
113
114 cb_intosc_ls_clk: cb-intosc-ls-clk {
115 #clock-cells = <0>;
116 compatible = "fixed-clock";
117 };
118
119 f2s_free_clk: f2s-free-clk {
120 #clock-cells = <0>;
121 compatible = "fixed-clock";
122 };
123
124 osc1: osc1 {
125 #clock-cells = <0>;
126 compatible = "fixed-clock";
127 };
128
129 qspi_clk: qspi-clk {
130 #clock-cells = <0>;
131 compatible = "fixed-clock";
132 clock-frequency = <200000000>;
133 };
134 };
135 gmac0: ethernet@10810000 {
136 compatible = "intel,socfpga-dwxgmac", "snps,dwxgmac-2.10", "snps,dwxgmac";
137 reg = <0x10810000 0x3500>;
138 interrupts = <0 190 4>;
139 interrupt-names = "macirq";
140 mac-address = [00 00 00 00 00 00];
141 resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
142 reset-names = "stmmaceth", "stmmaceth-ocp";
143 tx-fifo-depth = <32768>;
144 rx-fifo-depth = <16384>;
145 iommus = <&smmu 1>;
146 altr,sysmgr-syscon = <&sysmgr 0x44 0>;
147 clocks = <&clkmgr AGILEX5_EMAC0_CLK>;
148 clock-names = "stmmaceth";
149 status = "disabled";
150 };
151
152 gmac1: ethernet@10820000 {
153 compatible = "intel,socfpga-dwxgmac", "snps,dwxgmac-2.10", "snps,dwxgmac";
154 reg = <0x10820000 0x3500>;
155 interrupts = <0 207 4>;
156 interrupt-names = "macirq";
157 mac-address = [00 00 00 00 00 00];
158 resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
159 reset-names = "stmmaceth", "stmmaceth-ocp";
160 tx-fifo-depth = <32768>;
161 rx-fifo-depth = <16384>;
162 iommus = <&smmu 2>;
163 altr,sysmgr-syscon = <&sysmgr 0x48 0>;
164 clocks = <&clkmgr AGILEX5_EMAC1_CLK>;
165 clock-names = "stmmaceth";
166 status = "disabled";
167 };
168
169 gmac2: ethernet@10830000 {
170 compatible = "intel,socfpga-dwxgmac", "snps,dwxgmac-2.10", "snps,dwxgmac";
171 reg = <0x10830000 0x3500>;
172 interrupts = <0 224 4>;
173 interrupt-names = "macirq";
174 mac-address = [00 00 00 00 00 00];
175 resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
176 reset-names = "stmmaceth", "stmmaceth-ocp";
177 tx-fifo-depth = <32768>;
178 rx-fifo-depth = <16384>;
179 iommus = <&smmu 3>;
180 altr,sysmgr-syscon = <&sysmgr 0x4c 0>;
181 clocks = <&clkmgr AGILEX5_EMAC2_CLK>;
182 clock-names = "stmmaceth";
183 status = "disabled";
184 };
185
186 gpio0: gpio@10c03200 {
187 #address-cells = <1>;
188 #size-cells = <0>;
189 compatible = "snps,dw-apb-gpio";
190 reg = <0x10c03200 0x80>;
191 resets = <&rst GPIO0_RESET>;
192 status = "disabled";
193
194 porta: gpio-controller@0 {
195 compatible = "snps,dw-apb-gpio-port";
196 gpio-controller;
197 #gpio-cells = <2>;
198 snps,nr-gpios = <24>;
199 reg = <0>;
200 interrupt-controller;
201 #interrupt-cells = <2>;
202 interrupts = <0 110 4>;
203 };
204 };
205
206 gpio1: gpio@10c03300 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 compatible = "snps,dw-apb-gpio";
210 reg = <0x10c03300 0x80>;
211 resets = <&rst GPIO1_RESET>;
212 status = "disabled";
213
214 portb: gpio-controller@0 {
215 compatible = "snps,dw-apb-gpio-port";
216 gpio-controller;
217 #gpio-cells = <2>;
218 snps,nr-gpios = <24>;
219 reg = <0>;
220 interrupt-controller;
221 #interrupt-cells = <2>;
222 interrupts = <0 111 4>;
223 };
224 };
225
226 i2c0: i2c@10c02800 {
227 #address-cells = <1>;
228 #size-cells = <0>;
229 compatible = "snps,designware-i2c";
230 reg = <0x10c02800 0x100>;
231 interrupts = <0 103 4>;
232 resets = <&rst I2C0_RESET>;
233 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
234 status = "disabled";
235 };
236
237 i2c1: i2c@10c02900 {
238 #address-cells = <1>;
239 #size-cells = <0>;
240 compatible = "snps,designware-i2c";
241 reg = <0x10c02900 0x100>;
242 interrupts = <0 104 4>;
243 resets = <&rst I2C1_RESET>;
244 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
245 status = "disabled";
246 };
247
248 i2c2: i2c@10c02a00 {
249 #address-cells = <1>;
250 #size-cells = <0>;
251 compatible = "snps,designware-i2c";
252 reg = <0x10c02a00 0x100>;
253 interrupts = <0 105 4>;
254 resets = <&rst I2C2_RESET>;
255 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
256 status = "disabled";
257 };
258
259 i2c3: i2c@10c02b00 {
260 #address-cells = <1>;
261 #size-cells = <0>;
262 compatible = "snps,designware-i2c";
263 reg = <0x10c02b00 0x100>;
264 interrupts = <0 106 4>;
265 resets = <&rst I2C3_RESET>;
266 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
267 status = "disabled";
268 };
269
270 i2c4: i2c@10c02c00 {
271 #address-cells = <1>;
272 #size-cells = <0>;
273 compatible = "snps,designware-i2c";
274 reg = <0x10c02c00 0x100>;
275 interrupts = <0 107 4>;
276 resets = <&rst I2C4_RESET>;
277 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
278 status = "disabled";
279 };
280
281 i3c0: i3c@10da0000 {
282 compatible = "snps,dw-i3c-master-1.00a";
283 reg = <0x10da0000 0x1000>;
284 #address-cells = <1>;
285 #size-cells = <0>;
286 interrupts = <0 164 4>;
287 resets = <&rst I3C0_RESET>;
288 max_devices = <11>;
289 clocks = <&clkmgr AGILEX5_L4_MP_CLK>;
290 status = "disabled";
291 };
292
293 i3c1: i3c@10da1000 {
294 compatible = "snps,dw-i3c-master-1.00a";
295 reg = <0x10da1000 0x1000>;
296 #address-cells = <1>;
297 #size-cells = <0>;
298 interrupts = <0 165 4>;
299 resets = <&rst I3C1_RESET>;
300 clocks = <&clkmgr AGILEX5_L4_MP_CLK>;
301 max_devices = <11>;
302 status = "disabled";
303 };
304
305 combophy0: combophy@0 {
306 #phy-cells = <0>;
307 phy-type = <1>;
308 compatible = "cdns,combophy";
309 reg = <0x10808000 0x1000>;
310 resets = <&rst COMBOPHY_RESET>;
311 reset-names = "reset";
312 status = "disabled";
313 };
314
315 mmc: mmc0@10808000 {
316 #address-cells = <1>;
317 #size-cells = <0>;
318 compatible = "cdns,sd4hc";
319 reg = <0x10808000 0x1000>;
320 interrupts = <0 96 4>;
321 phys = <&combophy0>;
322 phy-names = "combo-phy";
323 clocks = <&clkmgr AGILEX5_L4_MP_CLK>,
324 <&clkmgr AGILEX5_SDMMC_CLK>;
325 clock-names = "biu", "ciu";
326 fifo-depth = <0x800>;
327 resets = <&rst SDMMC_RESET>;
328 reset-names = "reset";
329 iommus = <&smmu 5>;
330 status = "disabled";
331 };
332
Dinesh Maniyam26368952025-02-27 00:18:16 +0800333 nand: nand@10b80000 {
334 compatible = "cdns,nand";
335 reg = <0x10b80000 0x10000>,
336 <0x10840000 0x1000>;
337 reg-names = "reg", "sdma";
338 #address-cells = <1>;
339 #size-cells = <0>;
340 interrupts = <0 97 4>;
341 clocks = <&clkmgr AGILEX5_NAND_CLK>;
342 resets = <&rst NAND_RESET>, <&rst COMBOPHY_RESET>;
343 cdns,board-delay-ps = <4830>;
344 status = "disabled";
345 };
346
Jit Loon Lim977071e2024-03-12 22:01:03 +0800347 ocram: sram@00000000 {
348 compatible = "mmio-sram";
349 reg = <0x00000000 0x200000>;
350 };
351
352 rst: rstmgr@10d11000 {
353 #reset-cells = <1>;
354 compatible = "altr,stratix10-rst-mgr";
355 reg = <0x10d11000 0x1000>;
356 };
357
358 smmu: iommu@16000000 {
359 compatible = "arm,mmu-500", "arm,smmu-v2";
360 reg = <0x16000000 0x40000>;
361 #global-interrupts = <2>;
362 #iommu-cells = <1>;
363 interrupt-parent = <&intc>;
364 interrupts = <0 128 4>, /* Global Secure Fault */
365 <0 129 4>, /* Global Non-secure Fault */
366 /* Non-secure Context Interrupts (32) */
367 <0 138 4>, <0 139 4>, <0 140 4>, <0 141 4>,
368 <0 142 4>, <0 143 4>, <0 144 4>, <0 145 4>,
369 <0 146 4>, <0 147 4>, <0 148 4>, <0 149 4>,
370 <0 150 4>, <0 151 4>, <0 152 4>, <0 153 4>,
371 <0 154 4>, <0 155 4>, <0 156 4>, <0 157 4>,
372 <0 158 4>, <0 159 4>, <0 160 4>, <0 161 4>,
373 <0 162 4>, <0 163 4>, <0 164 4>, <0 165 4>,
374 <0 166 4>, <0 167 4>, <0 168 4>, <0 169 4>;
375 stream-match-mask = <0x7ff0>;
376 status = "disabled";
377 };
378
379 spi0: spi@10da4000 {
380 compatible = "intel,agilex-spi",
381 "snps,dw-apb-ssi-4.00a", "snps,dw-apb-ssi";
382 #address-cells = <1>;
383 #size-cells = <0>;
384 reg = <0x10da4000 0x1000>;
385 interrupts = <0 99 4>;
386 resets = <&rst SPIM0_RESET>;
387 reg-io-width = <4>;
388 num-cs = <4>;
389 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
390 status = "disabled";
391 };
392
393 spi1: spi@10da5000 {
394 compatible = "intel,agilex-spi",
395 "snps,dw-apb-ssi-4.00a", "snps,dw-apb-ssi";
396 #address-cells = <1>;
397 #size-cells = <0>;
398 reg = <0x10da5000 0x1000>;
399 interrupts = <0 100 4>;
400 resets = <&rst SPIM1_RESET>;
401 reg-io-width = <4>;
402 num-cs = <4>;
403 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
404 status = "disabled";
405 };
406
407 sysmgr: sysmgr@10d12000 {
408 compatible = "altr,sys-mgr-s10","altr,sys-mgr";
409 reg = <0x10d12000 0x500>;
410 };
411
412 /* Local timer */
413 timer {
414 compatible = "arm,armv8-timer";
415 interrupts = <1 13 0xf08>,
416 <1 14 0xf08>,
417 <1 11 0xf08>,
418 <1 10 0xf08>;
419 };
420
421 timer0: timer0@10c03000 {
422 compatible = "snps,dw-apb-timer";
423 interrupts = <0 113 4>;
424 reg = <0x10c03000 0x100>;
425 resets = <&rst SPTIMER0_RESET>;
426 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
427 clock-names = "timer";
428 status = "disabled";
429 };
430
431 timer1: timer1@10c03100 {
432 compatible = "snps,dw-apb-timer";
433 interrupts = <0 114 4>;
434 reg = <0x10c03100 0x100>;
435 resets = <&rst SPTIMER1_RESET>;
436 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
437 clock-names = "timer";
438 status = "disabled";
439 };
440
441 timer2: timer2@10d00000 {
442 compatible = "snps,dw-apb-timer";
443 interrupts = <0 115 4>;
444 reg = <0x10d00000 0x100>;
445 resets = <&rst L4SYSTIMER0_RESET>;
446 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
447 clock-names = "timer";
448 status = "disabled";
449 };
450
451 timer3: timer3@10d00100 {
452 compatible = "snps,dw-apb-timer";
453 interrupts = <0 116 4>;
454 reg = <0x10d00100 0x100>;
455 resets = <&rst L4SYSTIMER1_RESET>;
456 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
457 clock-names = "timer";
458 status = "disabled";
459 };
460
461 uart0: serial0@10c02000 {
462 compatible = "snps,dw-apb-uart";
463 reg = <0x10c02000 0x100>;
464 interrupts = <0 108 4>;
465 reg-shift = <2>;
466 reg-io-width = <4>;
467 resets = <&rst UART0_RESET>;
468 status = "disabled";
469 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
470 clock-frequency = <100000000>;
471 };
472
473 uart1: serial1@10c02100 {
474 compatible = "snps,dw-apb-uart";
475 reg = <0x10c02100 0x100>;
476 interrupts = <0 109 4>;
477 reg-shift = <2>;
478 reg-io-width = <4>;
479 resets = <&rst UART1_RESET>;
480 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
481 status = "disabled";
482 };
483
484 usbphy0: usbphy@0 {
485 #phy-cells = <0>;
486 compatible = "usb-nop-xceiv";
487 clocks = <&clkmgr AGILEX5_USB_CLK>;
488 status = "disabled";
489 };
490
491 usb0: usb@10b00000 {
492 compatible = "snps,dwc2";
493 reg = <0x10b00000 0x40000>;
494 interrupts = <0 93 4>;
495 phys = <&usbphy0>;
496 phy-names = "usb2-phy";
497 resets = <&rst USB0_RESET>, <&rst USB0_OCP_RESET>;
498 reset-names = "dwc2", "dwc2-ecc";
499 clocks = <&clkmgr AGILEX5_USB_CLK>;
500 iommus = <&smmu 6>;
501 status = "disabled";
502 };
503
504 usb31: usb31@11000000 {
505 compatible = "snps,dwc3";
506 reg = <0x11000000 0x100000>;
507 resets = <&rst USB1_RESET>;
508 phys = <&usbphy0>, <&usbphy0>;
509 phy-names = "usb2-phy", "usb3-phy";
510 dr_mode = "host";
511 maximum-speed = "super-speed";
512 snps,dis_u2_susphy_quirk;
513 status = "disabled";
514 };
515
516 watchdog0: watchdog@10d00200 {
517 compatible = "snps,dw-wdt";
518 reg = <0x10d00200 0x100>;
519 interrupts = <0 117 4>;
520 resets = <&rst WATCHDOG0_RESET>;
521 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
522 status = "disabled";
523 };
524
525 watchdog1: watchdog@10d00300 {
526 compatible = "snps,dw-wdt";
527 reg = <0x10d00300 0x100>;
528 interrupts = <0 118 4>;
529 resets = <&rst WATCHDOG1_RESET>;
530 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
531 status = "disabled";
532 };
533
534 watchdog2: watchdog@10d00400 {
535 compatible = "snps,dw-wdt";
536 reg = <0x10d00400 0x100>;
537 interrupts = <0 125 4>;
538 resets = <&rst WATCHDOG2_RESET>;
539 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
540 status = "disabled";
541 };
542
543 watchdog3: watchdog@10d00500 {
544 compatible = "snps,dw-wdt";
545 reg = <0x10d00500 0x100>;
546 interrupts = <0 126 4>;
547 resets = <&rst WATCHDOG3_RESET>;
548 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
549 status = "disabled";
550 };
551
552 watchdog4: watchdog@10d00600 {
553 compatible = "snps,dw-wdt";
554 reg = <0x10d00600 0x100>;
555 interrupts = <0 175 4>;
556 resets = <&rst WATCHDOG4_RESET>;
557 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
558 status = "disabled";
559 };
560
561 /* QSPI address not available yet */
562 qspi: spi@108d2000 {
563 compatible = "cdns,qspi-nor";
564 #address-cells = <1>;
565 #size-cells = <0>;
566 reg = <0x108d2000 0x100>,
567 <0x10900000 0x100000>;
568 interrupts = <0 3 4>;
569 cdns,fifo-depth = <128>;
570 cdns,fifo-width = <4>;
571 cdns,trigger-address = <0x00000000>;
572 clocks = <&qspi_clk>;
573
574 status = "disabled";
575 };
576
577 firmware {
578 svc {
579 compatible = "intel,stratix10-svc";
580 method = "smc";
581 memory-region = <&service_reserved>;
582
583 fpga_mgr: fpga-mgr {
584 compatible = "intel,stratix10-soc-fpga-mgr";
585 };
586 };
587 };
588 };
589};