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