1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * sama7g5.dtsi - Device Tree Include file for SAMA7G5 family SoC
5 * Copyright (C) 2020 Microchip Technology, Inc. and its subsidiaries
7 * Author: Eugen Hristev <eugen.hristev@microchip.com>
8 * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include <dt-bindings/interrupt-controller/arm-gic.h>
14 #include <dt-bindings/clock/at91.h>
15 #include <dt-bindings/dma/at91.h>
16 #include <dt-bindings/gpio/gpio.h>
19 model = "Microchip SAMA7G5 family SoC";
20 compatible = "microchip,sama7g5";
23 interrupt-parent = <&gic>;
31 compatible = "arm,cortex-a7";
37 slow_xtal: slow_xtal {
38 compatible = "fixed-clock";
42 main_xtal: main_xtal {
43 compatible = "fixed-clock";
48 compatible = "fixed-clock";
50 clock-frequency = <48000000>;
54 vddout25: fixed-regulator-vddout25 {
55 compatible = "regulator-fixed";
57 regulator-name = "VDDOUT25";
58 regulator-min-microvolt = <2500000>;
59 regulator-max-microvolt = <2500000>;
64 ns_sram: sram@100000 {
65 compatible = "mmio-sram";
68 reg = <0x100000 0x20000>;
73 compatible = "simple-bus";
78 securam: securam@e0000000 {
79 compatible = "microchip,sama7g5-securam", "atmel,sama5d2-securam", "mmio-sram";
80 reg = <0xe0000000 0x4000>;
81 clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
84 ranges = <0 0xe0000000 0x4000>;
89 secumod: secumod@e0004000 {
90 compatible = "microchip,sama7g5-secumod", "atmel,sama5d2-secumod", "syscon";
91 reg = <0xe0004000 0x4000>;
97 compatible = "microchip,sama7g5-sfrbu", "atmel,sama5d2-sfrbu", "syscon";
98 reg = <0xe0008000 0x20>;
101 pioA: pinctrl@e0014000 {
102 compatible = "microchip,sama7g5-pinctrl";
103 reg = <0xe0014000 0x800>;
104 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
105 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
106 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
107 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
108 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
109 interrupt-controller;
110 #interrupt-cells = <2>;
113 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
117 compatible = "microchip,sama7g5-pmc", "syscon";
118 reg = <0xe0018000 0x200>;
119 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
121 clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
122 clock-names = "td_slck", "md_slck", "main_xtal";
125 shdwc: shdwc@e001d010 {
126 compatible = "microchip,sama7g5-shdwc", "syscon";
127 reg = <0xe001d010 0x10>;
128 clocks = <&clk32k 0>;
129 #address-cells = <1>;
131 atmel,wakeup-rtc-timer;
132 atmel,wakeup-rtt-timer;
137 compatible = "microchip,sama7g5-rtt", "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
138 reg = <0xe001d020 0x30>;
139 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
140 clocks = <&clk32k 0>;
143 clk32k: clock-controller@e001d050 {
144 compatible = "microchip,sama7g5-sckc", "microchip,sam9x60-sckc";
145 reg = <0xe001d050 0x4>;
146 clocks = <&slow_xtal>;
150 gpbr: gpbr@e001d060 {
151 compatible = "microchip,sama7g5-gpbr", "syscon";
152 reg = <0xe001d060 0x48>;
156 compatible = "microchip,sama7g5-rtc", "microchip,sam9x60-rtc";
157 reg = <0xe001d0a8 0x30>;
158 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
159 clocks = <&clk32k 1>;
162 ps_wdt: watchdog@e001d180 {
163 compatible = "microchip,sama7g5-wdt";
164 reg = <0xe001d180 0x24>;
165 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
166 clocks = <&clk32k 0>;
170 compatible = "microchip,sama7g5-chipid";
171 reg = <0xe0020000 0x8>;
174 tcb1: timer@e0800000 {
175 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
176 #address-cells = <1>;
178 reg = <0xe0800000 0x100>;
179 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
180 clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 93>, <&clk32k 1>;
181 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
185 compatible = "microchip,sama7g5-adc";
186 reg = <0xe1000000 0x200>;
187 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
188 clocks = <&pmc PMC_TYPE_GCK 26>;
189 assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
190 assigned-clock-rates = <100000000>;
191 clock-names = "adc_clk";
192 dmas = <&dma0 AT91_XDMAC_DT_PERID(0)>;
194 atmel,min-sample-rate-hz = <200000>;
195 atmel,max-sample-rate-hz = <20000000>;
196 atmel,startup-time-ms = <4>;
200 sdmmc0: mmc@e1204000 {
201 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
202 reg = <0xe1204000 0x4000>;
203 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
204 clocks = <&pmc PMC_TYPE_PERIPHERAL 80>, <&pmc PMC_TYPE_GCK 80>;
205 clock-names = "hclock", "multclk";
206 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
207 assigned-clocks = <&pmc PMC_TYPE_GCK 80>;
208 assigned-clock-rates = <200000000>;
209 microchip,sdcal-inverted;
213 sdmmc1: mmc@e1208000 {
214 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
215 reg = <0xe1208000 0x4000>;
216 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
217 clocks = <&pmc PMC_TYPE_PERIPHERAL 81>, <&pmc PMC_TYPE_GCK 81>;
218 clock-names = "hclock", "multclk";
219 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
220 assigned-clocks = <&pmc PMC_TYPE_GCK 81>;
221 assigned-clock-rates = <200000000>;
222 microchip,sdcal-inverted;
226 sdmmc2: mmc@e120c000 {
227 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
228 reg = <0xe120c000 0x4000>;
229 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
230 clocks = <&pmc PMC_TYPE_PERIPHERAL 82>, <&pmc PMC_TYPE_GCK 82>;
231 clock-names = "hclock", "multclk";
232 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
233 assigned-clocks = <&pmc PMC_TYPE_GCK 82>;
234 assigned-clock-rates = <200000000>;
235 microchip,sdcal-inverted;
240 compatible = "microchip,sama7g5-pwm", "atmel,sama5d2-pwm";
241 reg = <0xe1604000 0x4000>;
242 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
244 clocks = <&pmc PMC_TYPE_PERIPHERAL 77>;
248 spdifrx: spdifrx@e1614000 {
249 #sound-dai-cells = <0>;
250 compatible = "microchip,sama7g5-spdifrx";
251 reg = <0xe1614000 0x4000>;
252 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
253 dmas = <&dma0 AT91_XDMAC_DT_PERID(49)>;
255 clocks = <&pmc PMC_TYPE_PERIPHERAL 84>, <&pmc PMC_TYPE_GCK 84>;
256 clock-names = "pclk", "gclk";
260 spdiftx: spdiftx@e1618000 {
261 #sound-dai-cells = <0>;
262 compatible = "microchip,sama7g5-spdiftx";
263 reg = <0xe1618000 0x4000>;
264 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
265 dmas = <&dma0 AT91_XDMAC_DT_PERID(50)>;
267 clocks = <&pmc PMC_TYPE_PERIPHERAL 85>, <&pmc PMC_TYPE_GCK 85>;
268 clock-names = "pclk", "gclk";
272 compatible = "microchip,sama7g5-i2smcc";
273 #sound-dai-cells = <0>;
274 reg = <0xe161c000 0x4000>;
275 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
276 dmas = <&dma0 AT91_XDMAC_DT_PERID(34)>, <&dma0 AT91_XDMAC_DT_PERID(33)>;
277 dma-names = "tx", "rx";
278 clocks = <&pmc PMC_TYPE_PERIPHERAL 57>, <&pmc PMC_TYPE_GCK 57>;
279 clock-names = "pclk", "gclk";
284 compatible = "microchip,sama7g5-i2smcc";
285 #sound-dai-cells = <0>;
286 reg = <0xe1620000 0x4000>;
287 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
288 dmas = <&dma0 AT91_XDMAC_DT_PERID(36)>, <&dma0 AT91_XDMAC_DT_PERID(35)>;
289 dma-names = "tx", "rx";
290 clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>;
291 clock-names = "pclk", "gclk";
295 pit64b0: timer@e1800000 {
296 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
297 reg = <0xe1800000 0x4000>;
298 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
299 clocks = <&pmc PMC_TYPE_PERIPHERAL 70>, <&pmc PMC_TYPE_GCK 70>;
300 clock-names = "pclk", "gclk";
303 pit64b1: timer@e1804000 {
304 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
305 reg = <0xe1804000 0x4000>;
306 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
307 clocks = <&pmc PMC_TYPE_PERIPHERAL 71>, <&pmc PMC_TYPE_GCK 71>;
308 clock-names = "pclk", "gclk";
311 flx0: flexcom@e1818000 {
312 compatible = "atmel,sama5d2-flexcom";
313 reg = <0xe1818000 0x200>;
314 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
315 #address-cells = <1>;
317 ranges = <0x0 0xe1818000 0x800>;
321 compatible = "atmel,at91sam9260-usart";
323 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
324 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
325 clock-names = "usart";
326 dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>,
327 <&dma1 AT91_XDMAC_DT_PERID(5)>;
328 dma-names = "tx", "rx";
335 flx1: flexcom@e181c000 {
336 compatible = "atmel,sama5d2-flexcom";
337 reg = <0xe181c000 0x200>;
338 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
339 #address-cells = <1>;
341 ranges = <0x0 0xe181c000 0x800>;
345 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
347 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
348 #address-cells = <1>;
350 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
351 atmel,fifo-size = <32>;
352 dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
353 <&dma0 AT91_XDMAC_DT_PERID(8)>;
354 dma-names = "rx", "tx";
361 flx3: flexcom@e1824000 {
362 compatible = "atmel,sama5d2-flexcom";
363 reg = <0xe1824000 0x200>;
364 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
365 #address-cells = <1>;
367 ranges = <0x0 0xe1824000 0x800>;
371 compatible = "atmel,at91sam9260-usart";
373 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
374 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
375 clock-names = "usart";
376 dmas = <&dma1 AT91_XDMAC_DT_PERID(12)>,
377 <&dma1 AT91_XDMAC_DT_PERID(11)>;
378 dma-names = "tx", "rx";
386 compatible = "microchip,sama7g5-trng", "atmel,at91sam9g45-trng";
387 reg = <0xe2010000 0x100>;
388 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
389 clocks = <&pmc PMC_TYPE_PERIPHERAL 97>;
393 flx4: flexcom@e2018000 {
394 compatible = "atmel,sama5d2-flexcom";
395 reg = <0xe2018000 0x200>;
396 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
397 #address-cells = <1>;
399 ranges = <0x0 0xe2018000 0x800>;
403 compatible = "atmel,at91sam9260-usart";
405 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
406 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
407 clock-names = "usart";
408 dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>,
409 <&dma1 AT91_XDMAC_DT_PERID(13)>;
410 dma-names = "tx", "rx";
413 atmel,fifo-size = <16>;
418 flx7: flexcom@e2024000 {
419 compatible = "atmel,sama5d2-flexcom";
420 reg = <0xe2024000 0x200>;
421 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
422 #address-cells = <1>;
424 ranges = <0x0 0xe2024000 0x800>;
428 compatible = "atmel,at91sam9260-usart";
430 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
432 clock-names = "usart";
433 dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
434 <&dma1 AT91_XDMAC_DT_PERID(19)>;
435 dma-names = "tx", "rx";
438 atmel,fifo-size = <16>;
443 gmac0: ethernet@e2800000 {
444 compatible = "microchip,sama7g5-gem";
445 reg = <0xe2800000 0x1000>;
446 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH
447 GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH
448 GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH
449 GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH
450 GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH
451 GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_GCK 51>, <&pmc PMC_TYPE_GCK 53>;
453 clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
454 assigned-clocks = <&pmc PMC_TYPE_GCK 51>;
455 assigned-clock-rates = <125000000>;
459 gmac1: ethernet@e2804000 {
460 compatible = "microchip,sama7g5-emac";
461 reg = <0xe2804000 0x1000>;
462 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH
463 GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 52>;
465 clock-names = "pclk", "hclk";
469 dma0: dma-controller@e2808000 {
470 compatible = "microchip,sama7g5-dma";
471 reg = <0xe2808000 0x1000>;
472 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
474 clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
475 clock-names = "dma_clk";
479 dma1: dma-controller@e280c000 {
480 compatible = "microchip,sama7g5-dma";
481 reg = <0xe280c000 0x1000>;
482 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
484 clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
485 clock-names = "dma_clk";
489 /* Place dma2 here despite it's address */
490 dma2: dma-controller@e1200000 {
491 compatible = "microchip,sama7g5-dma";
492 reg = <0xe1200000 0x1000>;
493 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
495 clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
496 clock-names = "dma_clk";
501 tcb0: timer@e2814000 {
502 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
503 #address-cells = <1>;
505 reg = <0xe2814000 0x100>;
506 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
507 clocks = <&pmc PMC_TYPE_PERIPHERAL 88>, <&pmc PMC_TYPE_PERIPHERAL 89>, <&pmc PMC_TYPE_PERIPHERAL 90>, <&clk32k 1>;
508 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
511 flx8: flexcom@e2818000 {
512 compatible = "atmel,sama5d2-flexcom";
513 reg = <0xe2818000 0x200>;
514 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
515 #address-cells = <1>;
517 ranges = <0x0 0xe2818000 0x800>;
521 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
523 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
524 #address-cells = <1>;
526 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
527 atmel,fifo-size = <32>;
528 dmas = <&dma0 AT91_XDMAC_DT_PERID(21)>,
529 <&dma0 AT91_XDMAC_DT_PERID(22)>;
530 dma-names = "rx", "tx";
537 flx9: flexcom@e281c000 {
538 compatible = "atmel,sama5d2-flexcom";
539 reg = <0xe281c000 0x200>;
540 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
541 #address-cells = <1>;
543 ranges = <0x0 0xe281c000 0x800>;
547 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
549 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
550 #address-cells = <1>;
552 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
553 atmel,fifo-size = <32>;
554 dmas = <&dma0 AT91_XDMAC_DT_PERID(23)>,
555 <&dma0 AT91_XDMAC_DT_PERID(24)>;
556 dma-names = "rx", "tx";
563 flx11: flexcom@e2824000 {
564 compatible = "atmel,sama5d2-flexcom";
565 reg = <0xe2824000 0x200>;
566 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
567 #address-cells = <1>;
569 ranges = <0x0 0xe2824000 0x800>;
573 compatible = "atmel,at91rm9200-spi";
575 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
576 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
577 clock-names = "spi_clk";
578 #address-cells = <1>;
580 atmel,fifo-size = <32>;
581 dmas = <&dma0 AT91_XDMAC_DT_PERID(27)>,
582 <&dma0 AT91_XDMAC_DT_PERID(28)>;
583 dma-names = "rx", "tx";
588 uddrc: uddrc@e3800000 {
589 compatible = "microchip,sama7g5-uddrc";
590 reg = <0xe3800000 0x4000>;
594 ddr3phy: ddr3phy@e3804000 {
595 compatible = "microchip,sama7g5-ddr3phy";
596 reg = <0xe3804000 0x1000>;
600 gic: interrupt-controller@e8c11000 {
601 compatible = "arm,cortex-a7-gic";
602 #interrupt-cells = <3>;
603 #address-cells = <0>;
604 interrupt-controller;
606 reg = <0xe8c11000 0x1000>,