blob: 4efecdb92c7228c59854658a3a2a1f7862a0753d [file] [log] [blame]
Eugen Hristev626879b2020-03-10 11:56:03 +02001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
Eugen Hristev746b7382022-03-07 16:29:42 +02003 * sama7g5.dtsi - Device Tree Include file for SAMA7G5 family SoC
Eugen Hristev626879b2020-03-10 11:56:03 +02004 *
Eugen Hristev746b7382022-03-07 16:29:42 +02005 * Copyright (C) 2020 Microchip Technology, Inc. and its subsidiaries
Eugen Hristev626879b2020-03-10 11:56:03 +02006 *
Eugen Hristev746b7382022-03-07 16:29:42 +02007 * Author: Eugen Hristev <eugen.hristev@microchip.com>
8 * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Eugen Hristev626879b2020-03-10 11:56:03 +02009 *
10 */
11
12#include "skeleton.dtsi"
Eugen Hristev4727f952022-01-04 18:21:54 +020013#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
Claudiu Beznea394f5202020-06-02 15:26:12 +030015#include <dt-bindings/clk/at91.h>
Eugen Hristev4727f952022-01-04 18:21:54 +020016#include <dt-bindings/dma/at91.h>
Eugen Hristev746b7382022-03-07 16:29:42 +020017#include <dt-bindings/gpio/gpio.h>
Eugen Hristev626879b2020-03-10 11:56:03 +020018
19/ {
20 model = "Microchip SAMA7G5 family SoC";
21 compatible = "microchip,sama7g5";
Eugen Hristev746b7382022-03-07 16:29:42 +020022 #address-cells = <1>;
23 #size-cells = <1>;
Eugen Hristev4727f952022-01-04 18:21:54 +020024 interrupt-parent = <&gic>;
Eugen Hristev626879b2020-03-10 11:56:03 +020025
Eugen Hristev746b7382022-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 Hristev626879b2020-03-10 11:56:03 +020074 clocks {
Claudiu Beznea5e19ade2020-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 Hristev626879b2020-03-10 11:56:03 +020087 slow_xtal: slow_xtal {
88 compatible = "fixed-clock";
89 #clock-cells = <0>;
Eugen Hristev626879b2020-03-10 11:56:03 +020090 };
91
92 main_xtal: main_xtal {
93 compatible = "fixed-clock";
94 #clock-cells = <0>;
Eugen Hristev626879b2020-03-10 11:56:03 +020095 };
Eugen Hristev626879b2020-03-10 11:56:03 +020096
Eugen Hristev746b7382022-03-07 16:29:42 +020097 usb_clk: usb_clk {
98 compatible = "fixed-clock";
99 #clock-cells = <0>;
100 clock-frequency = <48000000>;
Claudiu Beznea13f986b2020-06-02 15:35:55 +0300101 };
102 };
103
Eugen Hristev746b7382022-03-07 16:29:42 +0200104 vddout25: fixed-regulator-vddout25 {
105 compatible = "regulator-fixed";
106
107 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;
120 };
121
122 soc {
Eugen Hristev626879b2020-03-10 11:56:03 +0200123 compatible = "simple-bus";
124 #address-cells = <1>;
125 #size-cells = <1>;
Eugen Hristev746b7382022-03-07 16:29:42 +0200126 ranges;
Eugen Hristev626879b2020-03-10 11:56:03 +0200127
Eugen Hristev746b7382022-03-07 16:29:42 +0200128 nfc_sram: sram@600000 {
129 compatible = "mmio-sram";
130 no-memory-wc;
131 reg = <0x00600000 0x2400>;
Eugen Hristev626879b2020-03-10 11:56:03 +0200132 #address-cells = <1>;
133 #size-cells = <1>;
Eugen Hristev746b7382022-03-07 16:29:42 +0200134 ranges = <0 0x00600000 0x2400>;
135 };
Eugen Hristev626879b2020-03-10 11:56:03 +0200136
Eugen Hristev746b7382022-03-07 16:29:42 +0200137 nfc_io: nfc-io@10000000 {
138 compatible = "atmel,sama5d3-nfc-io", "syscon";
139 reg = <0x10000000 0x8000000>;
140 };
141
142 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";
164 };
165 };
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 };
176
177 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>;
Eugen Hristev47a13af2020-06-04 10:37:13 +0300202 gpio-controller;
203 #gpio-cells = <2>;
Eugen Hristev746b7382022-03-07 16:29:42 +0200204 compatible = "microchip,sama7g5-pinctrl";
Eugen Hristev47a13af2020-06-04 10:37:13 +0300205 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200206 };
Eugen Hristev47a13af2020-06-04 10:37:13 +0300207
Eugen Hristev746b7382022-03-07 16:29:42 +0200208 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
Sergiu Moga20165852022-04-01 12:27:23 +0300235 reset_controller: rstc@e001d000 {
236 compatible = "microchip,sama7g5-rstc", "microchip,sam9x60-rstc";
237 reg = <0xe001d000 0xc>, <0xe001d0e4 0x4>;
238 #reset-cells = <1>;
239 clocks = <&clk32k 0>;
240 };
241
Eugen Hristev746b7382022-03-07 16:29:42 +0200242 clk32k: clock-controller@e001d050 {
243 compatible = "microchip,sama7g5-sckc", "microchip,sam9x60-sckc";
244 reg = <0xe001d050 0x4>;
245 clocks = <&slow_rc_osc>, <&slow_xtal>;
246 #clock-cells = <1>;
247 };
248
249 gpbr: gpbr@e001d060 {
250 compatible = "microchip,sama7g5-gpbr", "syscon";
251 reg = <0xe001d060 0x48>;
252 };
253
254 rtc: rtc@e001d0a8 {
255 compatible = "microchip,sama7g5-rtc", "microchip,sam9x60-rtc";
256 reg = <0xe001d0a8 0x30>;
257 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
258 clocks = <&clk32k 1>;
259 };
260
261 ps_wdt: watchdog@e001d180 {
262 compatible = "microchip,sama7g5-wdt";
263 reg = <0xe001d180 0x24>;
264 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
265 clocks = <&clk32k 0>;
266 };
267
268 chipid@e0020000 {
269 compatible = "microchip,sama7g5-chipid";
270 reg = <0xe0020000 0x8>;
271 };
272
273 tcb1: timer@e0800000 {
274 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
275 #address-cells = <1>;
276 #size-cells = <0>;
277 reg = <0xe0800000 0x100>;
278 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
279 clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 93>, <&clk32k 1>;
280 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
281 };
282
283 hsmc: hsmc@e0808000 {
284 compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
285 reg = <0xe0808000 0x1000>;
286 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
287 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
288 #address-cells = <1>;
289 #size-cells = <1>;
290 ranges;
291
292 pmecc: ecc-engine@e0808070 {
293 compatible = "atmel,sama5d2-pmecc";
294 reg = <0xe0808070 0x490>,
295 <0xe0808500 0x200>;
Claudiu Beznea33fa0b62020-06-02 15:24:25 +0300296 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200297 };
Claudiu Beznea33fa0b62020-06-02 15:24:25 +0300298
Eugen Hristev746b7382022-03-07 16:29:42 +0200299 qspi0: spi@e080c000 {
300 compatible = "microchip,sama7g5-ospi";
301 reg = <0xe080c000 0x400>, <0x20000000 0x10000000>;
302 reg-names = "qspi_base", "qspi_mmap";
303 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
304 dmas = <&dma0 AT91_XDMAC_DT_PERID(41)>,
305 <&dma0 AT91_XDMAC_DT_PERID(40)>;
306 dma-names = "tx", "rx";
307 clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
308 clock-names = "pclk", "gclk";
309 assigned-clocks = <&pmc PMC_TYPE_GCK 78>;
310 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
311 #address-cells = <1>;
312 #size-cells = <0>;
313 status = "disabled";
314 };
Claudiu Beznea09f19f72020-06-02 15:23:49 +0300315
Eugen Hristev746b7382022-03-07 16:29:42 +0200316 qspi1: spi@e0810000 {
317 compatible = "microchip,sama7g5-qspi";
318 reg = <0xe0810000 0x400>, <0x30000000 0x10000000>;
319 reg-names = "qspi_base", "qspi_mmap";
320 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
321 dmas = <&dma0 AT91_XDMAC_DT_PERID(43)>,
322 <&dma0 AT91_XDMAC_DT_PERID(42)>;
323 dma-names = "tx", "rx";
324 clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
325 clock-names = "pclk", "gclk";
Tudor Ambarus51ca6a22022-04-08 11:41:11 +0300326 assigned-clocks = <&pmc PMC_TYPE_GCK 79>;
Eugen Hristev746b7382022-03-07 16:29:42 +0200327 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
328 #address-cells = <1>;
329 #size-cells = <0>;
330 status = "disabled";
331 };
Tudor Ambarus79eeb912021-11-03 19:07:40 +0200332
Eugen Hristev746b7382022-03-07 16:29:42 +0200333 can0: can@e0828000 {
334 compatible = "bosch,m_can";
335 reg = <0xe0828000 0x100>, <0x100000 0x7800>;
336 reg-names = "m_can", "message_ram";
337 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH
338 GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
339 interrupt-names = "int0", "int1";
340 clocks = <&pmc PMC_TYPE_PERIPHERAL 61>, <&pmc PMC_TYPE_GCK 61>;
341 clock-names = "hclk", "cclk";
342 assigned-clocks = <&pmc PMC_TYPE_GCK 61>;
343 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
344 assigned-clock-rates = <40000000>;
345 bosch,mram-cfg = <0x3400 0 0 64 0 0 32 32>;
346 status = "disabled";
347 };
Tudor Ambarus79eeb912021-11-03 19:07:40 +0200348
Eugen Hristev746b7382022-03-07 16:29:42 +0200349 can1: can@e082c000 {
350 compatible = "bosch,m_can";
351 reg = <0xe082c000 0x100>, <0x100000 0xbc00>;
352 reg-names = "m_can", "message_ram";
353 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH
354 GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
355 interrupt-names = "int0", "int1";
356 clocks = <&pmc PMC_TYPE_PERIPHERAL 62>, <&pmc PMC_TYPE_GCK 62>;
357 clock-names = "hclk", "cclk";
358 assigned-clocks = <&pmc PMC_TYPE_GCK 62>;
359 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
360 assigned-clock-rates = <40000000>;
361 bosch,mram-cfg = <0x7800 0 0 64 0 0 32 32>;
362 status = "disabled";
363 };
Eugen Hristev523c10c2020-07-30 15:52:13 +0300364
Eugen Hristev746b7382022-03-07 16:29:42 +0200365 can2: can@e0830000 {
366 compatible = "bosch,m_can";
367 reg = <0xe0830000 0x100>, <0x100000 0x10000>;
368 reg-names = "m_can", "message_ram";
369 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH
370 GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
371 interrupt-names = "int0", "int1";
372 clocks = <&pmc PMC_TYPE_PERIPHERAL 63>, <&pmc PMC_TYPE_GCK 63>;
373 clock-names = "hclk", "cclk";
374 assigned-clocks = <&pmc PMC_TYPE_GCK 63>;
375 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
376 assigned-clock-rates = <40000000>;
377 bosch,mram-cfg = <0xbc00 0 0 64 0 0 32 32>;
378 status = "disabled";
379 };
Eugen Hristev626879b2020-03-10 11:56:03 +0200380
Eugen Hristev746b7382022-03-07 16:29:42 +0200381 can3: can@e0834000 {
382 compatible = "bosch,m_can";
383 reg = <0xe0834000 0x100>, <0x110000 0x4400>;
384 reg-names = "m_can", "message_ram";
385 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH
386 GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
387 interrupt-names = "int0", "int1";
388 clocks = <&pmc PMC_TYPE_PERIPHERAL 64>, <&pmc PMC_TYPE_GCK 64>;
389 clock-names = "hclk", "cclk";
390 assigned-clocks = <&pmc PMC_TYPE_GCK 64>;
391 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
392 assigned-clock-rates = <40000000>;
393 bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
394 status = "disabled";
395 };
Claudiu Bezneab0322302020-06-02 18:42:18 +0300396
Eugen Hristev746b7382022-03-07 16:29:42 +0200397 can4: can@e0838000 {
398 compatible = "bosch,m_can";
399 reg = <0xe0838000 0x100>, <0x110000 0x8800>;
400 reg-names = "m_can", "message_ram";
401 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH
402 GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
403 interrupt-names = "int0", "int1";
404 clocks = <&pmc PMC_TYPE_PERIPHERAL 65>, <&pmc PMC_TYPE_GCK 65>;
405 clock-names = "hclk", "cclk";
406 assigned-clocks = <&pmc PMC_TYPE_GCK 65>;
407 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
408 assigned-clock-rates = <40000000>;
409 bosch,mram-cfg = <0x4400 0 0 64 0 0 32 32>;
410 status = "disabled";
411 };
Eugen Hristev1c629fd2020-07-31 15:19:23 +0300412
Eugen Hristev746b7382022-03-07 16:29:42 +0200413 can5: can@e083c000 {
414 compatible = "bosch,m_can";
415 reg = <0xe083c000 0x100>, <0x110000 0xcc00>;
416 reg-names = "m_can", "message_ram";
417 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH
418 GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
419 interrupt-names = "int0", "int1";
420 clocks = <&pmc PMC_TYPE_PERIPHERAL 66>, <&pmc PMC_TYPE_GCK 66>;
421 clock-names = "hclk", "cclk";
422 assigned-clocks = <&pmc PMC_TYPE_GCK 66>;
423 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
424 assigned-clock-rates = <40000000>;
425 bosch,mram-cfg = <0x8800 0 0 64 0 0 32 32>;
426 status = "disabled";
427 };
Eugen Hristev1c629fd2020-07-31 15:19:23 +0300428
Eugen Hristev746b7382022-03-07 16:29:42 +0200429 adc: adc@e1000000 {
430 compatible = "microchip,sama7g5-adc";
431 reg = <0xe1000000 0x200>;
432 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&pmc PMC_TYPE_GCK 26>;
434 assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
435 assigned-clock-rates = <100000000>;
436 clock-names = "adc_clk";
437 dmas = <&dma0 AT91_XDMAC_DT_PERID(0)>;
438 dma-names = "rx";
439 atmel,min-sample-rate-hz = <200000>;
440 atmel,max-sample-rate-hz = <20000000>;
441 atmel,startup-time-ms = <4>;
442 status = "disabled";
443 };
444
445 sdmmc0: mmc@e1204000 {
446 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
447 reg = <0xe1204000 0x4000>;
448 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
449 clocks = <&pmc PMC_TYPE_PERIPHERAL 80>, <&pmc PMC_TYPE_GCK 80>;
450 clock-names = "hclock", "multclk";
451 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
452 assigned-clocks = <&pmc PMC_TYPE_GCK 80>;
453 assigned-clock-rates = <200000000>;
454 microchip,sdcal-inverted;
455 status = "disabled";
456 };
457
458 sdmmc1: mmc@e1208000 {
459 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
460 reg = <0xe1208000 0x4000>;
461 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
462 clocks = <&pmc PMC_TYPE_PERIPHERAL 81>, <&pmc PMC_TYPE_GCK 81>;
463 clock-names = "hclock", "multclk";
464 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div. */
465 assigned-clocks = <&pmc PMC_TYPE_GCK 81>;
466 assigned-clock-rates = <200000000>;
467 microchip,sdcal-inverted;
468 status = "disabled";
469 };
470
471 sdmmc2: mmc@e120c000 {
472 compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
473 reg = <0xe120c000 0x4000>;
474 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
475 clocks = <&pmc PMC_TYPE_PERIPHERAL 82>, <&pmc PMC_TYPE_GCK 82>;
476 clock-names = "hclock", "multclk";
477 assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>; /* sys pll div */
478 assigned-clocks = <&pmc PMC_TYPE_GCK 82>;
479 assigned-clock-rates = <200000000>;
480 microchip,sdcal-inverted;
481 status = "disabled";
482 };
483
484 pwm: pwm@e1604000 {
485 compatible = "microchip,sama7g5-pwm", "atmel,sama5d2-pwm";
486 reg = <0xe1604000 0x4000>;
487 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
488 #pwm-cells = <3>;
489 clocks = <&pmc PMC_TYPE_PERIPHERAL 77>;
490 status = "disabled";
491 };
492
493 spdifrx: spdifrx@e1614000 {
494 #sound-dai-cells = <0>;
495 compatible = "microchip,sama7g5-spdifrx";
496 reg = <0xe1614000 0x4000>;
497 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
498 dmas = <&dma0 AT91_XDMAC_DT_PERID(49)>;
499 dma-names = "rx";
500 clocks = <&pmc PMC_TYPE_PERIPHERAL 84>, <&pmc PMC_TYPE_GCK 84>;
501 clock-names = "pclk", "gclk";
502 status = "disabled";
503 };
504
505 spdiftx: spdiftx@e1618000 {
506 #sound-dai-cells = <0>;
507 compatible = "microchip,sama7g5-spdiftx";
508 reg = <0xe1618000 0x4000>;
509 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
510 dmas = <&dma0 AT91_XDMAC_DT_PERID(50)>;
511 dma-names = "tx";
512 clocks = <&pmc PMC_TYPE_PERIPHERAL 85>, <&pmc PMC_TYPE_GCK 85>;
513 clock-names = "pclk", "gclk";
514 };
515
516 i2s0: i2s@e161c000 {
517 compatible = "microchip,sama7g5-i2smcc";
518 #sound-dai-cells = <0>;
519 reg = <0xe161c000 0x4000>;
520 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
521 dmas = <&dma0 AT91_XDMAC_DT_PERID(34)>, <&dma0 AT91_XDMAC_DT_PERID(33)>;
522 dma-names = "tx", "rx";
523 clocks = <&pmc PMC_TYPE_PERIPHERAL 57>, <&pmc PMC_TYPE_GCK 57>;
524 clock-names = "pclk", "gclk";
525 status = "disabled";
526 };
527
528 i2s1: i2s@e1620000 {
529 compatible = "microchip,sama7g5-i2smcc";
530 #sound-dai-cells = <0>;
531 reg = <0xe1620000 0x4000>;
532 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
533 dmas = <&dma0 AT91_XDMAC_DT_PERID(36)>, <&dma0 AT91_XDMAC_DT_PERID(35)>;
534 dma-names = "tx", "rx";
535 clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>;
536 clock-names = "pclk", "gclk";
537 status = "disabled";
538 };
539
540 eic: interrupt-controller@e1628000 {
541 compatible = "microchip,sama7g5-eic";
542 reg = <0xe1628000 0xec>;
543 interrupt-parent = <&gic>;
544 interrupt-controller;
545 #interrupt-cells = <2>;
546 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
547 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
548 clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
549 clock-names = "pclk";
550 status = "disabled";
551 };
552
553 pit64b0: timer@e1800000 {
554 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
555 reg = <0xe1800000 0x4000>;
556 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
557 clocks = <&pmc PMC_TYPE_PERIPHERAL 70>, <&pmc PMC_TYPE_GCK 70>;
558 clock-names = "pclk", "gclk";
559 };
560
561 pit64b1: timer@e1804000 {
562 compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
563 reg = <0xe1804000 0x4000>;
564 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
565 clocks = <&pmc PMC_TYPE_PERIPHERAL 71>, <&pmc PMC_TYPE_GCK 71>;
566 clock-names = "pclk", "gclk";
567 };
568
569 aes: crypto@e1810000 {
570 compatible = "atmel,at91sam9g46-aes";
571 reg = <0xe1810000 0x100>;
572 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
573 clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
574 clock-names = "aes_clk";
575 dmas = <&dma0 AT91_XDMAC_DT_PERID(1)>,
576 <&dma0 AT91_XDMAC_DT_PERID(2)>;
577 dma-names = "tx", "rx";
578 };
579
580 sha: crypto@e1814000 {
581 compatible = "atmel,at91sam9g46-sha";
582 reg = <0xe1814000 0x100>;
583 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
584 clocks = <&pmc PMC_TYPE_PERIPHERAL 83>;
585 clock-names = "sha_clk";
586 dmas = <&dma0 AT91_XDMAC_DT_PERID(48)>;
587 dma-names = "tx";
588 };
589
590 flx0: flexcom@e1818000 {
591 compatible = "atmel,sama5d2-flexcom";
592 reg = <0xe1818000 0x200>;
593 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
594 #address-cells = <1>;
595 #size-cells = <1>;
596 ranges = <0x0 0xe1818000 0x800>;
597 status = "disabled";
598
599 uart0: serial@200 {
Eugen Hristev626879b2020-03-10 11:56:03 +0200600 compatible = "atmel,at91sam9260-usart";
Eugen Hristev746b7382022-03-07 16:29:42 +0200601 reg = <0x200 0x200>;
602 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
603 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
604 clock-names = "usart";
605 dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>,
606 <&dma1 AT91_XDMAC_DT_PERID(5)>;
607 dma-names = "tx", "rx";
608 atmel,use-dma-rx;
609 atmel,use-dma-tx;
610 status = "disabled";
611 };
612 };
613
614 flx1: flexcom@e181c000 {
615 compatible = "atmel,sama5d2-flexcom";
616 reg = <0xe181c000 0x200>;
617 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
618 #address-cells = <1>;
619 #size-cells = <1>;
620 ranges = <0x0 0xe181c000 0x800>;
621 status = "disabled";
622
623 i2c1: i2c@600 {
624 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
625 reg = <0x600 0x200>;
626 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
627 #address-cells = <1>;
628 #size-cells = <0>;
629 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
630 atmel,fifo-size = <32>;
631 dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
632 <&dma0 AT91_XDMAC_DT_PERID(8)>;
633 dma-names = "rx", "tx";
634 status = "disabled";
635 };
636 };
637
638 flx3: flexcom@e1824000 {
639 compatible = "atmel,sama5d2-flexcom";
640 reg = <0xe1824000 0x200>;
641 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
642 #address-cells = <1>;
643 #size-cells = <1>;
644 ranges = <0x0 0xe1824000 0x800>;
645 status = "disabled";
646
647 uart3: serial@200 {
648 compatible = "atmel,at91sam9260-usart";
649 reg = <0x200 0x200>;
650 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
Claudiu Beznea394f5202020-06-02 15:26:12 +0300651 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
Eugen Hristev626879b2020-03-10 11:56:03 +0200652 clock-names = "usart";
Eugen Hristev746b7382022-03-07 16:29:42 +0200653 dmas = <&dma1 AT91_XDMAC_DT_PERID(12)>,
654 <&dma1 AT91_XDMAC_DT_PERID(11)>;
655 dma-names = "tx", "rx";
656 atmel,use-dma-rx;
657 atmel,use-dma-tx;
Eugen Hristev626879b2020-03-10 11:56:03 +0200658 status = "disabled";
659 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200660 };
Claudiu Bezneae95af872020-06-09 13:53:00 +0300661
Eugen Hristev746b7382022-03-07 16:29:42 +0200662 trng: rng@e2010000 {
663 compatible = "microchip,sama7g5-trng", "atmel,at91sam9g45-trng";
664 reg = <0xe2010000 0x100>;
665 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
666 clocks = <&pmc PMC_TYPE_PERIPHERAL 97>;
667 status = "disabled";
668 };
669
670 tdes: crypto@e2014000 {
671 compatible = "atmel,at91sam9g46-tdes";
672 reg = <0xe2014000 0x100>;
673 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
674 clocks = <&pmc PMC_TYPE_PERIPHERAL 96>;
675 clock-names = "tdes_clk";
676 dmas = <&dma0 AT91_XDMAC_DT_PERID(54)>,
677 <&dma0 AT91_XDMAC_DT_PERID(53)>;
678 dma-names = "tx", "rx";
679 };
680
681 flx4: flexcom@e2018000 {
682 compatible = "atmel,sama5d2-flexcom";
683 reg = <0xe2018000 0x200>;
684 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
685 #address-cells = <1>;
686 #size-cells = <1>;
687 ranges = <0x0 0xe2018000 0x800>;
688 status = "disabled";
689
690 uart4: serial@200 {
691 compatible = "atmel,at91sam9260-usart";
692 reg = <0x200 0x200>;
693 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
694 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
695 clock-names = "usart";
696 dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>,
697 <&dma1 AT91_XDMAC_DT_PERID(13)>;
698 dma-names = "tx", "rx";
699 atmel,use-dma-rx;
700 atmel,use-dma-tx;
701 atmel,fifo-size = <16>;
Claudiu Bezneae95af872020-06-09 13:53:00 +0300702 status = "disabled";
703 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200704 };
Claudiu Beznea3e5853e2020-06-09 13:53:45 +0300705
Eugen Hristev746b7382022-03-07 16:29:42 +0200706 flx7: flexcom@e2024000 {
707 compatible = "atmel,sama5d2-flexcom";
708 reg = <0xe2024000 0x200>;
709 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
710 #address-cells = <1>;
711 #size-cells = <1>;
712 ranges = <0x0 0xe2024000 0x800>;
713 status = "disabled";
714
715 uart7: serial@200 {
716 compatible = "atmel,at91sam9260-usart";
717 reg = <0x200 0x200>;
718 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
719 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
720 clock-names = "usart";
721 dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
722 <&dma1 AT91_XDMAC_DT_PERID(19)>;
723 dma-names = "tx", "rx";
724 atmel,use-dma-rx;
725 atmel,use-dma-tx;
726 atmel,fifo-size = <16>;
Claudiu Beznea3e5853e2020-06-09 13:53:45 +0300727 status = "disabled";
728 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200729 };
Eugen Hristev4727f952022-01-04 18:21:54 +0200730
Eugen Hristev746b7382022-03-07 16:29:42 +0200731 gmac0: ethernet@e2800000 {
732 compatible = "cdns,sama7g5-gem";
733 reg = <0xe2800000 0x1000>;
734 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH
735 GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH
736 GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH
737 GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH
738 GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH
739 GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
740 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_GCK 51>, <&pmc PMC_TYPE_GCK 53>;
741 clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
742 assigned-clocks = <&pmc PMC_TYPE_GCK 51>;
743 assigned-clock-parents = <&pmc PMC_TYPE_CORE 21>; /* eth pll div. */
744 assigned-clock-rates = <125000000>;
745 status = "disabled";
746 };
Eugen Hristev4727f952022-01-04 18:21:54 +0200747
Eugen Hristev746b7382022-03-07 16:29:42 +0200748 gmac1: ethernet@e2804000 {
749 compatible = "cdns,sama7g5-emac";
750 reg = <0xe2804000 0x1000>;
751 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH
752 GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
753 clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 52>;
754 clock-names = "pclk", "hclk";
755 status = "disabled";
756 };
757
758 dma0: dma-controller@e2808000 {
759 compatible = "microchip,sama7g5-dma";
760 reg = <0xe2808000 0x1000>;
761 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
762 #dma-cells = <1>;
763 clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
764 clock-names = "dma_clk";
765 status = "disabled";
766 };
767
768 dma1: dma-controller@e280c000 {
769 compatible = "microchip,sama7g5-dma";
770 reg = <0xe280c000 0x1000>;
771 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
772 #dma-cells = <1>;
773 clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
774 clock-names = "dma_clk";
775 status = "disabled";
776 };
777
778 /* Place dma2 here despite it's address */
779 dma2: dma-controller@e1200000 {
780 compatible = "microchip,sama7g5-dma";
781 reg = <0xe1200000 0x1000>;
782 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
783 #dma-cells = <1>;
784 clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
785 clock-names = "dma_clk";
786 dma-requests = <0>;
787 status = "disabled";
788 };
789
790 tcb0: timer@e2814000 {
791 compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
792 #address-cells = <1>;
793 #size-cells = <0>;
794 reg = <0xe2814000 0x100>;
795 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
796 clocks = <&pmc PMC_TYPE_PERIPHERAL 88>, <&pmc PMC_TYPE_PERIPHERAL 89>, <&pmc PMC_TYPE_PERIPHERAL 90>, <&clk32k 1>;
797 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
798 };
799
800 flx8: flexcom@e2818000 {
801 compatible = "atmel,sama5d2-flexcom";
802 reg = <0xe2818000 0x200>;
803 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
804 #address-cells = <1>;
805 #size-cells = <1>;
806 ranges = <0x0 0xe2818000 0x800>;
807 status = "disabled";
808
809 i2c8: i2c@600 {
810 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
811 reg = <0x600 0x200>;
812 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
Eugen Hristev4727f952022-01-04 18:21:54 +0200813 #address-cells = <1>;
Eugen Hristev746b7382022-03-07 16:29:42 +0200814 #size-cells = <0>;
815 clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
816 atmel,fifo-size = <32>;
817 dmas = <&dma0 AT91_XDMAC_DT_PERID(21)>,
818 <&dma0 AT91_XDMAC_DT_PERID(22)>;
819 dma-names = "rx", "tx";
Eugen Hristev4727f952022-01-04 18:21:54 +0200820 status = "disabled";
Eugen Hristev4727f952022-01-04 18:21:54 +0200821 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200822 };
Eugen Hristev4727f952022-01-04 18:21:54 +0200823
Eugen Hristev746b7382022-03-07 16:29:42 +0200824 flx9: flexcom@e281c000 {
825 compatible = "atmel,sama5d2-flexcom";
826 reg = <0xe281c000 0x200>;
827 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
828 #address-cells = <1>;
829 #size-cells = <1>;
830 ranges = <0x0 0xe281c000 0x800>;
831 status = "disabled";
832
833 i2c9: i2c@600 {
834 compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
835 reg = <0x600 0x200>;
836 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
837 #address-cells = <1>;
838 #size-cells = <0>;
839 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
840 atmel,fifo-size = <32>;
841 dmas = <&dma0 AT91_XDMAC_DT_PERID(23)>,
842 <&dma0 AT91_XDMAC_DT_PERID(24)>;
843 dma-names = "rx", "tx";
844 status = "disabled";
Eugen Hristev4727f952022-01-04 18:21:54 +0200845 };
Eugen Hristev626879b2020-03-10 11:56:03 +0200846 };
Eugen Hristev746b7382022-03-07 16:29:42 +0200847
848 flx11: flexcom@e2824000 {
849 compatible = "atmel,sama5d2-flexcom";
850 reg = <0xe2824000 0x200>;
851 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
852 #address-cells = <1>;
853 #size-cells = <1>;
854 ranges = <0x0 0xe2824000 0x800>;
855 status = "disabled";
856
857 spi11: spi@400 {
858 compatible = "atmel,at91rm9200-spi";
859 reg = <0x400 0x200>;
860 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
861 clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
862 clock-names = "spi_clk";
863 #address-cells = <1>;
864 #size-cells = <0>;
865 atmel,fifo-size = <32>;
866 dmas = <&dma0 AT91_XDMAC_DT_PERID(27)>,
867 <&dma0 AT91_XDMAC_DT_PERID(28)>;
868 dma-names = "rx", "tx";
869 status = "disabled";
870 };
871 };
872
873 uddrc: uddrc@e3800000 {
874 compatible = "microchip,sama7g5-uddrc";
875 reg = <0xe3800000 0x4000>;
876 };
877
878 ddr3phy: ddr3phy@e3804000 {
879 compatible = "microchip,sama7g5-ddr3phy";
880 reg = <0xe3804000 0x1000>;
881 };
882
883 gic: interrupt-controller@e8c11000 {
884 compatible = "arm,cortex-a7-gic";
885 #interrupt-cells = <3>;
886 #address-cells = <0>;
887 interrupt-controller;
888 interrupt-parent;
889 reg = <0xe8c11000 0x1000>,
890 <0xe8c12000 0x2000>;
891 };
Eugen Hristev626879b2020-03-10 11:56:03 +0200892 };
893};