1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2023, Intel Corporation
7 #include <dt-bindings/reset/altr,rst-mgr-s10.h>
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/clock/intel,agilex5-clkmgr.h>
14 compatible = "intel,socfpga-agilex5";
23 service_reserved: svcbuffer@0 {
24 compatible = "shared-dma-pool";
25 reg = <0x0 0x80000000 0x0 0x2000000>;
36 compatible = "arm,cortex-a55";
39 enable-method = "psci";
43 compatible = "arm,cortex-a55";
46 enable-method = "psci";
50 compatible = "arm,cortex-a76";
53 enable-method = "psci";
57 compatible = "arm,cortex-a76";
60 enable-method = "psci";
65 compatible = "arm,psci-0.2";
69 intc: interrupt-controller@1d000000 {
70 compatible = "arm,gic-v3";
71 reg = <0x0 0x1d000000 0 0x10000>,
72 <0x0 0x1d060000 0 0x100000>;
74 #interrupt-cells = <3>;
78 #redistributor-regions = <1>;
79 redistributor-stride = <0x0 0x20000>;
81 its: msi-controller@1d040000 {
82 compatible = "arm,gic-v3-its";
83 reg = <0x0 0x1d040000 0x0 0x20000>;
89 /* Clock tree 5 main sources*/
91 cb_intosc_hs_div2_clk: cb-intosc-hs-div2-clk {
93 compatible = "fixed-clock";
94 clock-frequency = <0>;
97 cb_intosc_ls_clk: cb-intosc-ls-clk {
99 compatible = "fixed-clock";
100 clock-frequency = <0>;
103 f2s_free_clk: f2s-free-clk {
105 compatible = "fixed-clock";
106 clock-frequency = <0>;
111 compatible = "fixed-clock";
112 clock-frequency = <0>;
117 compatible = "fixed-clock";
118 clock-frequency = <200000000>;
123 compatible = "arm,armv8-timer";
124 interrupt-parent = <&intc>;
125 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
126 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
127 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
128 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
133 compatible = "usb-nop-xceiv";
137 compatible = "simple-bus";
138 ranges = <0 0 0 0xffffffff>;
139 #address-cells = <1>;
142 interrupt-parent = <&intc>;
144 clkmgr: clock-controller@10d10000 {
145 compatible = "intel,agilex5-clkmgr";
146 reg = <0x10d10000 0x1000>;
151 compatible = "snps,designware-i2c";
152 reg = <0x10c02800 0x100>;
153 #address-cells = <1>;
155 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
156 resets = <&rst I2C0_RESET>;
157 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
162 compatible = "snps,designware-i2c";
163 reg = <0x10c02900 0x100>;
164 #address-cells = <1>;
166 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
167 resets = <&rst I2C1_RESET>;
168 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
173 compatible = "snps,designware-i2c";
174 reg = <0x10c02a00 0x100>;
175 #address-cells = <1>;
177 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
178 resets = <&rst I2C2_RESET>;
179 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
184 compatible = "snps,designware-i2c";
185 reg = <0x10c02b00 0x100>;
186 #address-cells = <1>;
188 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
189 resets = <&rst I2C3_RESET>;
190 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
195 compatible = "snps,designware-i2c";
196 reg = <0x10c02c00 0x100>;
197 #address-cells = <1>;
199 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
200 resets = <&rst I2C4_RESET>;
201 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
205 i3c0: i3c-master@10da0000 {
206 compatible = "snps,dw-i3c-master-1.00a";
207 reg = <0x10da0000 0x1000>;
208 #address-cells = <3>;
210 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
211 clocks = <&clkmgr AGILEX5_L4_MP_CLK>;
215 i3c1: i3c-master@10da1000 {
216 compatible = "snps,dw-i3c-master-1.00a";
217 reg = <0x10da1000 0x1000>;
218 #address-cells = <3>;
220 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
221 clocks = <&clkmgr AGILEX5_L4_MP_CLK>;
225 gpio1: gpio@10c03300 {
226 compatible = "snps,dw-apb-gpio";
227 reg = <0x10c03300 0x100>;
228 #address-cells = <1>;
230 resets = <&rst GPIO1_RESET>;
233 portb: gpio-controller@0 {
234 compatible = "snps,dw-apb-gpio-port";
238 snps,nr-gpios = <24>;
239 interrupt-controller;
240 #interrupt-cells = <2>;
241 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
245 nand: nand-controller@10b80000 {
246 compatible = "cdns,hp-nfc";
247 reg = <0x10b80000 0x10000>,
248 <0x10840000 0x10000>;
249 reg-names = "reg", "sdma";
250 #address-cells = <1>;
252 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
253 clocks = <&clkmgr AGILEX5_NAND_NF_CLK>;
254 cdns,board-delay-ps = <4830>;
259 compatible = "mmio-sram";
260 reg = <0x00000000 0x80000>;
261 ranges = <0 0 0x80000>;
262 #address-cells = <1>;
266 dmac0: dma-controller@10db0000 {
267 compatible = "snps,axi-dma-1.01a";
268 reg = <0x10db0000 0x500>;
269 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
270 <&clkmgr AGILEX5_L4_MP_CLK>;
271 clock-names = "core-clk", "cfgr-clk";
272 interrupt-parent = <&intc>;
273 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
276 snps,dma-masters = <1>;
277 snps,data-width = <2>;
278 snps,block-size = <32767 32767 32767 32767>;
279 snps,priority = <0 1 2 3>;
280 snps,axi-max-burst-len = <8>;
283 dmac1: dma-controller@10dc0000 {
284 compatible = "snps,axi-dma-1.01a";
285 reg = <0x10dc0000 0x500>;
286 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
287 <&clkmgr AGILEX5_L4_MP_CLK>;
288 clock-names = "core-clk", "cfgr-clk";
289 interrupt-parent = <&intc>;
290 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
293 snps,dma-masters = <1>;
294 snps,data-width = <2>;
295 snps,block-size = <32767 32767 32767 32767>;
296 snps,priority = <0 1 2 3>;
297 snps,axi-max-burst-len = <8>;
300 rst: rstmgr@10d11000 {
301 compatible = "altr,stratix10-rst-mgr", "altr,rst-mgr";
302 reg = <0x10d11000 0x1000>;
307 compatible = "snps,dw-apb-ssi";
308 reg = <0x10da4000 0x1000>;
309 #address-cells = <1>;
311 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
312 resets = <&rst SPIM0_RESET>;
316 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
317 dmas = <&dmac0 2>, <&dmac0 3>;
318 dma-names ="tx", "rx";
324 compatible = "snps,dw-apb-ssi";
325 reg = <0x10da5000 0x1000>;
326 #address-cells = <1>;
328 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
329 resets = <&rst SPIM1_RESET>;
333 clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>;
337 sysmgr: sysmgr@10d12000 {
338 compatible = "altr,sys-mgr-s10","altr,sys-mgr";
339 reg = <0x10d12000 0x500>;
342 timer0: timer0@10c03000 {
343 compatible = "snps,dw-apb-timer";
344 reg = <0x10c03000 0x100>;
345 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
346 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
347 clock-names = "timer";
350 timer1: timer1@10c03100 {
351 compatible = "snps,dw-apb-timer";
352 reg = <0x10c03100 0x100>;
353 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
354 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
355 clock-names = "timer";
358 timer2: timer2@10d00000 {
359 compatible = "snps,dw-apb-timer";
360 reg = <0x10d00000 0x100>;
361 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
362 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
363 clock-names = "timer";
366 timer3: timer3@10d00100 {
367 compatible = "snps,dw-apb-timer";
368 reg = <0x10d00100 0x100>;
369 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
370 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
371 clock-names = "timer";
374 uart0: serial@10c02000 {
375 compatible = "snps,dw-apb-uart";
376 reg = <0x10c02000 0x100>;
377 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
380 resets = <&rst UART0_RESET>;
382 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
385 uart1: serial@10c02100 {
386 compatible = "snps,dw-apb-uart";
387 reg = <0x10c02100 0x100>;
388 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
391 resets = <&rst UART1_RESET>;
393 clocks = <&clkmgr AGILEX5_L4_SP_CLK>;
397 compatible = "snps,dwc2";
398 reg = <0x10b00000 0x40000>;
399 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
401 phy-names = "usb2-phy";
402 resets = <&rst USB0_RESET>, <&rst USB0_OCP_RESET>;
403 reset-names = "dwc2", "dwc2-ecc";
404 clocks = <&clkmgr AGILEX5_USB2OTG_HCLK>;
409 watchdog0: watchdog@10d00200 {
410 compatible = "snps,dw-wdt";
411 reg = <0x10d00200 0x100>;
412 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
413 resets = <&rst WATCHDOG0_RESET>;
414 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
418 watchdog1: watchdog@10d00300 {
419 compatible = "snps,dw-wdt";
420 reg = <0x10d00300 0x100>;
421 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
422 resets = <&rst WATCHDOG1_RESET>;
423 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
427 watchdog2: watchdog@10d00400 {
428 compatible = "snps,dw-wdt";
429 reg = <0x10d00400 0x100>;
430 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
431 resets = <&rst WATCHDOG2_RESET>;
432 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
436 watchdog3: watchdog@10d00500 {
437 compatible = "snps,dw-wdt";
438 reg = <0x10d00500 0x100>;
439 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
440 resets = <&rst WATCHDOG3_RESET>;
441 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
445 watchdog4: watchdog@10d00600 {
446 compatible = "snps,dw-wdt";
447 reg = <0x10d00600 0x100>;
448 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
449 resets = <&rst WATCHDOG4_RESET>;
450 clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>;
455 compatible = "intel,socfpga-qspi", "cdns,qspi-nor";
456 reg = <0x108d2000 0x100>,
457 <0x10900000 0x100000>;
458 #address-cells = <1>;
460 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
461 cdns,fifo-depth = <128>;
462 cdns,fifo-width = <4>;
463 cdns,trigger-address = <0x00000000>;
464 clocks = <&qspi_clk>;