Loading...
Note: File does not exist in v4.6.
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * sama7g5.dtsi - Device Tree Include file for SAMA7G5 family SoC
4 *
5 * Copyright (C) 2020 Microchip Technology, Inc. and its subsidiaries
6 *
7 * Author: Eugen Hristev <eugen.hristev@microchip.com>
8 * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
9 *
10 */
11
12#include <dt-bindings/iio/adc/at91-sama5d2_adc.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/clock/at91.h>
16#include <dt-bindings/dma/at91.h>
17#include <dt-bindings/gpio/gpio.h>
18#include <dt-bindings/mfd/at91-usart.h>
19#include <dt-bindings/nvmem/microchip,sama7g5-otpc.h>
20#include <dt-bindings/thermal/thermal.h>
21
22/ {
23 model = "Microchip SAMA7G5 family SoC";
24 compatible = "microchip,sama7g5";
25 #address-cells = <1>;
26 #size-cells = <1>;
27 interrupt-parent = <&gic>;
28
29 cpus {
30 #address-cells = <1>;
31 #size-cells = <0>;
32
33 cpu0: cpu@0 {
34 device_type = "cpu";
35 compatible = "arm,cortex-a7";
36 reg = <0x0>;
37 clocks = <&pmc PMC_TYPE_CORE PMC_CPUPLL>;
38 clock-names = "cpu";
39 operating-points-v2 = <&cpu_opp_table>;
40 #cooling-cells = <2>; /* min followed by max */
41 };
42 };
43
44 cpu_opp_table: opp-table {
45 compatible = "operating-points-v2";
46
47 opp-90000000 {
48 opp-hz = /bits/ 64 <90000000>;
49 opp-microvolt = <1050000 1050000 1225000>;
50 clock-latency-ns = <320000>;
51 };
52
53 opp-250000000 {
54 opp-hz = /bits/ 64 <250000000>;
55 opp-microvolt = <1050000 1050000 1225000>;
56 clock-latency-ns = <320000>;
57 };
58
59 opp-600000000 {
60 opp-hz = /bits/ 64 <600000000>;
61 opp-microvolt = <1050000 1050000 1225000>;
62 clock-latency-ns = <320000>;
63 opp-suspend;
64 };
65
66 opp-800000000 {
67 opp-hz = /bits/ 64 <800000000>;
68 opp-microvolt = <1150000 1125000 1225000>;
69 clock-latency-ns = <320000>;
70 };
71
72 opp-1000000002 {
73 opp-hz = /bits/ 64 <1000000002>;
74 opp-microvolt = <1250000 1225000 1300000>;
75 clock-latency-ns = <320000>;
76 };
77 };
78
79 thermal-zones {
80 cpu_thermal: cpu-thermal {
81 polling-delay-passive = <1000>;
82 polling-delay = <5000>;
83 thermal-sensors = <&thermal_sensor>;
84
85 trips {
86 cpu_normal: cpu-alert0 {
87 temperature = <90000>;
88 hysteresis = <0>;
89 type = "passive";
90 };
91
92 cpu_hot: cpu-alert1 {
93 temperature = <95000>;
94 hysteresis = <0>;
95 type = "passive";
96 };
97
98 cpu_critical: cpu-critical {
99 temperature = <100000>;
100 hysteresis = <0>;
101 type = "critical";
102 };
103 };
104
105 cooling-maps {
106 map0 {
107 trip = <&cpu_normal>;
108 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
109 };
110
111 map1 {
112 trip = <&cpu_hot>;
113 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
114 };
115 };
116 };
117 };
118
119 clocks {
120 slow_xtal: slow_xtal {
121 compatible = "fixed-clock";
122 #clock-cells = <0>;
123 };
124
125 main_xtal: main_xtal {
126 compatible = "fixed-clock";
127 #clock-cells = <0>;
128 };
129
130 usb_clk: usb_clk {
131 compatible = "fixed-clock";
132 #clock-cells = <0>;
133 clock-frequency = <48000000>;
134 };
135 };
136
137 vddout25: fixed-regulator-vddout25 {
138 compatible = "regulator-fixed";
139
140 regulator-name = "VDDOUT25";
141 regulator-min-microvolt = <2500000>;
142 regulator-max-microvolt = <2500000>;
143 regulator-boot-on;
144 status = "disabled";
145 };
146
147 ns_sram: sram@100000 {
148 compatible = "mmio-sram";
149 #address-cells = <1>;
150 #size-cells = <1>;
151 reg = <0x100000 0x20000>;
152 ranges;
153 };
154
155 thermal_sensor: thermal-sensor {
156 compatible = "generic-adc-thermal";
157 #thermal-sensor-cells = <0>;
158 io-channels = <&adc AT91_SAMA7G5_ADC_TEMP_CHANNEL>;
159 io-channel-names = "sensor-channel";
160 };
161
162 soc {
163 compatible = "simple-bus";
164 #address-cells = <1>;
165 #size-cells = <1>;
166 ranges;
167
168 nfc_sram: sram@600000 {
169 compatible = "mmio-sram";
170 no-memory-wc;
171 reg = <0x00600000 0x2400>;
172 #address-cells = <1>;
173 #size-cells = <1>;
174 ranges = <0 0x00600000 0x2400>;
175 };
176
177 nfc_io: nfc-io@10000000 {
178 compatible = "atmel,sama5d3-nfc-io", "syscon";
179 reg = <0x10000000 0x8000000>;
180 };
181
182 ebi: ebi@40000000 {
183 compatible = "atmel,sama5d3-ebi";
184 #address-cells = <2>;
185 #size-cells = <1>;
186 atmel,smc = <&hsmc>;
187 reg = <0x40000000 0x20000000>;
188 ranges = <0x0 0x0 0x40000000 0x8000000
189 0x1 0x0 0x48000000 0x8000000
190 0x2 0x0 0x50000000 0x8000000
191 0x3 0x0 0x58000000 0x8000000>;
192 clocks = <&pmc PMC_TYPE_CORE PMC_MCK1>;
193 status = "disabled";
194
195 nand_controller: nand-controller {
196 compatible = "atmel,sama5d3-nand-controller";
197 atmel,nfc-sram = <&nfc_sram>;
198 atmel,nfc-io = <&nfc_io>;
199 ecc-engine = <&pmecc>;
200 #address-cells = <2>;
201 #size-cells = <1>;
202 ranges;
203 status = "disabled";
204 };
205 };
206
207 securam: sram@e0000000 {
208 compatible = "microchip,sama7g5-securam", "atmel,sama5d2-securam", "mmio-sram";
209 reg = <0xe0000000 0x4000>;
210 clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
211 #address-cells = <1>;
212 #size-cells = <1>;
213 ranges = <0 0xe0000000 0x4000>;
214 no-memory-wc;
215 };
216
217 secumod: secumod@e0004000 {
218 compatible = "microchip,sama7g5-secumod", "atmel,sama5d2-secumod", "syscon";
219 reg = <0xe0004000 0x4000>;
220 gpio-controller;
221 #gpio-cells = <2>;
222 };
223
224 sfrbu: sfr@e0008000 {
225 compatible = "microchip,sama7g5-sfrbu", "atmel,sama5d2-sfrbu", "syscon";
226 reg = <0xe0008000 0x20>;
227 };
228
229 pioA: pinctrl@e0014000 {
230 compatible = "microchip,sama7g5-pinctrl";
231 reg = <0xe0014000 0x800>;
232 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
233 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
234 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
235 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
236 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
237 interrupt-controller;
238 #interrupt-cells = <2>;
239 gpio-controller;
240 #gpio-cells = <2>;
241 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
242 };
243
244 pmc: pmc@e0018000 {
245 compatible = "microchip,sama7g5-pmc", "syscon";
246 reg = <0xe0018000 0x200>;
247 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
248 #clock-cells = <2>;
249 clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
250 clock-names = "td_slck", "md_slck", "main_xtal";
251 };
252
253 reset_controller: reset-controller@e001d000 {
254 compatible = "microchip,sama7g5-rstc";
255 reg = <0xe001d000 0xc>, <0xe001d0e4 0x4>;
256 #reset-cells = <1>;
257 clocks = <&clk32k 0>;
258 };
259
260 shdwc: shdwc@e001d010 {
261 compatible = "microchip,sama7g5-shdwc", "syscon";
262 reg = <0xe001d010 0x10>;
263 clocks = <&clk32k 0>;
264 #address-cells = <1>;
265 #size-cells = <0>;
266 atmel,wakeup-rtc-timer;
267 atmel,wakeup-rtt-timer;
268 status = "disabled";
269 };
270
271 rtt: rtc@e001d020 {
272 compatible = "microchip,sama7g5-rtt", "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
273 reg = <0xe001d020 0x30>;
274 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
275 clocks = <&clk32k 0>;
276 };
277
278 clk32k: clock-controller@e001d050 {
279 compatible = "microchip,sama7g5-sckc", "microchip,sam9x60-sckc";
280 reg = <0xe001d050 0x4>;
281 clocks = <&slow_xtal>;
282 #clock-cells = <1>;
283 };
284
285 gpbr: gpbr@e001d060 {
286 compatible = "microchip,sama7g5-gpbr", "syscon";
287 reg = <0xe001d060 0x48>;
288 };
289
290 rtc: rtc@e001d0a8 {
291 compatible = "microchip,sama7g5-rtc", "microchip,sam9x60-rtc";
292 reg = <0xe001d0a8 0x30>;
293 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
294 clocks = <&clk32k 1>;
295 };
296
297 ps_wdt: watchdog@e001d180 {
298 compatible = "microchip,sama7g5-wdt";
299 reg = <0xe001d180 0x24>;
300 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
301 clocks = <&clk32k 0>;
302 };
303
304 chipid@e0020000 {
305 compatible = "microchip,sama7g5-chipid";
306 reg = <0xe0020000 0x8>;
307 };
308
309 tcb1: timer@e0800000 {
310 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
311 #address-cells = <1>;
312 #size-cells = <0>;
313 reg = <0xe0800000 0x100>;
314 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
315 clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 93>, <&clk32k 1>;
316 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
317 };
318
319 hsmc: hsmc@e0808000 {
320 compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
321 reg = <0xe0808000 0x1000>;
322 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
323 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
324 #address-cells = <1>;
325 #size-cells = <1>;
326 ranges;
327
328 pmecc: ecc-engine@e0808070 {
329 compatible = "atmel,sama5d2-pmecc";
330 reg = <0xe0808070 0x490>,
331 <0xe0808500 0x200>;
332 };
333 };
334
335 qspi0: spi@e080c000 {
336 compatible = "microchip,sama7g5-ospi";
337 reg = <0xe080c000 0x400>, <0x20000000 0x10000000>;
338 reg-names = "qspi_base", "qspi_mmap";
339 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
340 dmas = <&dma0 AT91_XDMAC_DT_PERID(41)>,
341 <&dma0 AT91_XDMAC_DT_PERID(40)>;
342 dma-names = "tx", "rx";
343 clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
344 clock-names = "pclk", "gclk";
345 #address-cells = <1>;
346 #size-cells = <0>;
347 status = "disabled";
348 };
349
350 qspi1: spi@e0810000 {
351 compatible = "microchip,sama7g5-qspi";
352 reg = <0xe0810000 0x400>, <0x30000000 0x10000000>;
353 reg-names = "qspi_base", "qspi_mmap";
354 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
355 dmas = <&dma0 AT91_XDMAC_DT_PERID(43)>,
356 <&dma0 AT91_XDMAC_DT_PERID(42)>;
357 dma-names = "tx", "rx";
358 clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
359 clock-names = "pclk", "gclk";
360 #address-cells = <1>;
361 #size-cells = <0>;
362 status = "disabled";
363 };
364
365 can0: can@e0828000 {
366 compatible = "bosch,m_can";
367 reg = <0xe0828000 0x100>, <0x100000 0x7800>;
368 reg-names = "m_can", "message_ram";
369 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH
370 GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
371 interrupt-names = "int0", "int1";
372 clocks = <&pmc PMC_TYPE_PERIPHERAL 61>, <&pmc PMC_TYPE_GCK 61>;
373 clock-names = "hclk", "cclk";
374 assigned-clocks = <&pmc PMC_TYPE_GCK 61>;
375 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
376 assigned-clock-rates = <40000000>;
377 bosch,mram-cfg = <0x3400 0 0 64 0 0 32 32>;
378 status = "disabled";
379 };
380
381 can1: can@e082c000 {
382 compatible = "bosch,m_can";
383 reg = <0xe082c000 0x100>, <0x100000 0xbc00>;
384 reg-names = "m_can", "message_ram";
385 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH
386 GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
387 interrupt-names = "int0", "int1";
388 clocks = <&pmc PMC_TYPE_PERIPHERAL 62>, <&pmc PMC_TYPE_GCK 62>;
389 clock-names = "hclk", "cclk";
390 assigned-clocks = <&pmc PMC_TYPE_GCK 62>;
391 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
392 assigned-clock-rates = <40000000>;
393 bosch,mram-cfg = <0x7800 0 0 64 0 0 32 32>;
394 status = "disabled";
395 };
396
397 can2: can@e0830000 {
398 compatible = "bosch,m_can";
399 reg = <0xe0830000 0x100>, <0x100000 0x10000>;
400 reg-names = "m_can", "message_ram";
401 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH
402 GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
403 interrupt-names = "int0", "int1";
404 clocks = <&pmc PMC_TYPE_PERIPHERAL 63>, <&pmc PMC_TYPE_GCK 63>;
405 clock-names = "hclk", "cclk";
406 assigned-clocks = <&pmc PMC_TYPE_GCK 63>;
407 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
408 assigned-clock-rates = <40000000>;
409 bosch,mram-cfg = <0xbc00 0 0 64 0 0 32 32>;
410 status = "disabled";
411 };
412
413 can3: can@e0834000 {
414 compatible = "bosch,m_can";
415 reg = <0xe0834000 0x100>, <0x110000 0x4400>;
416 reg-names = "m_can", "message_ram";
417 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH
418 GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
419 interrupt-names = "int0", "int1";
420 clocks = <&pmc PMC_TYPE_PERIPHERAL 64>, <&pmc PMC_TYPE_GCK 64>;
421 clock-names = "hclk", "cclk";
422 assigned-clocks = <&pmc PMC_TYPE_GCK 64>;
423 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
424 assigned-clock-rates = <40000000>;
425 bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
426 status = "disabled";
427 };
428
429 can4: can@e0838000 {
430 compatible = "bosch,m_can";
431 reg = <0xe0838000 0x100>, <0x110000 0x8800>;
432 reg-names = "m_can", "message_ram";
433 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH
434 GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
435 interrupt-names = "int0", "int1";
436 clocks = <&pmc PMC_TYPE_PERIPHERAL 65>, <&pmc PMC_TYPE_GCK 65>;
437 clock-names = "hclk", "cclk";
438 assigned-clocks = <&pmc PMC_TYPE_GCK 65>;
439 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
440 assigned-clock-rates = <40000000>;
441 bosch,mram-cfg = <0x4400 0 0 64 0 0 32 32>;
442 status = "disabled";
443 };
444
445 can5: can@e083c000 {
446 compatible = "bosch,m_can";
447 reg = <0xe083c000 0x100>, <0x110000 0xcc00>;
448 reg-names = "m_can", "message_ram";
449 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH
450 GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
451 interrupt-names = "int0", "int1";
452 clocks = <&pmc PMC_TYPE_PERIPHERAL 66>, <&pmc PMC_TYPE_GCK 66>;
453 clock-names = "hclk", "cclk";
454 assigned-clocks = <&pmc PMC_TYPE_GCK 66>;
455 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
456 assigned-clock-rates = <40000000>;
457 bosch,mram-cfg = <0x8800 0 0 64 0 0 32 32>;
458 status = "disabled";
459 };
460
461 adc: adc@e1000000 {
462 compatible = "microchip,sama7g5-adc";
463 reg = <0xe1000000 0x200>;
464 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
465 clocks = <&pmc PMC_TYPE_GCK 26>;
466 assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
467 assigned-clock-rates = <100000000>;
468 clock-names = "adc_clk";
469 dmas = <&dma0 AT91_XDMAC_DT_PERID(0)>;
470 dma-names = "rx";
471 atmel,min-sample-rate-hz = <200000>;
472 atmel,max-sample-rate-hz = <20000000>;
473 atmel,startup-time-ms = <4>;
474 #io-channel-cells = <1>;
475 nvmem-cells = <&temperature_calib>;
476 nvmem-cell-names = "temperature_calib";
477 status = "disabled";
478 };
479
480 sdmmc0: mmc@e1204000 {
481 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
482 reg = <0xe1204000 0x4000>;
483 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
484 clocks = <&pmc PMC_TYPE_PERIPHERAL 80>, <&pmc PMC_TYPE_GCK 80>;
485 clock-names = "hclock", "multclk";
486 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
487 assigned-clocks = <&pmc PMC_TYPE_GCK 80>;
488 assigned-clock-rates = <200000000>;
489 microchip,sdcal-inverted;
490 status = "disabled";
491 };
492
493 sdmmc1: mmc@e1208000 {
494 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
495 reg = <0xe1208000 0x4000>;
496 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
497 clocks = <&pmc PMC_TYPE_PERIPHERAL 81>, <&pmc PMC_TYPE_GCK 81>;
498 clock-names = "hclock", "multclk";
499 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
500 assigned-clocks = <&pmc PMC_TYPE_GCK 81>;
501 assigned-clock-rates = <200000000>;
502 microchip,sdcal-inverted;
503 status = "disabled";
504 };
505
506 sdmmc2: mmc@e120c000 {
507 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
508 reg = <0xe120c000 0x4000>;
509 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
510 clocks = <&pmc PMC_TYPE_PERIPHERAL 82>, <&pmc PMC_TYPE_GCK 82>;
511 clock-names = "hclock", "multclk";
512 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
513 assigned-clocks = <&pmc PMC_TYPE_GCK 82>;
514 assigned-clock-rates = <200000000>;
515 microchip,sdcal-inverted;
516 status = "disabled";
517 };
518
519 pwm: pwm@e1604000 {
520 compatible = "microchip,sama7g5-pwm", "atmel,sama5d2-pwm";
521 reg = <0xe1604000 0x4000>;
522 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
523 #pwm-cells = <3>;
524 clocks = <&pmc PMC_TYPE_PERIPHERAL 77>;
525 status = "disabled";
526 };
527
528 pdmc0: sound@e1608000 {
529 compatible = "microchip,sama7g5-pdmc";
530 reg = <0xe1608000 0x1000>;
531 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
532 #sound-dai-cells = <0>;
533 dmas = <&dma0 AT91_XDMAC_DT_PERID(37)>;
534 dma-names = "rx";
535 clocks = <&pmc PMC_TYPE_PERIPHERAL 68>, <&pmc PMC_TYPE_GCK 68>;
536 clock-names = "pclk", "gclk";
537 status = "disabled";
538 };
539
540 pdmc1: sound@e160c000 {
541 compatible = "microchip,sama7g5-pdmc";
542 reg = <0xe160c000 0x1000>;
543 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
544 #sound-dai-cells = <0>;
545 dmas = <&dma0 AT91_XDMAC_DT_PERID(38)>;
546 dma-names = "rx";
547 clocks = <&pmc PMC_TYPE_PERIPHERAL 69>, <&pmc PMC_TYPE_GCK 69>;
548 clock-names = "pclk", "gclk";
549 status = "disabled";
550 };
551
552 spdifrx: spdifrx@e1614000 {
553 #sound-dai-cells = <0>;
554 compatible = "microchip,sama7g5-spdifrx";
555 reg = <0xe1614000 0x4000>;
556 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
557 dmas = <&dma0 AT91_XDMAC_DT_PERID(49)>;
558 dma-names = "rx";
559 clocks = <&pmc PMC_TYPE_PERIPHERAL 84>, <&pmc PMC_TYPE_GCK 84>;
560 clock-names = "pclk", "gclk";
561 status = "disabled";
562 };
563
564 spdiftx: spdiftx@e1618000 {
565 #sound-dai-cells = <0>;
566 compatible = "microchip,sama7g5-spdiftx";
567 reg = <0xe1618000 0x4000>;
568 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
569 dmas = <&dma0 AT91_XDMAC_DT_PERID(50)>;
570 dma-names = "tx";
571 clocks = <&pmc PMC_TYPE_PERIPHERAL 85>, <&pmc PMC_TYPE_GCK 85>;
572 clock-names = "pclk", "gclk";
573 };
574
575 i2s0: i2s@e161c000 {
576 compatible = "microchip,sama7g5-i2smcc";
577 #sound-dai-cells = <0>;
578 reg = <0xe161c000 0x4000>;
579 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
580 dmas = <&dma0 AT91_XDMAC_DT_PERID(34)>, <&dma0 AT91_XDMAC_DT_PERID(33)>;
581 dma-names = "tx", "rx";
582 clocks = <&pmc PMC_TYPE_PERIPHERAL 57>, <&pmc PMC_TYPE_GCK 57>;
583 clock-names = "pclk", "gclk";
584 status = "disabled";
585 };
586
587 i2s1: i2s@e1620000 {
588 compatible = "microchip,sama7g5-i2smcc";
589 #sound-dai-cells = <0>;
590 reg = <0xe1620000 0x4000>;
591 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
592 dmas = <&dma0 AT91_XDMAC_DT_PERID(36)>, <&dma0 AT91_XDMAC_DT_PERID(35)>;
593 dma-names = "tx", "rx";
594 clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>;
595 clock-names = "pclk", "gclk";
596 status = "disabled";
597 };
598
599 eic: interrupt-controller@e1628000 {
600 compatible = "microchip,sama7g5-eic";
601 reg = <0xe1628000 0xec>;
602 interrupt-parent = <&gic>;
603 interrupt-controller;
604 #interrupt-cells = <2>;
605 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
606 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
607 clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
608 clock-names = "pclk";
609 status = "disabled";
610 };
611
612 pit64b0: timer@e1800000 {
613 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
614 reg = <0xe1800000 0x4000>;
615 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
616 clocks = <&pmc PMC_TYPE_PERIPHERAL 70>, <&pmc PMC_TYPE_GCK 70>;
617 clock-names = "pclk", "gclk";
618 };
619
620 pit64b1: timer@e1804000 {
621 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
622 reg = <0xe1804000 0x4000>;
623 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
624 clocks = <&pmc PMC_TYPE_PERIPHERAL 71>, <&pmc PMC_TYPE_GCK 71>;
625 clock-names = "pclk", "gclk";
626 };
627
628 aes: crypto@e1810000 {
629 compatible = "atmel,at91sam9g46-aes";
630 reg = <0xe1810000 0x100>;
631 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
632 clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
633 clock-names = "aes_clk";
634 dmas = <&dma0 AT91_XDMAC_DT_PERID(1)>,
635 <&dma0 AT91_XDMAC_DT_PERID(2)>;
636 dma-names = "tx", "rx";
637 };
638
639 sha: crypto@e1814000 {
640 compatible = "atmel,at91sam9g46-sha";
641 reg = <0xe1814000 0x100>;
642 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
643 clocks = <&pmc PMC_TYPE_PERIPHERAL 83>;
644 clock-names = "sha_clk";
645 dmas = <&dma0 AT91_XDMAC_DT_PERID(48)>;
646 dma-names = "tx";
647 };
648
649 flx0: flexcom@e1818000 {
650 compatible = "atmel,sama5d2-flexcom";
651 reg = <0xe1818000 0x200>;
652 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
653 #address-cells = <1>;
654 #size-cells = <1>;
655 ranges = <0x0 0xe1818000 0x800>;
656 status = "disabled";
657
658 uart0: serial@200 {
659 compatible = "atmel,at91sam9260-usart";
660 reg = <0x200 0x200>;
661 atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
662 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
663 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
664 clock-names = "usart";
665 dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>,
666 <&dma1 AT91_XDMAC_DT_PERID(5)>;
667 dma-names = "tx", "rx";
668 atmel,use-dma-rx;
669 atmel,use-dma-tx;
670 status = "disabled";
671 };
672 };
673
674 flx1: flexcom@e181c000 {
675 compatible = "atmel,sama5d2-flexcom";
676 reg = <0xe181c000 0x200>;
677 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
678 #address-cells = <1>;
679 #size-cells = <1>;
680 ranges = <0x0 0xe181c000 0x800>;
681 status = "disabled";
682
683 i2c1: i2c@600 {
684 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
685 reg = <0x600 0x200>;
686 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
687 #address-cells = <1>;
688 #size-cells = <0>;
689 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
690 atmel,fifo-size = <32>;
691 dmas = <&dma0 AT91_XDMAC_DT_PERID(8)>,
692 <&dma0 AT91_XDMAC_DT_PERID(7)>;
693 dma-names = "tx", "rx";
694 status = "disabled";
695 };
696 };
697
698 flx3: flexcom@e1824000 {
699 compatible = "atmel,sama5d2-flexcom";
700 reg = <0xe1824000 0x200>;
701 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
702 #address-cells = <1>;
703 #size-cells = <1>;
704 ranges = <0x0 0xe1824000 0x800>;
705 status = "disabled";
706
707 uart3: serial@200 {
708 compatible = "atmel,at91sam9260-usart";
709 reg = <0x200 0x200>;
710 atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
711 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
712 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
713 clock-names = "usart";
714 dmas = <&dma1 AT91_XDMAC_DT_PERID(12)>,
715 <&dma1 AT91_XDMAC_DT_PERID(11)>;
716 dma-names = "tx", "rx";
717 atmel,use-dma-rx;
718 atmel,use-dma-tx;
719 status = "disabled";
720 };
721 };
722
723 trng: rng@e2010000 {
724 compatible = "microchip,sama7g5-trng", "atmel,at91sam9g45-trng";
725 reg = <0xe2010000 0x100>;
726 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
727 clocks = <&pmc PMC_TYPE_PERIPHERAL 97>;
728 status = "disabled";
729 };
730
731 tdes: crypto@e2014000 {
732 compatible = "atmel,at91sam9g46-tdes";
733 reg = <0xe2014000 0x100>;
734 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
735 clocks = <&pmc PMC_TYPE_PERIPHERAL 96>;
736 clock-names = "tdes_clk";
737 dmas = <&dma0 AT91_XDMAC_DT_PERID(54)>,
738 <&dma0 AT91_XDMAC_DT_PERID(53)>;
739 dma-names = "tx", "rx";
740 };
741
742 flx4: flexcom@e2018000 {
743 compatible = "atmel,sama5d2-flexcom";
744 reg = <0xe2018000 0x200>;
745 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
746 #address-cells = <1>;
747 #size-cells = <1>;
748 ranges = <0x0 0xe2018000 0x800>;
749 status = "disabled";
750
751 uart4: serial@200 {
752 compatible = "atmel,at91sam9260-usart";
753 reg = <0x200 0x200>;
754 atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
755 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
756 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
757 clock-names = "usart";
758 dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>,
759 <&dma1 AT91_XDMAC_DT_PERID(13)>;
760 dma-names = "tx", "rx";
761 atmel,use-dma-rx;
762 atmel,use-dma-tx;
763 atmel,fifo-size = <16>;
764 status = "disabled";
765 };
766 };
767
768 flx7: flexcom@e2024000 {
769 compatible = "atmel,sama5d2-flexcom";
770 reg = <0xe2024000 0x200>;
771 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
772 #address-cells = <1>;
773 #size-cells = <1>;
774 ranges = <0x0 0xe2024000 0x800>;
775 status = "disabled";
776
777 uart7: serial@200 {
778 compatible = "atmel,at91sam9260-usart";
779 reg = <0x200 0x200>;
780 atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
781 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
782 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
783 clock-names = "usart";
784 dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
785 <&dma1 AT91_XDMAC_DT_PERID(19)>;
786 dma-names = "tx", "rx";
787 atmel,use-dma-rx;
788 atmel,use-dma-tx;
789 atmel,fifo-size = <16>;
790 status = "disabled";
791 };
792 };
793
794 gmac0: ethernet@e2800000 {
795 compatible = "microchip,sama7g5-gem";
796 reg = <0xe2800000 0x1000>;
797 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH
798 GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH
799 GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH
800 GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH
801 GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH
802 GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
803 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_GCK 51>, <&pmc PMC_TYPE_GCK 53>;
804 clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
805 assigned-clocks = <&pmc PMC_TYPE_GCK 51>;
806 assigned-clock-rates = <125000000>;
807 status = "disabled";
808 };
809
810 gmac1: ethernet@e2804000 {
811 compatible = "microchip,sama7g5-emac";
812 reg = <0xe2804000 0x1000>;
813 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH
814 GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
815 clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 52>;
816 clock-names = "pclk", "hclk";
817 status = "disabled";
818 };
819
820 dma0: dma-controller@e2808000 {
821 compatible = "microchip,sama7g5-dma";
822 reg = <0xe2808000 0x1000>;
823 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
824 #dma-cells = <1>;
825 clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
826 clock-names = "dma_clk";
827 status = "disabled";
828 };
829
830 dma1: dma-controller@e280c000 {
831 compatible = "microchip,sama7g5-dma";
832 reg = <0xe280c000 0x1000>;
833 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
834 #dma-cells = <1>;
835 clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
836 clock-names = "dma_clk";
837 status = "disabled";
838 };
839
840 /* Place dma2 here despite it's address */
841 dma2: dma-controller@e1200000 {
842 compatible = "microchip,sama7g5-dma";
843 reg = <0xe1200000 0x1000>;
844 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
845 #dma-cells = <1>;
846 clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
847 clock-names = "dma_clk";
848 dma-requests = <0>;
849 status = "disabled";
850 };
851
852 tcb0: timer@e2814000 {
853 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
854 #address-cells = <1>;
855 #size-cells = <0>;
856 reg = <0xe2814000 0x100>;
857 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
858 clocks = <&pmc PMC_TYPE_PERIPHERAL 88>, <&pmc PMC_TYPE_PERIPHERAL 89>, <&pmc PMC_TYPE_PERIPHERAL 90>, <&clk32k 1>;
859 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
860 };
861
862 flx8: flexcom@e2818000 {
863 compatible = "atmel,sama5d2-flexcom";
864 reg = <0xe2818000 0x200>;
865 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
866 #address-cells = <1>;
867 #size-cells = <1>;
868 ranges = <0x0 0xe2818000 0x800>;
869 status = "disabled";
870
871 i2c8: i2c@600 {
872 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
873 reg = <0x600 0x200>;
874 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
875 #address-cells = <1>;
876 #size-cells = <0>;
877 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
878 atmel,fifo-size = <32>;
879 dmas = <&dma0 AT91_XDMAC_DT_PERID(22)>,
880 <&dma0 AT91_XDMAC_DT_PERID(21)>;
881 dma-names = "tx", "rx";
882 status = "disabled";
883 };
884 };
885
886 flx9: flexcom@e281c000 {
887 compatible = "atmel,sama5d2-flexcom";
888 reg = <0xe281c000 0x200>;
889 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
890 #address-cells = <1>;
891 #size-cells = <1>;
892 ranges = <0x0 0xe281c000 0x800>;
893 status = "disabled";
894
895 i2c9: i2c@600 {
896 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
897 reg = <0x600 0x200>;
898 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
899 #address-cells = <1>;
900 #size-cells = <0>;
901 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
902 atmel,fifo-size = <32>;
903 dmas = <&dma0 AT91_XDMAC_DT_PERID(24)>,
904 <&dma0 AT91_XDMAC_DT_PERID(23)>;
905 dma-names = "tx", "rx";
906 status = "disabled";
907 };
908 };
909
910 flx11: flexcom@e2824000 {
911 compatible = "atmel,sama5d2-flexcom";
912 reg = <0xe2824000 0x200>;
913 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
914 #address-cells = <1>;
915 #size-cells = <1>;
916 ranges = <0x0 0xe2824000 0x800>;
917 status = "disabled";
918
919 spi11: spi@400 {
920 compatible = "atmel,at91rm9200-spi";
921 reg = <0x400 0x200>;
922 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
923 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
924 clock-names = "spi_clk";
925 #address-cells = <1>;
926 #size-cells = <0>;
927 atmel,fifo-size = <32>;
928 dmas = <&dma0 AT91_XDMAC_DT_PERID(28)>,
929 <&dma0 AT91_XDMAC_DT_PERID(27)>;
930 dma-names = "tx", "rx";
931 status = "disabled";
932 };
933 };
934
935 uddrc: uddrc@e3800000 {
936 compatible = "microchip,sama7g5-uddrc";
937 reg = <0xe3800000 0x4000>;
938 };
939
940 ddr3phy: ddr3phy@e3804000 {
941 compatible = "microchip,sama7g5-ddr3phy";
942 reg = <0xe3804000 0x1000>;
943 };
944
945 otpc: efuse@e8c00000 {
946 compatible = "microchip,sama7g5-otpc", "syscon";
947 reg = <0xe8c00000 0x100>;
948 #address-cells = <1>;
949 #size-cells = <1>;
950
951 temperature_calib: calib@1 {
952 reg = <OTP_PKT(1) 76>;
953 };
954 };
955
956 gic: interrupt-controller@e8c11000 {
957 compatible = "arm,cortex-a7-gic";
958 #interrupt-cells = <3>;
959 #address-cells = <0>;
960 interrupt-controller;
961 reg = <0xe8c11000 0x1000>,
962 <0xe8c12000 0x2000>;
963 };
964 };
965};