blob: b7c261ebe9ead8d601d09d7fb827883fcbf66553 [file] [log] [blame]
Eugen Hristev1e30fa12020-03-10 11:56:03 +02001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
Eugen Hristevdb55fd62022-03-07 16:29:42 +02003 * sama7g5.dtsi - Device Tree Include file for SAMA7G5 family SoC
Eugen Hristev1e30fa12020-03-10 11:56:03 +02004 *
Eugen Hristevdb55fd62022-03-07 16:29:42 +02005 * Copyright (C) 2020 Microchip Technology, Inc. and its subsidiaries
Eugen Hristev1e30fa12020-03-10 11:56:03 +02006 *
Eugen Hristevdb55fd62022-03-07 16:29:42 +02007 * Author: Eugen Hristev <eugen.hristev@microchip.com>
8 * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Eugen Hristev1e30fa12020-03-10 11:56:03 +02009 *
10 */
11
12#include "skeleton.dtsi"
Eugen Hristev130bdad2022-01-04 18:21:54 +020013#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
Claudiu Beznea5002eb72020-06-02 15:26:12 +030015#include <dt-bindings/clk/at91.h>
Eugen Hristev130bdad2022-01-04 18:21:54 +020016#include <dt-bindings/dma/at91.h>
Eugen Hristevdb55fd62022-03-07 16:29:42 +020017#include <dt-bindings/gpio/gpio.h>
Eugen Hristev1e30fa12020-03-10 11:56:03 +020018
19/ {
20 model = "Microchip SAMA7G5 family SoC";
21 compatible = "microchip,sama7g5";
Eugen Hristevdb55fd62022-03-07 16:29:42 +020022 #address-cells = <1>;
23 #size-cells = <1>;
Eugen Hristev130bdad2022-01-04 18:21:54 +020024 interrupt-parent = <&gic>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +020025
Eugen Hristevdb55fd62022-03-07 16:29:42 +020026 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 cpu0: cpu@0 {
31 device_type = "cpu";
32 compatible = "arm,cortex-a7";
33 reg = <0x0>;
34 clocks = <&pmc PMC_TYPE_CORE 8>, <&pmc PMC_TYPE_CORE 22>, <&main_xtal>;
35 clock-names = "cpu", "master", "xtal";
36 };
37 };
38
39 cpu_opp_table: opp-table {
40 compatible = "operating-points-v2";
41
42 opp-90000000 {
43 opp-hz = /bits/ 64 <90000000>;
44 opp-microvolt = <1050000 1050000 1225000>;
45 clock-latency-ns = <320000>;
46 };
47
48 opp-250000000 {
49 opp-hz = /bits/ 64 <250000000>;
50 opp-microvolt = <1050000 1050000 1225000>;
51 clock-latency-ns = <320000>;
52 };
53
54 opp-600000000 {
55 opp-hz = /bits/ 64 <600000000>;
56 opp-microvolt = <1050000 1050000 1225000>;
57 clock-latency-ns = <320000>;
58 opp-suspend;
59 };
60
61 opp-800000000 {
62 opp-hz = /bits/ 64 <800000000>;
63 opp-microvolt = <1150000 1125000 1225000>;
64 clock-latency-ns = <320000>;
65 };
66
67 opp-1000000002 {
68 opp-hz = /bits/ 64 <1000000002>;
69 opp-microvolt = <1250000 1225000 1300000>;
70 clock-latency-ns = <320000>;
71 };
72 };
73
Eugen Hristev1e30fa12020-03-10 11:56:03 +020074 clocks {
Claudiu Beznead1092822020-06-02 15:22:21 +030075 slow_rc_osc: slow_rc_osc {
76 compatible = "fixed-clock";
77 #clock-cells = <0>;
78 clock-frequency = <32000>;
79 };
80
81 main_rc: main_rc {
82 compatible = "fixed-clock";
83 #clock-cells = <0>;
84 clock-frequency = <12000000>;
85 };
86
Eugen Hristev1e30fa12020-03-10 11:56:03 +020087 slow_xtal: slow_xtal {
88 compatible = "fixed-clock";
89 #clock-cells = <0>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +020090 };
91
92 main_xtal: main_xtal {
93 compatible = "fixed-clock";
94 #clock-cells = <0>;
Eugen Hristevdb55fd62022-03-07 16:29:42 +020095 };
96
97 usb_clk: usb_clk {
98 compatible = "fixed-clock";
99 #clock-cells = <0>;
100 clock-frequency = <48000000>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200101 };
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200102 };
103
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200104 vddout25: fixed-regulator-vddout25 {
105 compatible = "regulator-fixed";
Claudiu Beznea1417d1d2020-06-02 15:35:55 +0300106
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200107 regulator-name = "VDDOUT25";
108 regulator-min-microvolt = <2500000>;
109 regulator-max-microvolt = <2500000>;
110 regulator-boot-on;
111 status = "disabled";
112 };
113
114 ns_sram: sram@100000 {
115 compatible = "mmio-sram";
116 #address-cells = <1>;
117 #size-cells = <1>;
118 reg = <0x100000 0x20000>;
119 ranges;
Claudiu Beznea1417d1d2020-06-02 15:35:55 +0300120 };
121
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200122 soc {
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200123 compatible = "simple-bus";
124 #address-cells = <1>;
125 #size-cells = <1>;
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200126 ranges;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200127
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200128 nfc_sram: sram@600000 {
129 compatible = "mmio-sram";
130 no-memory-wc;
131 reg = <0x00600000 0x2400>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200132 #address-cells = <1>;
133 #size-cells = <1>;
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200134 ranges = <0 0x00600000 0x2400>;
135 };
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200136
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200137 nfc_io: nfc-io@10000000 {
138 compatible = "atmel,sama5d3-nfc-io", "syscon";
139 reg = <0x10000000 0x8000000>;
140 };
Eugen Hristevc06e2fe2020-06-04 10:37:13 +0300141
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200142 ebi: ebi@40000000 {
143 compatible = "atmel,sama5d3-ebi";
144 #address-cells = <2>;
145 #size-cells = <1>;
146 atmel,smc = <&hsmc>;
147 reg = <0x40000000 0x20000000>;
148 ranges = <0x0 0x0 0x40000000 0x8000000
149 0x1 0x0 0x48000000 0x8000000
150 0x2 0x0 0x50000000 0x8000000
151 0x3 0x0 0x58000000 0x8000000>;
152 clocks = <&pmc PMC_TYPE_CORE 13>; /* PMC_MCK1 */
153 status = "disabled";
154
155 nand_controller: nand-controller {
156 compatible = "atmel,sama5d3-nand-controller";
157 atmel,nfc-sram = <&nfc_sram>;
158 atmel,nfc-io = <&nfc_io>;
159 ecc-engine = <&pmecc>;
160 #address-cells = <2>;
161 #size-cells = <1>;
162 ranges;
163 status = "disabled";
Eugen Hristevc06e2fe2020-06-04 10:37:13 +0300164 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200165 };
166
167 securam: securam@e0000000 {
168 compatible = "microchip,sama7g5-securam", "atmel,sama5d2-securam", "mmio-sram";
169 reg = <0xe0000000 0x4000>;
170 clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
171 #address-cells = <1>;
172 #size-cells = <1>;
173 ranges = <0 0xe0000000 0x4000>;
174 no-memory-wc;
175 };
Eugen Hristevc06e2fe2020-06-04 10:37:13 +0300176
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200177 secumod: secumod@e0004000 {
178 compatible = "microchip,sama7g5-secumod", "atmel,sama5d2-secumod", "syscon";
179 reg = <0xe0004000 0x4000>;
180 gpio-controller;
181 #gpio-cells = <2>;
182 };
183
184 sfrbu: sfr@e0008000 {
185 compatible = "microchip,sama7g5-sfrbu", "atmel,sama5d2-sfrbu", "syscon";
186 reg = <0xe0008000 0x20>;
187 };
188
189 pinctrl: pinctrl@e0014000 {
190 compatible = "microchip,sama7g5-gpio";
191 reg = <0xe0014000 0x800>;
192 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
193 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
194 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
195 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
196 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
197 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
198
199 pioA: pinctrl_default {
200 interrupt-controller;
201 #interrupt-cells = <2>;
202 gpio-controller;
203 #gpio-cells = <2>;
204 compatible = "microchip,sama7g5-pinctrl";
Claudiu Beznea18401a22020-06-02 15:24:25 +0300205 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200206 };
207
208 pmc: pmc@e0018000 {
209 compatible = "microchip,sama7g5-pmc", "syscon";
210 reg = <0xe0018000 0x200>;
211 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
212 #clock-cells = <2>;
213 clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>, <&main_rc>;
214 clock-names = "td_slck", "md_slck", "main_xtal", "main_rc";
215 };
216
217 shdwc: shdwc@e001d010 {
218 compatible = "microchip,sama7g5-shdwc", "syscon";
219 reg = <0xe001d010 0x10>;
220 clocks = <&clk32k 0>;
221 #address-cells = <1>;
222 #size-cells = <0>;
223 atmel,wakeup-rtc-timer;
224 atmel,wakeup-rtt-timer;
225 status = "disabled";
226 };
227
228 rtt: rtt@e001d020 {
229 compatible = "microchip,sama7g5-rtt", "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
230 reg = <0xe001d020 0x30>;
231 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
232 clocks = <&clk32k 0>;
233 };
234
235 clk32k: clock-controller@e001d050 {
236 compatible = "microchip,sama7g5-sckc", "microchip,sam9x60-sckc";
237 reg = <0xe001d050 0x4>;
238 clocks = <&slow_rc_osc>, <&slow_xtal>;
239 #clock-cells = <1>;
240 };
241
242 gpbr: gpbr@e001d060 {
243 compatible = "microchip,sama7g5-gpbr", "syscon";
244 reg = <0xe001d060 0x48>;
245 };
246
247 rtc: rtc@e001d0a8 {
248 compatible = "microchip,sama7g5-rtc", "microchip,sam9x60-rtc";
249 reg = <0xe001d0a8 0x30>;
250 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
251 clocks = <&clk32k 1>;
252 };
253
254 ps_wdt: watchdog@e001d180 {
255 compatible = "microchip,sama7g5-wdt";
256 reg = <0xe001d180 0x24>;
257 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
258 clocks = <&clk32k 0>;
259 };
260
261 chipid@e0020000 {
262 compatible = "microchip,sama7g5-chipid";
263 reg = <0xe0020000 0x8>;
264 };
265
266 tcb1: timer@e0800000 {
267 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
268 #address-cells = <1>;
269 #size-cells = <0>;
270 reg = <0xe0800000 0x100>;
271 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
272 clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 93>, <&clk32k 1>;
273 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
274 };
Claudiu Beznea18401a22020-06-02 15:24:25 +0300275
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200276 hsmc: hsmc@e0808000 {
277 compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
278 reg = <0xe0808000 0x1000>;
279 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
281 #address-cells = <1>;
282 #size-cells = <1>;
283 ranges;
284
285 pmecc: ecc-engine@e0808070 {
286 compatible = "atmel,sama5d2-pmecc";
287 reg = <0xe0808070 0x490>,
288 <0xe0808500 0x200>;
Claudiu Bezneac09db792020-06-02 15:23:49 +0300289 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200290 };
Claudiu Bezneac09db792020-06-02 15:23:49 +0300291
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200292 qspi0: spi@e080c000 {
293 compatible = "microchip,sama7g5-ospi";
294 reg = <0xe080c000 0x400>, <0x20000000 0x10000000>;
295 reg-names = "qspi_base", "qspi_mmap";
296 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
297 dmas = <&dma0 AT91_XDMAC_DT_PERID(41)>,
298 <&dma0 AT91_XDMAC_DT_PERID(40)>;
299 dma-names = "tx", "rx";
300 clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
301 clock-names = "pclk", "gclk";
302 assigned-clocks = <&pmc PMC_TYPE_GCK 78>;
303 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
304 #address-cells = <1>;
305 #size-cells = <0>;
306 status = "disabled";
307 };
308
309 qspi1: spi@e0810000 {
310 compatible = "microchip,sama7g5-qspi";
311 reg = <0xe0810000 0x400>, <0x30000000 0x10000000>;
312 reg-names = "qspi_base", "qspi_mmap";
313 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
314 dmas = <&dma0 AT91_XDMAC_DT_PERID(43)>,
315 <&dma0 AT91_XDMAC_DT_PERID(42)>;
316 dma-names = "tx", "rx";
317 clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
318 clock-names = "pclk", "gclk";
319 assigned-clocks = <&pmc PMC_TYPE_GCK 78>;
320 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
321 #address-cells = <1>;
322 #size-cells = <0>;
323 status = "disabled";
324 };
325
326 can0: can@e0828000 {
327 compatible = "bosch,m_can";
328 reg = <0xe0828000 0x100>, <0x100000 0x7800>;
329 reg-names = "m_can", "message_ram";
330 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH
331 GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
332 interrupt-names = "int0", "int1";
333 clocks = <&pmc PMC_TYPE_PERIPHERAL 61>, <&pmc PMC_TYPE_GCK 61>;
334 clock-names = "hclk", "cclk";
335 assigned-clocks = <&pmc PMC_TYPE_GCK 61>;
336 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
337 assigned-clock-rates = <40000000>;
338 bosch,mram-cfg = <0x3400 0 0 64 0 0 32 32>;
339 status = "disabled";
340 };
341
342 can1: can@e082c000 {
343 compatible = "bosch,m_can";
344 reg = <0xe082c000 0x100>, <0x100000 0xbc00>;
345 reg-names = "m_can", "message_ram";
346 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH
347 GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
348 interrupt-names = "int0", "int1";
349 clocks = <&pmc PMC_TYPE_PERIPHERAL 62>, <&pmc PMC_TYPE_GCK 62>;
350 clock-names = "hclk", "cclk";
351 assigned-clocks = <&pmc PMC_TYPE_GCK 62>;
352 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
353 assigned-clock-rates = <40000000>;
354 bosch,mram-cfg = <0x7800 0 0 64 0 0 32 32>;
355 status = "disabled";
356 };
357
358 can2: can@e0830000 {
359 compatible = "bosch,m_can";
360 reg = <0xe0830000 0x100>, <0x100000 0x10000>;
361 reg-names = "m_can", "message_ram";
362 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH
363 GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
364 interrupt-names = "int0", "int1";
365 clocks = <&pmc PMC_TYPE_PERIPHERAL 63>, <&pmc PMC_TYPE_GCK 63>;
366 clock-names = "hclk", "cclk";
367 assigned-clocks = <&pmc PMC_TYPE_GCK 63>;
368 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
369 assigned-clock-rates = <40000000>;
370 bosch,mram-cfg = <0xbc00 0 0 64 0 0 32 32>;
371 status = "disabled";
372 };
373
374 can3: can@e0834000 {
375 compatible = "bosch,m_can";
376 reg = <0xe0834000 0x100>, <0x110000 0x4400>;
377 reg-names = "m_can", "message_ram";
378 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH
379 GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
380 interrupt-names = "int0", "int1";
381 clocks = <&pmc PMC_TYPE_PERIPHERAL 64>, <&pmc PMC_TYPE_GCK 64>;
382 clock-names = "hclk", "cclk";
383 assigned-clocks = <&pmc PMC_TYPE_GCK 64>;
384 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
385 assigned-clock-rates = <40000000>;
386 bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
387 status = "disabled";
388 };
389
390 can4: can@e0838000 {
391 compatible = "bosch,m_can";
392 reg = <0xe0838000 0x100>, <0x110000 0x8800>;
393 reg-names = "m_can", "message_ram";
394 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH
395 GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
396 interrupt-names = "int0", "int1";
397 clocks = <&pmc PMC_TYPE_PERIPHERAL 65>, <&pmc PMC_TYPE_GCK 65>;
398 clock-names = "hclk", "cclk";
399 assigned-clocks = <&pmc PMC_TYPE_GCK 65>;
400 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
401 assigned-clock-rates = <40000000>;
402 bosch,mram-cfg = <0x4400 0 0 64 0 0 32 32>;
403 status = "disabled";
404 };
405
406 can5: can@e083c000 {
407 compatible = "bosch,m_can";
408 reg = <0xe083c000 0x100>, <0x110000 0xcc00>;
409 reg-names = "m_can", "message_ram";
410 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH
411 GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
412 interrupt-names = "int0", "int1";
413 clocks = <&pmc PMC_TYPE_PERIPHERAL 66>, <&pmc PMC_TYPE_GCK 66>;
414 clock-names = "hclk", "cclk";
415 assigned-clocks = <&pmc PMC_TYPE_GCK 66>;
416 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
417 assigned-clock-rates = <40000000>;
418 bosch,mram-cfg = <0x8800 0 0 64 0 0 32 32>;
419 status = "disabled";
420 };
421
422 adc: adc@e1000000 {
423 compatible = "microchip,sama7g5-adc";
424 reg = <0xe1000000 0x200>;
425 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
426 clocks = <&pmc PMC_TYPE_GCK 26>;
427 assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
428 assigned-clock-rates = <100000000>;
429 clock-names = "adc_clk";
430 dmas = <&dma0 AT91_XDMAC_DT_PERID(0)>;
431 dma-names = "rx";
432 atmel,min-sample-rate-hz = <200000>;
433 atmel,max-sample-rate-hz = <20000000>;
434 atmel,startup-time-ms = <4>;
435 status = "disabled";
436 };
437
438 sdmmc0: mmc@e1204000 {
439 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
440 reg = <0xe1204000 0x4000>;
441 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
442 clocks = <&pmc PMC_TYPE_PERIPHERAL 80>, <&pmc PMC_TYPE_GCK 80>;
443 clock-names = "hclock", "multclk";
444 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
445 assigned-clocks = <&pmc PMC_TYPE_GCK 80>;
446 assigned-clock-rates = <200000000>;
447 microchip,sdcal-inverted;
448 status = "disabled";
449 };
450
451 sdmmc1: mmc@e1208000 {
452 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
453 reg = <0xe1208000 0x4000>;
454 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
455 clocks = <&pmc PMC_TYPE_PERIPHERAL 81>, <&pmc PMC_TYPE_GCK 81>;
456 clock-names = "hclock", "multclk";
457 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
458 assigned-clocks = <&pmc PMC_TYPE_GCK 81>;
459 assigned-clock-rates = <200000000>;
460 microchip,sdcal-inverted;
461 status = "disabled";
462 };
463
464 sdmmc2: mmc@e120c000 {
465 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
466 reg = <0xe120c000 0x4000>;
467 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
468 clocks = <&pmc PMC_TYPE_PERIPHERAL 82>, <&pmc PMC_TYPE_GCK 82>;
469 clock-names = "hclock", "multclk";
470 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
471 assigned-clocks = <&pmc PMC_TYPE_GCK 82>;
472 assigned-clock-rates = <200000000>;
473 microchip,sdcal-inverted;
474 status = "disabled";
475 };
476
477 pwm: pwm@e1604000 {
478 compatible = "microchip,sama7g5-pwm", "atmel,sama5d2-pwm";
479 reg = <0xe1604000 0x4000>;
480 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
481 #pwm-cells = <3>;
482 clocks = <&pmc PMC_TYPE_PERIPHERAL 77>;
483 status = "disabled";
484 };
485
486 spdifrx: spdifrx@e1614000 {
487 #sound-dai-cells = <0>;
488 compatible = "microchip,sama7g5-spdifrx";
489 reg = <0xe1614000 0x4000>;
490 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
491 dmas = <&dma0 AT91_XDMAC_DT_PERID(49)>;
492 dma-names = "rx";
493 clocks = <&pmc PMC_TYPE_PERIPHERAL 84>, <&pmc PMC_TYPE_GCK 84>;
494 clock-names = "pclk", "gclk";
495 status = "disabled";
496 };
497
498 spdiftx: spdiftx@e1618000 {
499 #sound-dai-cells = <0>;
500 compatible = "microchip,sama7g5-spdiftx";
501 reg = <0xe1618000 0x4000>;
502 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
503 dmas = <&dma0 AT91_XDMAC_DT_PERID(50)>;
504 dma-names = "tx";
505 clocks = <&pmc PMC_TYPE_PERIPHERAL 85>, <&pmc PMC_TYPE_GCK 85>;
506 clock-names = "pclk", "gclk";
507 };
508
509 i2s0: i2s@e161c000 {
510 compatible = "microchip,sama7g5-i2smcc";
511 #sound-dai-cells = <0>;
512 reg = <0xe161c000 0x4000>;
513 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
514 dmas = <&dma0 AT91_XDMAC_DT_PERID(34)>, <&dma0 AT91_XDMAC_DT_PERID(33)>;
515 dma-names = "tx", "rx";
516 clocks = <&pmc PMC_TYPE_PERIPHERAL 57>, <&pmc PMC_TYPE_GCK 57>;
517 clock-names = "pclk", "gclk";
518 status = "disabled";
519 };
520
521 i2s1: i2s@e1620000 {
522 compatible = "microchip,sama7g5-i2smcc";
523 #sound-dai-cells = <0>;
524 reg = <0xe1620000 0x4000>;
525 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
526 dmas = <&dma0 AT91_XDMAC_DT_PERID(36)>, <&dma0 AT91_XDMAC_DT_PERID(35)>;
527 dma-names = "tx", "rx";
528 clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>;
529 clock-names = "pclk", "gclk";
530 status = "disabled";
531 };
532
533 eic: interrupt-controller@e1628000 {
534 compatible = "microchip,sama7g5-eic";
535 reg = <0xe1628000 0xec>;
536 interrupt-parent = <&gic>;
537 interrupt-controller;
538 #interrupt-cells = <2>;
539 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
540 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
541 clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
542 clock-names = "pclk";
543 status = "disabled";
544 };
545
546 pit64b0: timer@e1800000 {
547 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
548 reg = <0xe1800000 0x4000>;
549 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
550 clocks = <&pmc PMC_TYPE_PERIPHERAL 70>, <&pmc PMC_TYPE_GCK 70>;
551 clock-names = "pclk", "gclk";
552 };
553
554 pit64b1: timer@e1804000 {
555 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
556 reg = <0xe1804000 0x4000>;
557 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
558 clocks = <&pmc PMC_TYPE_PERIPHERAL 71>, <&pmc PMC_TYPE_GCK 71>;
559 clock-names = "pclk", "gclk";
560 };
561
562 aes: crypto@e1810000 {
563 compatible = "atmel,at91sam9g46-aes";
564 reg = <0xe1810000 0x100>;
565 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
566 clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
567 clock-names = "aes_clk";
568 dmas = <&dma0 AT91_XDMAC_DT_PERID(1)>,
569 <&dma0 AT91_XDMAC_DT_PERID(2)>;
570 dma-names = "tx", "rx";
571 };
572
573 sha: crypto@e1814000 {
574 compatible = "atmel,at91sam9g46-sha";
575 reg = <0xe1814000 0x100>;
576 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&pmc PMC_TYPE_PERIPHERAL 83>;
578 clock-names = "sha_clk";
579 dmas = <&dma0 AT91_XDMAC_DT_PERID(48)>;
580 dma-names = "tx";
581 };
582
583 flx0: flexcom@e1818000 {
584 compatible = "atmel,sama5d2-flexcom";
585 reg = <0xe1818000 0x200>;
586 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
587 #address-cells = <1>;
588 #size-cells = <1>;
589 ranges = <0x0 0xe1818000 0x800>;
590 status = "disabled";
591
592 uart0: serial@200 {
593 compatible = "atmel,at91sam9260-usart";
594 reg = <0x200 0x200>;
595 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
596 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
597 clock-names = "usart";
598 dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>,
599 <&dma1 AT91_XDMAC_DT_PERID(5)>;
600 dma-names = "tx", "rx";
601 atmel,use-dma-rx;
602 atmel,use-dma-tx;
Tudor Ambarusf774fd92021-11-03 19:07:40 +0200603 status = "disabled";
604 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200605 };
Tudor Ambarusf774fd92021-11-03 19:07:40 +0200606
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200607 flx1: flexcom@e181c000 {
608 compatible = "atmel,sama5d2-flexcom";
609 reg = <0xe181c000 0x200>;
610 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
611 #address-cells = <1>;
612 #size-cells = <1>;
613 ranges = <0x0 0xe181c000 0x800>;
614 status = "disabled";
615
616 i2c1: i2c@600 {
617 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
618 reg = <0x600 0x200>;
619 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
Tudor Ambarusf774fd92021-11-03 19:07:40 +0200620 #address-cells = <1>;
621 #size-cells = <0>;
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200622 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
623 atmel,fifo-size = <32>;
624 dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
625 <&dma0 AT91_XDMAC_DT_PERID(8)>;
626 dma-names = "rx", "tx";
Tudor Ambarusf774fd92021-11-03 19:07:40 +0200627 status = "disabled";
628 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200629 };
Tudor Ambarusf774fd92021-11-03 19:07:40 +0200630
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200631 flx3: flexcom@e1824000 {
632 compatible = "atmel,sama5d2-flexcom";
633 reg = <0xe1824000 0x200>;
634 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
635 #address-cells = <1>;
636 #size-cells = <1>;
637 ranges = <0x0 0xe1824000 0x800>;
638 status = "disabled";
Eugen Hristevb67871f2020-07-30 15:52:13 +0300639
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200640 uart3: serial@200 {
641 compatible = "atmel,at91sam9260-usart";
642 reg = <0x200 0x200>;
643 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
644 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
645 clock-names = "usart";
646 dmas = <&dma1 AT91_XDMAC_DT_PERID(12)>,
647 <&dma1 AT91_XDMAC_DT_PERID(11)>;
648 dma-names = "tx", "rx";
649 atmel,use-dma-rx;
650 atmel,use-dma-tx;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200651 status = "disabled";
652 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200653 };
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200654
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200655 trng: rng@e2010000 {
656 compatible = "microchip,sama7g5-trng", "atmel,at91sam9g45-trng";
657 reg = <0xe2010000 0x100>;
658 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
659 clocks = <&pmc PMC_TYPE_PERIPHERAL 97>;
660 status = "disabled";
661 };
Claudiu Beznea5430a4e2020-06-02 18:42:18 +0300662
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200663 tdes: crypto@e2014000 {
664 compatible = "atmel,at91sam9g46-tdes";
665 reg = <0xe2014000 0x100>;
666 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
667 clocks = <&pmc PMC_TYPE_PERIPHERAL 96>;
668 clock-names = "tdes_clk";
669 dmas = <&dma0 AT91_XDMAC_DT_PERID(54)>,
670 <&dma0 AT91_XDMAC_DT_PERID(53)>;
671 dma-names = "tx", "rx";
672 };
Eugen Hristev9e95bf72020-07-31 15:19:23 +0300673
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200674 flx4: flexcom@e2018000 {
675 compatible = "atmel,sama5d2-flexcom";
676 reg = <0xe2018000 0x200>;
677 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
678 #address-cells = <1>;
679 #size-cells = <1>;
680 ranges = <0x0 0xe2018000 0x800>;
681 status = "disabled";
Eugen Hristev9e95bf72020-07-31 15:19:23 +0300682
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200683 uart4: serial@200 {
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200684 compatible = "atmel,at91sam9260-usart";
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200685 reg = <0x200 0x200>;
686 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
687 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200688 clock-names = "usart";
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200689 dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>,
690 <&dma1 AT91_XDMAC_DT_PERID(13)>;
691 dma-names = "tx", "rx";
692 atmel,use-dma-rx;
693 atmel,use-dma-tx;
694 atmel,fifo-size = <16>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200695 status = "disabled";
696 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200697 };
Claudiu Beznea45cca2b2020-06-09 13:53:00 +0300698
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200699 flx7: flexcom@e2024000 {
700 compatible = "atmel,sama5d2-flexcom";
701 reg = <0xe2024000 0x200>;
702 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
703 #address-cells = <1>;
704 #size-cells = <1>;
705 ranges = <0x0 0xe2024000 0x800>;
706 status = "disabled";
707
708 uart7: serial@200 {
709 compatible = "atmel,at91sam9260-usart";
710 reg = <0x200 0x200>;
711 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
712 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
713 clock-names = "usart";
714 dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
715 <&dma1 AT91_XDMAC_DT_PERID(19)>;
716 dma-names = "tx", "rx";
717 atmel,use-dma-rx;
718 atmel,use-dma-tx;
719 atmel,fifo-size = <16>;
Claudiu Beznea45cca2b2020-06-09 13:53:00 +0300720 status = "disabled";
721 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200722 };
723
724 gmac0: ethernet@e2800000 {
725 compatible = "cdns,sama7g5-gem";
726 reg = <0xe2800000 0x1000>;
727 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH
728 GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH
729 GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH
730 GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH
731 GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH
732 GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
733 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_GCK 51>, <&pmc PMC_TYPE_GCK 53>;
734 clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
735 assigned-clocks = <&pmc PMC_TYPE_GCK 51>;
736 assigned-clock-parents = <&pmc PMC_TYPE_CORE 21>; /* eth pll div. */
737 assigned-clock-rates = <125000000>;
738 status = "disabled";
739 };
740
741 gmac1: ethernet@e2804000 {
742 compatible = "cdns,sama7g5-emac";
743 reg = <0xe2804000 0x1000>;
744 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH
745 GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
746 clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 52>;
747 clock-names = "pclk", "hclk";
748 status = "disabled";
749 };
750
751 dma0: dma-controller@e2808000 {
752 compatible = "microchip,sama7g5-dma";
753 reg = <0xe2808000 0x1000>;
754 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
755 #dma-cells = <1>;
756 clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
757 clock-names = "dma_clk";
758 status = "disabled";
759 };
760
761 dma1: dma-controller@e280c000 {
762 compatible = "microchip,sama7g5-dma";
763 reg = <0xe280c000 0x1000>;
764 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
765 #dma-cells = <1>;
766 clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
767 clock-names = "dma_clk";
768 status = "disabled";
769 };
770
771 /* Place dma2 here despite it's address */
772 dma2: dma-controller@e1200000 {
773 compatible = "microchip,sama7g5-dma";
774 reg = <0xe1200000 0x1000>;
775 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
776 #dma-cells = <1>;
777 clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
778 clock-names = "dma_clk";
779 dma-requests = <0>;
780 status = "disabled";
781 };
782
783 tcb0: timer@e2814000 {
784 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
785 #address-cells = <1>;
786 #size-cells = <0>;
787 reg = <0xe2814000 0x100>;
788 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
789 clocks = <&pmc PMC_TYPE_PERIPHERAL 88>, <&pmc PMC_TYPE_PERIPHERAL 89>, <&pmc PMC_TYPE_PERIPHERAL 90>, <&clk32k 1>;
790 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
791 };
792
793 flx8: flexcom@e2818000 {
794 compatible = "atmel,sama5d2-flexcom";
795 reg = <0xe2818000 0x200>;
796 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
797 #address-cells = <1>;
798 #size-cells = <1>;
799 ranges = <0x0 0xe2818000 0x800>;
800 status = "disabled";
Claudiu Beznea44550122020-06-09 13:53:45 +0300801
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200802 i2c8: i2c@600 {
803 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
804 reg = <0x600 0x200>;
805 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
806 #address-cells = <1>;
807 #size-cells = <0>;
808 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
809 atmel,fifo-size = <32>;
810 dmas = <&dma0 AT91_XDMAC_DT_PERID(21)>,
811 <&dma0 AT91_XDMAC_DT_PERID(22)>;
812 dma-names = "rx", "tx";
Claudiu Beznea44550122020-06-09 13:53:45 +0300813 status = "disabled";
814 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200815 };
Eugen Hristev130bdad2022-01-04 18:21:54 +0200816
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200817 flx9: flexcom@e281c000 {
818 compatible = "atmel,sama5d2-flexcom";
819 reg = <0xe281c000 0x200>;
820 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
821 #address-cells = <1>;
822 #size-cells = <1>;
823 ranges = <0x0 0xe281c000 0x800>;
824 status = "disabled";
825
826 i2c9: i2c@600 {
827 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
828 reg = <0x600 0x200>;
829 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
830 #address-cells = <1>;
831 #size-cells = <0>;
832 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
833 atmel,fifo-size = <32>;
834 dmas = <&dma0 AT91_XDMAC_DT_PERID(23)>,
835 <&dma0 AT91_XDMAC_DT_PERID(24)>;
836 dma-names = "rx", "tx";
Eugen Hristev130bdad2022-01-04 18:21:54 +0200837 status = "disabled";
838 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200839 };
Eugen Hristev130bdad2022-01-04 18:21:54 +0200840
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200841 flx11: flexcom@e2824000 {
842 compatible = "atmel,sama5d2-flexcom";
843 reg = <0xe2824000 0x200>;
844 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
845 #address-cells = <1>;
846 #size-cells = <1>;
847 ranges = <0x0 0xe2824000 0x800>;
848 status = "disabled";
849
850 spi11: spi@400 {
851 compatible = "atmel,at91rm9200-spi";
852 reg = <0x400 0x200>;
853 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
854 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
855 clock-names = "spi_clk";
Eugen Hristev130bdad2022-01-04 18:21:54 +0200856 #address-cells = <1>;
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200857 #size-cells = <0>;
858 atmel,fifo-size = <32>;
859 dmas = <&dma0 AT91_XDMAC_DT_PERID(27)>,
860 <&dma0 AT91_XDMAC_DT_PERID(28)>;
861 dma-names = "rx", "tx";
Eugen Hristev130bdad2022-01-04 18:21:54 +0200862 status = "disabled";
Eugen Hristev130bdad2022-01-04 18:21:54 +0200863 };
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200864 };
Eugen Hristev130bdad2022-01-04 18:21:54 +0200865
Eugen Hristevdb55fd62022-03-07 16:29:42 +0200866 uddrc: uddrc@e3800000 {
867 compatible = "microchip,sama7g5-uddrc";
868 reg = <0xe3800000 0x4000>;
869 };
870
871 ddr3phy: ddr3phy@e3804000 {
872 compatible = "microchip,sama7g5-ddr3phy";
873 reg = <0xe3804000 0x1000>;
874 };
875
876 gic: interrupt-controller@e8c11000 {
877 compatible = "arm,cortex-a7-gic";
878 #interrupt-cells = <3>;
879 #address-cells = <0>;
880 interrupt-controller;
881 interrupt-parent;
882 reg = <0xe8c11000 0x1000>,
883 <0xe8c12000 0x2000>;
Eugen Hristev1e30fa12020-03-10 11:56:03 +0200884 };
885 };
886};