blob: 03b55040497473c6ad888c8694210b22de589149 [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
333 ocram: sram@00000000 {
334 compatible = "mmio-sram";
335 reg = <0x00000000 0x200000>;
336 };
337
338 rst: rstmgr@10d11000 {
339 #reset-cells = <1>;
340 compatible = "altr,stratix10-rst-mgr";
341 reg = <0x10d11000 0x1000>;
342 };
343
344 smmu: iommu@16000000 {
345 compatible = "arm,mmu-500", "arm,smmu-v2";
346 reg = <0x16000000 0x40000>;
347 #global-interrupts = <2>;
348 #iommu-cells = <1>;
349 interrupt-parent = <&intc>;
350 interrupts = <0 128 4>, /* Global Secure Fault */
351 <0 129 4>, /* Global Non-secure Fault */
352 /* Non-secure Context Interrupts (32) */
353 <0 138 4>, <0 139 4>, <0 140 4>, <0 141 4>,
354 <0 142 4>, <0 143 4>, <0 144 4>, <0 145 4>,
355 <0 146 4>, <0 147 4>, <0 148 4>, <0 149 4>,
356 <0 150 4>, <0 151 4>, <0 152 4>, <0 153 4>,
357 <0 154 4>, <0 155 4>, <0 156 4>, <0 157 4>,
358 <0 158 4>, <0 159 4>, <0 160 4>, <0 161 4>,
359 <0 162 4>, <0 163 4>, <0 164 4>, <0 165 4>,
360 <0 166 4>, <0 167 4>, <0 168 4>, <0 169 4>;
361 stream-match-mask = <0x7ff0>;
362 status = "disabled";
363 };
364
365 spi0: spi@10da4000 {
366 compatible = "intel,agilex-spi",
367 "snps,dw-apb-ssi-4.00a", "snps,dw-apb-ssi";
368 #address-cells = <1>;
369 #size-cells = <0>;
370 reg = <0x10da4000 0x1000>;
371 interrupts = <0 99 4>;
372 resets = <&rst SPIM0_RESET>;
373 reg-io-width = <4>;
374 num-cs = <4>;
375 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
376 status = "disabled";
377 };
378
379 spi1: spi@10da5000 {
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 = <0x10da5000 0x1000>;
385 interrupts = <0 100 4>;
386 resets = <&rst SPIM1_RESET>;
387 reg-io-width = <4>;
388 num-cs = <4>;
389 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
390 status = "disabled";
391 };
392
393 sysmgr: sysmgr@10d12000 {
394 compatible = "altr,sys-mgr-s10","altr,sys-mgr";
395 reg = <0x10d12000 0x500>;
396 };
397
398 /* Local timer */
399 timer {
400 compatible = "arm,armv8-timer";
401 interrupts = <1 13 0xf08>,
402 <1 14 0xf08>,
403 <1 11 0xf08>,
404 <1 10 0xf08>;
405 };
406
407 timer0: timer0@10c03000 {
408 compatible = "snps,dw-apb-timer";
409 interrupts = <0 113 4>;
410 reg = <0x10c03000 0x100>;
411 resets = <&rst SPTIMER0_RESET>;
412 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
413 clock-names = "timer";
414 status = "disabled";
415 };
416
417 timer1: timer1@10c03100 {
418 compatible = "snps,dw-apb-timer";
419 interrupts = <0 114 4>;
420 reg = <0x10c03100 0x100>;
421 resets = <&rst SPTIMER1_RESET>;
422 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
423 clock-names = "timer";
424 status = "disabled";
425 };
426
427 timer2: timer2@10d00000 {
428 compatible = "snps,dw-apb-timer";
429 interrupts = <0 115 4>;
430 reg = <0x10d00000 0x100>;
431 resets = <&rst L4SYSTIMER0_RESET>;
432 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
433 clock-names = "timer";
434 status = "disabled";
435 };
436
437 timer3: timer3@10d00100 {
438 compatible = "snps,dw-apb-timer";
439 interrupts = <0 116 4>;
440 reg = <0x10d00100 0x100>;
441 resets = <&rst L4SYSTIMER1_RESET>;
442 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
443 clock-names = "timer";
444 status = "disabled";
445 };
446
447 uart0: serial0@10c02000 {
448 compatible = "snps,dw-apb-uart";
449 reg = <0x10c02000 0x100>;
450 interrupts = <0 108 4>;
451 reg-shift = <2>;
452 reg-io-width = <4>;
453 resets = <&rst UART0_RESET>;
454 status = "disabled";
455 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
456 clock-frequency = <100000000>;
457 };
458
459 uart1: serial1@10c02100 {
460 compatible = "snps,dw-apb-uart";
461 reg = <0x10c02100 0x100>;
462 interrupts = <0 109 4>;
463 reg-shift = <2>;
464 reg-io-width = <4>;
465 resets = <&rst UART1_RESET>;
466 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
467 status = "disabled";
468 };
469
470 usbphy0: usbphy@0 {
471 #phy-cells = <0>;
472 compatible = "usb-nop-xceiv";
473 clocks = <&clkmgr AGILEX5_USB_CLK>;
474 status = "disabled";
475 };
476
477 usb0: usb@10b00000 {
478 compatible = "snps,dwc2";
479 reg = <0x10b00000 0x40000>;
480 interrupts = <0 93 4>;
481 phys = <&usbphy0>;
482 phy-names = "usb2-phy";
483 resets = <&rst USB0_RESET>, <&rst USB0_OCP_RESET>;
484 reset-names = "dwc2", "dwc2-ecc";
485 clocks = <&clkmgr AGILEX5_USB_CLK>;
486 iommus = <&smmu 6>;
487 status = "disabled";
488 };
489
490 usb31: usb31@11000000 {
491 compatible = "snps,dwc3";
492 reg = <0x11000000 0x100000>;
493 resets = <&rst USB1_RESET>;
494 phys = <&usbphy0>, <&usbphy0>;
495 phy-names = "usb2-phy", "usb3-phy";
496 dr_mode = "host";
497 maximum-speed = "super-speed";
498 snps,dis_u2_susphy_quirk;
499 status = "disabled";
500 };
501
502 watchdog0: watchdog@10d00200 {
503 compatible = "snps,dw-wdt";
504 reg = <0x10d00200 0x100>;
505 interrupts = <0 117 4>;
506 resets = <&rst WATCHDOG0_RESET>;
507 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
508 status = "disabled";
509 };
510
511 watchdog1: watchdog@10d00300 {
512 compatible = "snps,dw-wdt";
513 reg = <0x10d00300 0x100>;
514 interrupts = <0 118 4>;
515 resets = <&rst WATCHDOG1_RESET>;
516 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
517 status = "disabled";
518 };
519
520 watchdog2: watchdog@10d00400 {
521 compatible = "snps,dw-wdt";
522 reg = <0x10d00400 0x100>;
523 interrupts = <0 125 4>;
524 resets = <&rst WATCHDOG2_RESET>;
525 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
526 status = "disabled";
527 };
528
529 watchdog3: watchdog@10d00500 {
530 compatible = "snps,dw-wdt";
531 reg = <0x10d00500 0x100>;
532 interrupts = <0 126 4>;
533 resets = <&rst WATCHDOG3_RESET>;
534 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
535 status = "disabled";
536 };
537
538 watchdog4: watchdog@10d00600 {
539 compatible = "snps,dw-wdt";
540 reg = <0x10d00600 0x100>;
541 interrupts = <0 175 4>;
542 resets = <&rst WATCHDOG4_RESET>;
543 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
544 status = "disabled";
545 };
546
547 /* QSPI address not available yet */
548 qspi: spi@108d2000 {
549 compatible = "cdns,qspi-nor";
550 #address-cells = <1>;
551 #size-cells = <0>;
552 reg = <0x108d2000 0x100>,
553 <0x10900000 0x100000>;
554 interrupts = <0 3 4>;
555 cdns,fifo-depth = <128>;
556 cdns,fifo-width = <4>;
557 cdns,trigger-address = <0x00000000>;
558 clocks = <&qspi_clk>;
559
560 status = "disabled";
561 };
562
563 firmware {
564 svc {
565 compatible = "intel,stratix10-svc";
566 method = "smc";
567 memory-region = <&service_reserved>;
568
569 fpga_mgr: fpga-mgr {
570 compatible = "intel,stratix10-soc-fpga-mgr";
571 };
572 };
573 };
574 };
575};