xref: /linux/arch/arm/boot/dts/microchip/sam9x7.dtsi (revision b615879dbfea6cf1236acbc3f2fb25ae84e07071)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * sam9x7.dtsi - Device Tree Include file for Microchip SAM9X7 SoC family
4 *
5 * Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries
6 *
7 * Author: Varshini Rajendran <varshini.rajendran@microchip.com>
8 */
9
10#include <dt-bindings/clock/at91.h>
11#include <dt-bindings/dma/at91.h>
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/mfd/at91-usart.h>
16#include <dt-bindings/mfd/atmel-flexcom.h>
17#include <dt-bindings/pinctrl/at91.h>
18
19/ {
20	model = "Microchip SAM9X7 SoC";
21	compatible = "microchip,sam9x7";
22	#address-cells = <1>;
23	#size-cells = <1>;
24	interrupt-parent = <&aic>;
25
26	aliases {
27		serial0 = &dbgu;
28		gpio0 = &pioA;
29		gpio1 = &pioB;
30		gpio2 = &pioC;
31		gpio3 = &pioD;
32	};
33
34	cpus {
35		#address-cells = <1>;
36		#size-cells = <0>;
37
38		cpu@0 {
39			compatible = "arm,arm926ej-s";
40			reg = <0>;
41			device_type = "cpu";
42		};
43	};
44
45	clocks {
46		slow_xtal: clock-slowxtal {
47			compatible = "fixed-clock";
48			clock-output-names = "slow_xtal";
49			#clock-cells = <0>;
50		};
51
52		main_xtal: clock-mainxtal {
53			compatible = "fixed-clock";
54			clock-output-names = "main_xtal";
55			#clock-cells = <0>;
56		};
57	};
58
59	sram: sram@300000 {
60		compatible = "mmio-sram";
61		reg = <0x300000 0x10000>;
62		ranges = <0 0x300000 0x10000>;
63		#address-cells = <1>;
64		#size-cells = <1>;
65	};
66
67	ahb {
68		compatible = "simple-bus";
69		ranges;
70		#address-cells = <1>;
71		#size-cells = <1>;
72
73		sdmmc0: mmc@80000000 {
74			compatible = "microchip,sam9x7-sdhci", "microchip,sam9x60-sdhci";
75			reg = <0x80000000 0x300>;
76			interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
77			clocks = <&pmc PMC_TYPE_PERIPHERAL 12>, <&pmc PMC_TYPE_GCK 12>;
78			clock-names = "hclock", "multclk";
79			assigned-clocks = <&pmc PMC_TYPE_GCK 12>;
80			assigned-clock-rates = <100000000>;
81			status = "disabled";
82		};
83
84		sdmmc1: mmc@90000000 {
85			compatible = "microchip,sam9x7-sdhci", "microchip,sam9x60-sdhci";
86			reg = <0x90000000 0x300>;
87			interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
88			clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_GCK 26>;
89			clock-names = "hclock", "multclk";
90			assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
91			assigned-clock-rates = <100000000>;
92			status = "disabled";
93		};
94	};
95
96	apb {
97		compatible = "simple-bus";
98		ranges;
99		#address-cells = <1>;
100		#size-cells = <1>;
101
102		flx4: flexcom@f0000000 {
103			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
104			reg = <0xf0000000 0x200>;
105			ranges = <0x0 0xf0000000 0x800>;
106			#address-cells = <1>;
107			#size-cells = <1>;
108			clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
109			status = "disabled";
110
111			uart4: serial@200 {
112				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
113				reg = <0x200 0x200>;
114				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
115				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
116				clock-names = "usart";
117				dmas = <&dma0
118					(AT91_XDMAC_DT_MEM_IF(0) |
119					 AT91_XDMAC_DT_PER_IF(1) |
120					 AT91_XDMAC_DT_PERID(8))>,
121				       <&dma0
122					(AT91_XDMAC_DT_MEM_IF(0) |
123					 AT91_XDMAC_DT_PER_IF(1) |
124					 AT91_XDMAC_DT_PERID(9))>;
125				dma-names = "tx", "rx";
126				atmel,use-dma-rx;
127				atmel,use-dma-tx;
128				atmel,fifo-size = <16>;
129				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
130				status = "disabled";
131			};
132
133			spi4: spi@400 {
134				compatible = "microchip,sam9x7-spi", "atmel,at91rm9200-spi";
135				reg = <0x400 0x200>;
136				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
137				#address-cells = <1>;
138				#size-cells = <0>;
139				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
140				clock-names = "spi_clk";
141				dmas = <&dma0
142					(AT91_XDMAC_DT_MEM_IF(0) |
143					 AT91_XDMAC_DT_PER_IF(1) |
144					 AT91_XDMAC_DT_PERID(8))>,
145				       <&dma0
146					(AT91_XDMAC_DT_MEM_IF(0) |
147					 AT91_XDMAC_DT_PER_IF(1) |
148					 AT91_XDMAC_DT_PERID(9))>;
149				dma-names = "tx", "rx";
150				atmel,fifo-size = <16>;
151				status = "disabled";
152			};
153
154			i2c4: i2c@600 {
155				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
156				reg = <0x600 0x200>;
157				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
158				#address-cells = <1>;
159				#size-cells = <0>;
160				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
161				dmas = <&dma0
162					(AT91_XDMAC_DT_MEM_IF(0) |
163					 AT91_XDMAC_DT_PER_IF(1) |
164					 AT91_XDMAC_DT_PERID(8))>,
165				       <&dma0
166					(AT91_XDMAC_DT_MEM_IF(0) |
167					 AT91_XDMAC_DT_PER_IF(1) |
168					 AT91_XDMAC_DT_PERID(9))>;
169				dma-names = "tx", "rx";
170				atmel,fifo-size = <16>;
171				status = "disabled";
172			};
173		};
174
175		flx5: flexcom@f0004000 {
176			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
177			reg = <0xf0004000 0x200>;
178			ranges = <0x0 0xf0004000 0x800>;
179			#address-cells = <1>;
180			#size-cells = <1>;
181			clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
182			status = "disabled";
183
184			uart5: serial@200 {
185				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
186				reg = <0x200 0x200>;
187				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
188				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
189				clock-names = "usart";
190				dmas = <&dma0
191					(AT91_XDMAC_DT_MEM_IF(0) |
192					 AT91_XDMAC_DT_PER_IF(1) |
193					 AT91_XDMAC_DT_PERID(10))>,
194				       <&dma0
195					(AT91_XDMAC_DT_MEM_IF(0) |
196					 AT91_XDMAC_DT_PER_IF(1) |
197					 AT91_XDMAC_DT_PERID(11))>;
198				dma-names = "tx", "rx";
199				atmel,use-dma-rx;
200				atmel,use-dma-tx;
201				atmel,fifo-size = <16>;
202				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
203				status = "disabled";
204			};
205
206			spi5: spi@400 {
207				compatible = "microchip,sam9x7-spi", "atmel,at91rm9200-spi";
208				reg = <0x400 0x200>;
209				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
210				#address-cells = <1>;
211				#size-cells = <0>;
212				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
213				clock-names = "spi_clk";
214				dmas = <&dma0
215					(AT91_XDMAC_DT_MEM_IF(0) |
216					 AT91_XDMAC_DT_PER_IF(1) |
217					 AT91_XDMAC_DT_PERID(10))>,
218				       <&dma0
219					(AT91_XDMAC_DT_MEM_IF(0) |
220					 AT91_XDMAC_DT_PER_IF(1) |
221					 AT91_XDMAC_DT_PERID(11))>;
222				dma-names = "tx", "rx";
223				atmel,fifo-size = <16>;
224				status = "disabled";
225			};
226
227			i2c5: i2c@600 {
228				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
229				reg = <0x600 0x200>;
230				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
231				#address-cells = <1>;
232				#size-cells = <0>;
233				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
234				dmas = <&dma0
235					(AT91_XDMAC_DT_MEM_IF(0) |
236					 AT91_XDMAC_DT_PER_IF(1) |
237					 AT91_XDMAC_DT_PERID(10))>,
238				       <&dma0
239					(AT91_XDMAC_DT_MEM_IF(0) |
240					 AT91_XDMAC_DT_PER_IF(1) |
241					 AT91_XDMAC_DT_PERID(11))>;
242				dma-names = "tx", "rx";
243				atmel,fifo-size = <16>;
244				status = "disabled";
245			};
246		};
247
248		dma0: dma-controller@f0008000 {
249			compatible = "microchip,sam9x7-dma", "atmel,sama5d4-dma";
250			reg = <0xf0008000 0x1000>;
251			interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
252			#dma-cells = <1>;
253			clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
254			clock-names = "dma_clk";
255			status = "disabled";
256		};
257
258		ssc: ssc@f0010000 {
259			compatible = "microchip,sam9x7-ssc", "atmel,at91sam9g45-ssc";
260			reg = <0xf0010000 0x4000>;
261			interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
262			clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
263			clock-names = "pclk";
264			dmas = <&dma0
265				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
266				 AT91_XDMAC_DT_PERID(38))>,
267			       <&dma0
268				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
269				 AT91_XDMAC_DT_PERID(39))>;
270			dma-names = "tx", "rx";
271			status = "disabled";
272		};
273
274		qspi: spi@f0014000 {
275			compatible = "microchip,sam9x7-ospi";
276			#address-cells = <1>;
277			#size-cells = <0>;
278			reg = <0xf0014000 0x100>, <0x60000000 0x20000000>;
279			reg-names = "qspi_base", "qspi_mmap";
280			interrupts = <35 IRQ_TYPE_LEVEL_HIGH 7>;
281			dmas = <&dma0
282				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
283				AT91_XDMAC_DT_PERID(26))>,
284				<&dma0
285				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
286				AT91_XDMAC_DT_PERID(27))>;
287			dma-names = "tx", "rx";
288			clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_GCK 35>;
289			clock-names = "pclk", "gclk";
290			assigned-clocks = <&pmc PMC_TYPE_GCK 35>;
291			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_PLLADIV2>;
292			status = "disabled";
293		};
294
295		i2s: i2s@f001c000 {
296			compatible = "microchip,sam9x7-i2smcc", "microchip,sam9x60-i2smcc";
297			reg = <0xf001c000 0x100>;
298			interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
299			clocks = <&pmc PMC_TYPE_PERIPHERAL 34>, <&pmc PMC_TYPE_GCK 34>;
300			clock-names = "pclk", "gclk";
301			dmas = <&dma0
302				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
303				 AT91_XDMAC_DT_PERID(36))>,
304			       <&dma0
305				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
306				 AT91_XDMAC_DT_PERID(37))>;
307			dma-names = "tx", "rx";
308			status = "disabled";
309		};
310
311		flx11: flexcom@f0020000 {
312			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
313			reg = <0xf0020000 0x200>;
314			ranges = <0x0 0xf0020000 0x800>;
315			#address-cells = <1>;
316			#size-cells = <1>;
317			clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
318			status = "disabled";
319
320			uart11: serial@200 {
321				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
322				reg = <0x200 0x200>;
323				interrupts = <32 IRQ_TYPE_LEVEL_HIGH 7>;
324				clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
325				clock-names = "usart";
326				dmas = <&dma0
327					(AT91_XDMAC_DT_MEM_IF(0) |
328					 AT91_XDMAC_DT_PER_IF(1) |
329					 AT91_XDMAC_DT_PERID(22))>,
330				       <&dma0
331					(AT91_XDMAC_DT_MEM_IF(0) |
332					 AT91_XDMAC_DT_PER_IF(1) |
333					 AT91_XDMAC_DT_PERID(23))>;
334				dma-names = "tx", "rx";
335				atmel,use-dma-rx;
336				atmel,use-dma-tx;
337				atmel,fifo-size = <16>;
338				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
339				status = "disabled";
340			};
341
342			i2c11: i2c@600 {
343				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
344				reg = <0x600 0x200>;
345				interrupts = <32 IRQ_TYPE_LEVEL_HIGH 7>;
346				#address-cells = <1>;
347				#size-cells = <0>;
348				clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
349				dmas = <&dma0
350					(AT91_XDMAC_DT_MEM_IF(0) |
351					 AT91_XDMAC_DT_PER_IF(1) |
352					 AT91_XDMAC_DT_PERID(22))>,
353				       <&dma0
354					(AT91_XDMAC_DT_MEM_IF(0) |
355					 AT91_XDMAC_DT_PER_IF(1) |
356					 AT91_XDMAC_DT_PERID(23))>;
357				dma-names = "tx", "rx";
358				atmel,fifo-size = <16>;
359				status = "disabled";
360			};
361		};
362
363		flx12: flexcom@f0024000 {
364			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
365			reg = <0xf0024000 0x200>;
366			ranges = <0x0 0xf0024000 0x800>;
367			#address-cells = <1>;
368			#size-cells = <1>;
369			clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
370			status = "disabled";
371
372			uart12: serial@200 {
373				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
374				reg = <0x200 0x200>;
375				interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
376				clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
377				clock-names = "usart";
378				dmas = <&dma0
379					(AT91_XDMAC_DT_MEM_IF(0) |
380					 AT91_XDMAC_DT_PER_IF(1) |
381					 AT91_XDMAC_DT_PERID(24))>,
382				       <&dma0
383					(AT91_XDMAC_DT_MEM_IF(0) |
384					 AT91_XDMAC_DT_PER_IF(1) |
385					 AT91_XDMAC_DT_PERID(25))>;
386				dma-names = "tx", "rx";
387				atmel,use-dma-rx;
388				atmel,use-dma-tx;
389				atmel,fifo-size = <16>;
390				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
391				status = "disabled";
392			};
393
394			i2c12: i2c@600 {
395				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
396				reg = <0x600 0x200>;
397				interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
398				#address-cells = <1>;
399				#size-cells = <0>;
400				clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
401				dmas = <&dma0
402					(AT91_XDMAC_DT_MEM_IF(0) |
403					 AT91_XDMAC_DT_PER_IF(1) |
404					 AT91_XDMAC_DT_PERID(24))>,
405				       <&dma0
406					(AT91_XDMAC_DT_MEM_IF(0) |
407					 AT91_XDMAC_DT_PER_IF(1) |
408					 AT91_XDMAC_DT_PERID(25))>;
409				dma-names = "tx", "rx";
410				atmel,fifo-size = <16>;
411				status = "disabled";
412			};
413		};
414
415		pit64b0: timer@f0028000 {
416			compatible = "microchip,sam9x7-pit64b", "microchip,sam9x60-pit64b";
417			reg = <0xf0028000 0x100>;
418			interrupts = <37 IRQ_TYPE_LEVEL_HIGH 7>;
419			clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
420			clock-names = "pclk", "gclk";
421		};
422
423		sha: crypto@f002c000 {
424			compatible = "microchip,sam9x7-sha", "atmel,at91sam9g46-sha";
425			reg = <0xf002c000 0x100>;
426			interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>;
427			clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
428			clock-names = "sha_clk";
429			dmas = <&dma0
430				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
431				 AT91_XDMAC_DT_PERID(34))>;
432			dma-names = "tx";
433		};
434
435		trng: rng@f0030000 {
436			compatible = "microchip,sam9x7-trng", "microchip,sam9x60-trng";
437			reg = <0xf0030000 0x100>;
438			interrupts = <38 IRQ_TYPE_LEVEL_HIGH 0>;
439			clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
440			status = "disabled";
441		};
442
443		aes: crypto@f0034000 {
444			compatible = "microchip,sam9x7-aes", "atmel,at91sam9g46-aes";
445			reg = <0xf0034000 0x100>;
446			interrupts = <39 IRQ_TYPE_LEVEL_HIGH 0>;
447			clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
448			clock-names = "aes_clk";
449			dmas = <&dma0
450				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
451				 AT91_XDMAC_DT_PERID(32))>,
452			       <&dma0
453				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
454				 AT91_XDMAC_DT_PERID(33))>;
455			dma-names = "tx", "rx";
456		};
457
458		tdes: crypto@f0038000 {
459			compatible = "microchip,sam9x7-tdes", "atmel,at91sam9g46-tdes";
460			reg = <0xf0038000 0x100>;
461			interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>;
462			clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
463			clock-names = "tdes_clk";
464			dmas = <&dma0
465				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
466				 AT91_XDMAC_DT_PERID(31))>,
467			       <&dma0
468				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
469				 AT91_XDMAC_DT_PERID(30))>;
470			dma-names = "tx", "rx";
471		};
472
473		classd: sound@f003c000 {
474			compatible = "microchip,sam9x7-classd", "atmel,sama5d2-classd";
475			reg = <0xf003c000 0x100>;
476			interrupts = <42 IRQ_TYPE_LEVEL_HIGH 7>;
477			clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_GCK 42>;
478			clock-names = "pclk", "gclk";
479			dmas = <&dma0
480				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
481				 AT91_XDMAC_DT_PERID(35))>;
482			dma-names = "tx";
483			status = "disabled";
484		};
485
486		pit64b1: timer@f0040000 {
487			compatible = "microchip,sam9x7-pit64b", "microchip,sam9x60-pit64b";
488			reg = <0xf0040000 0x100>;
489			interrupts = <58 IRQ_TYPE_LEVEL_HIGH 7>;
490			clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>;
491			clock-names = "pclk", "gclk";
492		};
493
494		can0: can@f8000000 {
495			compatible = "bosch,m_can";
496			reg = <0xf8000000 0x100>, <0x300000 0x7800>;
497			reg-names = "m_can", "message_ram";
498			interrupts = <29 IRQ_TYPE_LEVEL_HIGH 0>,
499				     <68 IRQ_TYPE_LEVEL_HIGH 0>;
500			interrupt-names = "int0", "int1";
501			clocks = <&pmc PMC_TYPE_PERIPHERAL 29>, <&pmc PMC_TYPE_GCK 29>;
502			clock-names = "hclk", "cclk";
503			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_GCK 29>;
504			assigned-clock-rates = <480000000>, <40000000>;
505			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
506			bosch,mram-cfg = <0x3400 0 0 64 0 0 32 32>;
507			status = "disabled";
508		};
509
510		can1: can@f8004000 {
511			compatible = "bosch,m_can";
512			reg = <0xf8004000 0x100>, <0x300000 0xbc00>;
513			reg-names = "m_can", "message_ram";
514			interrupts = <30 IRQ_TYPE_LEVEL_HIGH 0>,
515				     <69 IRQ_TYPE_LEVEL_HIGH 0>;
516			interrupt-names = "int0", "int1";
517			clocks = <&pmc PMC_TYPE_PERIPHERAL 30>, <&pmc PMC_TYPE_GCK 30>;
518			clock-names = "hclk", "cclk";
519			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_GCK 30>;
520			assigned-clock-rates = <480000000>, <40000000>;
521			assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
522			bosch,mram-cfg = <0x7800 0 0 64 0 0 32 32>;
523			status = "disabled";
524		};
525
526		tcb: timer@f8008000 {
527			compatible = "microchip,sam9x7-tcb","atmel,sama5d2-tcb", "simple-mfd", "syscon";
528			reg = <0xf8008000 0x100>;
529			#address-cells = <1>;
530			#size-cells = <0>;
531			interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
532			clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_GCK 17>, <&clk32k 0>;
533			clock-names = "t0_clk", "gclk", "slow_clk";
534		};
535
536		flx6: flexcom@f8010000 {
537			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
538			reg = <0xf8010000 0x200>;
539			ranges = <0x0 0xf8010000 0x800>;
540			#address-cells = <1>;
541			#size-cells = <1>;
542			clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
543			status = "disabled";
544
545			uart6: serial@200 {
546				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
547				reg = <0x200 0x200>;
548				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
549				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
550				clock-names = "usart";
551				dmas = <&dma0
552					(AT91_XDMAC_DT_MEM_IF(0) |
553					 AT91_XDMAC_DT_PER_IF(1) |
554					 AT91_XDMAC_DT_PERID(12))>,
555				       <&dma0
556					(AT91_XDMAC_DT_MEM_IF(0) |
557					 AT91_XDMAC_DT_PER_IF(1) |
558					 AT91_XDMAC_DT_PERID(13))>;
559				dma-names = "tx", "rx";
560				atmel,use-dma-rx;
561				atmel,use-dma-tx;
562				atmel,fifo-size = <16>;
563				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
564				status = "disabled";
565			};
566
567			i2c6: i2c@600 {
568				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
569				reg = <0x600 0x200>;
570				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
571				#address-cells = <1>;
572				#size-cells = <0>;
573				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
574				dmas = <&dma0
575					(AT91_XDMAC_DT_MEM_IF(0) |
576					 AT91_XDMAC_DT_PER_IF(1) |
577					 AT91_XDMAC_DT_PERID(12))>,
578				       <&dma0
579					(AT91_XDMAC_DT_MEM_IF(0) |
580					 AT91_XDMAC_DT_PER_IF(1) |
581					 AT91_XDMAC_DT_PERID(13))>;
582				dma-names = "tx", "rx";
583				atmel,fifo-size = <16>;
584				status = "disabled";
585			};
586		};
587
588		flx7: flexcom@f8014000 {
589			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
590			reg = <0xf8014000 0x200>;
591			ranges = <0x0 0xf8014000 0x800>;
592			#address-cells = <1>;
593			#size-cells = <1>;
594			clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
595			status = "disabled";
596
597			uart7: serial@200 {
598				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
599				reg = <0x200 0x200>;
600				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 7>;
601				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
602				clock-names = "usart";
603				dmas = <&dma0
604					(AT91_XDMAC_DT_MEM_IF(0) |
605					 AT91_XDMAC_DT_PER_IF(1) |
606					 AT91_XDMAC_DT_PERID(14))>,
607				       <&dma0
608					(AT91_XDMAC_DT_MEM_IF(0) |
609					 AT91_XDMAC_DT_PER_IF(1) |
610					 AT91_XDMAC_DT_PERID(15))>;
611				dma-names = "tx", "rx";
612				atmel,use-dma-rx;
613				atmel,use-dma-tx;
614				atmel,fifo-size = <16>;
615				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
616				status = "disabled";
617			};
618
619			i2c7: i2c@600 {
620				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
621				reg = <0x600 0x200>;
622				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 7>;
623				#address-cells = <1>;
624				#size-cells = <0>;
625				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
626				dmas = <&dma0
627					(AT91_XDMAC_DT_MEM_IF(0) |
628					 AT91_XDMAC_DT_PER_IF(1) |
629					 AT91_XDMAC_DT_PERID(14))>,
630				       <&dma0
631					(AT91_XDMAC_DT_MEM_IF(0) |
632					 AT91_XDMAC_DT_PER_IF(1) |
633					 AT91_XDMAC_DT_PERID(15))>;
634				dma-names = "tx", "rx";
635				atmel,fifo-size = <16>;
636				status = "disabled";
637			};
638		};
639
640		flx8: flexcom@f8018000 {
641			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
642			reg = <0xf8018000 0x200>;
643			ranges = <0x0 0xf8018000 0x800>;
644			#address-cells = <1>;
645			#size-cells = <1>;
646			clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
647			status = "disabled";
648
649			uart8: serial@200 {
650				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
651				reg = <0x200 0x200>;
652				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 7>;
653				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
654				clock-names = "usart";
655				dmas = <&dma0
656					(AT91_XDMAC_DT_MEM_IF(0) |
657					 AT91_XDMAC_DT_PER_IF(1) |
658					 AT91_XDMAC_DT_PERID(16))>,
659				       <&dma0
660					(AT91_XDMAC_DT_MEM_IF(0) |
661					 AT91_XDMAC_DT_PER_IF(1) |
662					 AT91_XDMAC_DT_PERID(17))>;
663				dma-names = "tx", "rx";
664				atmel,use-dma-rx;
665				atmel,use-dma-tx;
666				atmel,fifo-size = <16>;
667				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
668				status = "disabled";
669			};
670
671			i2c8: i2c@600 {
672				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
673				reg = <0x600 0x200>;
674				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 7>;
675				#address-cells = <1>;
676				#size-cells = <0>;
677				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
678				dmas = <&dma0
679					(AT91_XDMAC_DT_MEM_IF(0) |
680					 AT91_XDMAC_DT_PER_IF(1) |
681					 AT91_XDMAC_DT_PERID(16))>,
682				       <&dma0
683					(AT91_XDMAC_DT_MEM_IF(0) |
684					 AT91_XDMAC_DT_PER_IF(1) |
685					 AT91_XDMAC_DT_PERID(17))>;
686				dma-names = "tx", "rx";
687				atmel,fifo-size = <16>;
688				status = "disabled";
689			};
690		};
691
692		flx0: flexcom@f801c000 {
693			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
694			reg = <0xf801c000 0x200>;
695			ranges = <0x0 0xf801c000 0x800>;
696			#address-cells = <1>;
697			#size-cells = <1>;
698			clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
699			status = "disabled";
700
701			uart0: serial@200 {
702				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
703				reg = <0x200 0x200>;
704				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
705				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
706				clock-names = "usart";
707				dmas = <&dma0
708					(AT91_XDMAC_DT_MEM_IF(0) |
709					 AT91_XDMAC_DT_PER_IF(1) |
710					 AT91_XDMAC_DT_PERID(0))>,
711				       <&dma0
712					(AT91_XDMAC_DT_MEM_IF(0) |
713					 AT91_XDMAC_DT_PER_IF(1) |
714					 AT91_XDMAC_DT_PERID(1))>;
715				dma-names = "tx", "rx";
716				atmel,use-dma-rx;
717				atmel,use-dma-tx;
718				atmel,fifo-size = <16>;
719				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
720				status = "disabled";
721			};
722
723			spi0: spi@400 {
724				compatible = "microchip,sam9x7-spi", "atmel,at91rm9200-spi";
725				reg = <0x400 0x200>;
726				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
727				#address-cells = <1>;
728				#size-cells = <0>;
729				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
730				clock-names = "spi_clk";
731				dmas = <&dma0
732					(AT91_XDMAC_DT_MEM_IF(0) |
733					 AT91_XDMAC_DT_PER_IF(1) |
734					 AT91_XDMAC_DT_PERID(0))>,
735				       <&dma0
736					(AT91_XDMAC_DT_MEM_IF(0) |
737					 AT91_XDMAC_DT_PER_IF(1) |
738					 AT91_XDMAC_DT_PERID(1))>;
739				dma-names = "tx", "rx";
740				atmel,fifo-size = <16>;
741				status = "disabled";
742			};
743
744			i2c0: i2c@600 {
745				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
746				reg = <0x600 0x200>;
747				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
748				#address-cells = <1>;
749				#size-cells = <0>;
750				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
751				dmas = <&dma0
752					(AT91_XDMAC_DT_MEM_IF(0) |
753					 AT91_XDMAC_DT_PER_IF(1) |
754					 AT91_XDMAC_DT_PERID(0))>,
755				       <&dma0
756					(AT91_XDMAC_DT_MEM_IF(0) |
757					 AT91_XDMAC_DT_PER_IF(1) |
758					 AT91_XDMAC_DT_PERID(1))>;
759				dma-names = "tx", "rx";
760				atmel,fifo-size = <16>;
761				status = "disabled";
762			};
763		};
764
765		flx1: flexcom@f8020000 {
766			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
767			reg = <0xf8020000 0x200>;
768			ranges = <0x0 0xf8020000 0x800>;
769			#address-cells = <1>;
770			#size-cells = <1>;
771			clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
772			status = "disabled";
773
774			uart1: serial@200 {
775				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
776				reg = <0x200 0x200>;
777				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
778				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
779				clock-names = "usart";
780				dmas = <&dma0
781					(AT91_XDMAC_DT_MEM_IF(0) |
782					 AT91_XDMAC_DT_PER_IF(1) |
783					 AT91_XDMAC_DT_PERID(2))>,
784				       <&dma0
785					(AT91_XDMAC_DT_MEM_IF(0) |
786					 AT91_XDMAC_DT_PER_IF(1) |
787					 AT91_XDMAC_DT_PERID(3))>;
788				dma-names = "tx", "rx";
789				atmel,use-dma-rx;
790				atmel,use-dma-tx;
791				atmel,fifo-size = <16>;
792				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
793				status = "disabled";
794			};
795
796			spi1: spi@400 {
797				compatible = "microchip,sam9x7-spi", "atmel,at91rm9200-spi";
798				reg = <0x400 0x200>;
799				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
800				#address-cells = <1>;
801				#size-cells = <0>;
802				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
803				clock-names = "spi_clk";
804				dmas = <&dma0
805					(AT91_XDMAC_DT_MEM_IF(0) |
806					 AT91_XDMAC_DT_PER_IF(1) |
807					 AT91_XDMAC_DT_PERID(2))>,
808				       <&dma0
809					(AT91_XDMAC_DT_MEM_IF(0) |
810					 AT91_XDMAC_DT_PER_IF(1) |
811					 AT91_XDMAC_DT_PERID(3))>;
812				dma-names = "tx", "rx";
813				atmel,fifo-size = <16>;
814				status = "disabled";
815			};
816
817			i2c1: i2c@600 {
818				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
819				reg = <0x600 0x200>;
820				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
821				#address-cells = <1>;
822				#size-cells = <0>;
823				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
824				dmas = <&dma0
825					(AT91_XDMAC_DT_MEM_IF(0) |
826					 AT91_XDMAC_DT_PER_IF(1) |
827					 AT91_XDMAC_DT_PERID(2))>,
828				       <&dma0
829					(AT91_XDMAC_DT_MEM_IF(0) |
830					 AT91_XDMAC_DT_PER_IF(1) |
831					 AT91_XDMAC_DT_PERID(3))>;
832				dma-names = "tx", "rx";
833				atmel,fifo-size = <16>;
834				status = "disabled";
835			};
836		};
837
838		flx2: flexcom@f8024000 {
839			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
840			reg = <0xf8024000 0x200>;
841			ranges = <0x0 0xf8024000 0x800>;
842			#address-cells = <1>;
843			#size-cells = <1>;
844			clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
845			status = "disabled";
846
847			uart2: serial@200 {
848				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
849				reg = <0x200 0x200>;
850				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
851				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
852				clock-names = "usart";
853				dmas = <&dma0
854					(AT91_XDMAC_DT_MEM_IF(0) |
855					 AT91_XDMAC_DT_PER_IF(1) |
856					 AT91_XDMAC_DT_PERID(4))>,
857				       <&dma0
858					(AT91_XDMAC_DT_MEM_IF(0) |
859					 AT91_XDMAC_DT_PER_IF(1) |
860					 AT91_XDMAC_DT_PERID(5))>;
861				dma-names = "tx", "rx";
862				atmel,use-dma-rx;
863				atmel,use-dma-tx;
864				atmel,fifo-size = <16>;
865				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
866				status = "disabled";
867			};
868
869			spi2: spi@400 {
870				compatible = "microchip,sam9x7-spi", "atmel,at91rm9200-spi";
871				reg = <0x400 0x200>;
872				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
873				#address-cells = <1>;
874				#size-cells = <0>;
875				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
876				clock-names = "spi_clk";
877				dmas = <&dma0
878					(AT91_XDMAC_DT_MEM_IF(0) |
879					 AT91_XDMAC_DT_PER_IF(1) |
880					 AT91_XDMAC_DT_PERID(4))>,
881				       <&dma0
882					(AT91_XDMAC_DT_MEM_IF(0) |
883					 AT91_XDMAC_DT_PER_IF(1) |
884					 AT91_XDMAC_DT_PERID(5))>;
885				dma-names = "tx", "rx";
886				atmel,fifo-size = <16>;
887				status = "disabled";
888			};
889
890			i2c2: i2c@600 {
891				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
892				reg = <0x600 0x200>;
893				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
894				#address-cells = <1>;
895				#size-cells = <0>;
896				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
897				dmas = <&dma0
898					(AT91_XDMAC_DT_MEM_IF(0) |
899					 AT91_XDMAC_DT_PER_IF(1) |
900					 AT91_XDMAC_DT_PERID(4))>,
901				       <&dma0
902					(AT91_XDMAC_DT_MEM_IF(0) |
903					 AT91_XDMAC_DT_PER_IF(1) |
904					 AT91_XDMAC_DT_PERID(5))>;
905				dma-names = "tx", "rx";
906				atmel,fifo-size = <16>;
907				status = "disabled";
908			};
909		};
910
911		flx3: flexcom@f8028000 {
912			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
913			reg = <0xf8028000 0x200>;
914			ranges = <0x0 0xf8028000 0x800>;
915			#address-cells = <1>;
916			#size-cells = <1>;
917			clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
918			status = "disabled";
919
920			uart3: serial@200 {
921				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
922				reg = <0x200 0x200>;
923				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
924				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
925				clock-names = "usart";
926				dmas = <&dma0
927					(AT91_XDMAC_DT_MEM_IF(0) |
928					 AT91_XDMAC_DT_PER_IF(1) |
929					 AT91_XDMAC_DT_PERID(6))>,
930				       <&dma0
931					(AT91_XDMAC_DT_MEM_IF(0) |
932					 AT91_XDMAC_DT_PER_IF(1) |
933					 AT91_XDMAC_DT_PERID(7))>;
934				dma-names = "tx", "rx";
935				atmel,use-dma-rx;
936				atmel,use-dma-tx;
937				atmel,fifo-size = <16>;
938				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
939				status = "disabled";
940			};
941
942			spi3: spi@400 {
943				compatible = "microchip,sam9x7-spi", "atmel,at91rm9200-spi";
944				reg = <0x400 0x200>;
945				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
946				#address-cells = <1>;
947				#size-cells = <0>;
948				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
949				clock-names = "spi_clk";
950				dmas = <&dma0
951					(AT91_XDMAC_DT_MEM_IF(0) |
952					 AT91_XDMAC_DT_PER_IF(1) |
953					 AT91_XDMAC_DT_PERID(6))>,
954				       <&dma0
955					(AT91_XDMAC_DT_MEM_IF(0) |
956					 AT91_XDMAC_DT_PER_IF(1) |
957					 AT91_XDMAC_DT_PERID(7))>;
958				dma-names = "tx", "rx";
959				atmel,fifo-size = <16>;
960				status = "disabled";
961			};
962
963			i2c3: i2c@600 {
964				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
965				reg = <0x600 0x200>;
966				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
967				#address-cells = <1>;
968				#size-cells = <0>;
969				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
970				dmas = <&dma0
971					(AT91_XDMAC_DT_MEM_IF(0) |
972					 AT91_XDMAC_DT_PER_IF(1) |
973					 AT91_XDMAC_DT_PERID(6))>,
974				       <&dma0
975					(AT91_XDMAC_DT_MEM_IF(0) |
976					 AT91_XDMAC_DT_PER_IF(1) |
977					 AT91_XDMAC_DT_PERID(7))>;
978				dma-names = "tx", "rx";
979				atmel,fifo-size = <16>;
980				status = "disabled";
981			};
982		};
983
984		gmac: ethernet@f802c000 {
985			compatible = "microchip,sam9x7-gem", "microchip,sama7g5-gem";
986			reg = <0xf802c000 0x1000>;
987			interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>,	/* Queue 0 */
988				     <60 IRQ_TYPE_LEVEL_HIGH 3>,	/* Queue 1 */
989				     <61 IRQ_TYPE_LEVEL_HIGH 3>,	/* Queue 2 */
990				     <62 IRQ_TYPE_LEVEL_HIGH 3>,	/* Queue 3 */
991				     <63 IRQ_TYPE_LEVEL_HIGH 3>,	/* Queue 4 */
992				     <64 IRQ_TYPE_LEVEL_HIGH 3>;	/* Queue 5 */
993			clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_GCK 24>, <&pmc PMC_TYPE_GCK 67>;
994			clock-names = "hclk", "pclk", "tx_clk", "tsu_clk";
995			assigned-clocks = <&pmc PMC_TYPE_GCK 67>;
996			assigned-clock-rates = <266666666>;
997			status = "disabled";
998		};
999
1000		pwm0: pwm@f8034000 {
1001			compatible = "microchip,sam9x7-pwm", "microchip,sam9x60-pwm";
1002			reg = <0xf8034000 0x300>;
1003			interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
1004			clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
1005			#pwm-cells = <3>;
1006			status = "disabled";
1007		};
1008
1009		hlcdc: hlcdc@f8038000 {
1010			compatible = "microchip,sam9x75-xlcdc";
1011			reg = <0xf8038000 0x4000>;
1012			interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
1013			clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>;
1014			clock-names = "periph_clk", "sys_clk", "slow_clk";
1015			status = "disabled";
1016
1017			display-controller {
1018				compatible = "atmel,hlcdc-display-controller";
1019				#address-cells = <1>;
1020				#size-cells = <0>;
1021
1022				port@0 {
1023					reg = <0>;
1024					#address-cells = <1>;
1025					#size-cells = <0>;
1026				};
1027			};
1028
1029			pwm {
1030				compatible = "atmel,hlcdc-pwm";
1031				#pwm-cells = <3>;
1032			};
1033		};
1034
1035		flx9: flexcom@f8040000 {
1036			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
1037			reg = <0xf8040000 0x200>;
1038			ranges = <0x0 0xf8040000 0x800>;
1039			#address-cells = <1>;
1040			#size-cells = <1>;
1041			clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
1042			status = "disabled";
1043
1044			uart9: serial@200 {
1045				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
1046				reg = <0x200 0x200>;
1047				interrupts = <15 IRQ_TYPE_LEVEL_HIGH 7>;
1048				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
1049				clock-names = "usart";
1050				dmas = <&dma0
1051					(AT91_XDMAC_DT_MEM_IF(0) |
1052					 AT91_XDMAC_DT_PER_IF(1) |
1053					 AT91_XDMAC_DT_PERID(18))>,
1054				       <&dma0
1055					(AT91_XDMAC_DT_MEM_IF(0) |
1056					 AT91_XDMAC_DT_PER_IF(1) |
1057					 AT91_XDMAC_DT_PERID(19))>;
1058				dma-names = "tx", "rx";
1059				atmel,use-dma-rx;
1060				atmel,use-dma-tx;
1061				atmel,fifo-size = <16>;
1062				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
1063				status = "disabled";
1064			};
1065
1066			i2c9: i2c@600 {
1067				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
1068				reg = <0x600 0x200>;
1069				interrupts = <15 IRQ_TYPE_LEVEL_HIGH 7>;
1070				#address-cells = <1>;
1071				#size-cells = <0>;
1072				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
1073				dmas = <&dma0
1074					(AT91_XDMAC_DT_MEM_IF(0) |
1075					 AT91_XDMAC_DT_PER_IF(1) |
1076					 AT91_XDMAC_DT_PERID(18))>,
1077				       <&dma0
1078					(AT91_XDMAC_DT_MEM_IF(0) |
1079					 AT91_XDMAC_DT_PER_IF(1) |
1080					 AT91_XDMAC_DT_PERID(19))>;
1081				dma-names = "tx", "rx";
1082				atmel,fifo-size = <16>;
1083				status = "disabled";
1084			};
1085		};
1086
1087		flx10: flexcom@f8044000 {
1088			compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
1089			reg = <0xf8044000 0x200>;
1090			ranges = <0x0 0xf8044000 0x800>;
1091			#address-cells = <1>;
1092			#size-cells = <1>;
1093			clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
1094			status = "disabled";
1095
1096			uart10: serial@200 {
1097				compatible = "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
1098				reg = <0x200 0x200>;
1099				interrupts = <16 IRQ_TYPE_LEVEL_HIGH 7>;
1100				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
1101				clock-names = "usart";
1102				dmas = <&dma0
1103					(AT91_XDMAC_DT_MEM_IF(0) |
1104					 AT91_XDMAC_DT_PER_IF(1) |
1105					 AT91_XDMAC_DT_PERID(20))>,
1106				       <&dma0
1107					(AT91_XDMAC_DT_MEM_IF(0) |
1108					 AT91_XDMAC_DT_PER_IF(1) |
1109					 AT91_XDMAC_DT_PERID(21))>;
1110				dma-names = "tx", "rx";
1111				atmel,use-dma-rx;
1112				atmel,use-dma-tx;
1113				atmel,fifo-size = <16>;
1114				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
1115				status = "disabled";
1116			};
1117
1118			i2c10: i2c@600 {
1119				compatible = "microchip,sam9x7-i2c", "microchip,sam9x60-i2c";
1120				reg = <0x600 0x200>;
1121				interrupts = <16 IRQ_TYPE_LEVEL_HIGH 7>;
1122				#address-cells = <1>;
1123				#size-cells = <0>;
1124				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
1125				dmas = <&dma0
1126					(AT91_XDMAC_DT_MEM_IF(0) |
1127					 AT91_XDMAC_DT_PER_IF(1) |
1128					 AT91_XDMAC_DT_PERID(20))>,
1129				       <&dma0
1130					(AT91_XDMAC_DT_MEM_IF(0) |
1131					 AT91_XDMAC_DT_PER_IF(1) |
1132					 AT91_XDMAC_DT_PERID(21))>;
1133				dma-names = "tx", "rx";
1134				atmel,fifo-size = <16>;
1135				status = "disabled";
1136			};
1137		};
1138
1139		lvds_controller: lvds-controller@f8060000 {
1140			compatible = "microchip,sam9x75-lvds";
1141			reg = <0xf8060000 0x100>;
1142			interrupts = <56 IRQ_TYPE_LEVEL_HIGH 0>;
1143			clocks = <&pmc PMC_TYPE_PERIPHERAL 56>;
1144			clock-names = "pclk";
1145			status = "disabled";
1146		};
1147
1148		matrix: matrix@ffffde00 {
1149			compatible = "microchip,sam9x7-matrix", "atmel,at91sam9x5-matrix", "syscon";
1150			reg = <0xffffde00 0x200>;
1151		};
1152
1153		pmecc: ecc-engine@ffffe000 {
1154			compatible = "microchip,sam9x7-pmecc", "atmel,at91sam9g45-pmecc";
1155			reg = <0xffffe000 0x300>, <0xffffe600 0x100>;
1156		};
1157
1158		mpddrc: mpddrc@ffffe800 {
1159			compatible = "microchip,sam9x7-ddramc", "atmel,sama5d3-ddramc";
1160			reg = <0xffffe800 0x200>;
1161			clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_CORE PMC_MCK>;
1162			clock-names = "ddrck", "mpddr";
1163		};
1164
1165		smc: smc@ffffea00 {
1166			compatible = "microchip,sam9x7-smc", "atmel,at91sam9260-smc", "syscon";
1167			reg = <0xffffea00 0x100>;
1168		};
1169
1170		aic: interrupt-controller@fffff100 {
1171			compatible = "microchip,sam9x7-aic";
1172			reg = <0xfffff100 0x100>;
1173			#interrupt-cells = <3>;
1174			interrupt-controller;
1175			atmel,external-irqs = <31>;
1176		};
1177
1178		dbgu: serial@fffff200 {
1179			compatible = "microchip,sam9x7-dbgu", "atmel,at91sam9260-dbgu", "microchip,sam9x7-usart", "atmel,at91sam9260-usart";
1180			reg = <0xfffff200 0x200>;
1181			interrupts = <47 IRQ_TYPE_LEVEL_HIGH 7>;
1182			clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
1183			clock-names = "usart";
1184			dmas = <&dma0
1185				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1186				 AT91_XDMAC_DT_PERID(28))>,
1187			       <&dma0
1188				(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1189				 AT91_XDMAC_DT_PERID(29))>;
1190			dma-names = "tx", "rx";
1191			atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
1192			status = "disabled";
1193		};
1194
1195		pinctrl: pinctrl@fffff400 {
1196			compatible = "microchip,sam9x7-pinctrl", "microchip,sam9x60-pinctrl", "simple-mfd";
1197			ranges = <0xfffff400 0xfffff400 0x800>;
1198			#address-cells = <1>;
1199			#size-cells = <1>;
1200
1201			/* mux-mask corresponding to sam9x7 SoC in TFBGA228L package */
1202			atmel,mux-mask = <
1203					 /*  A		B	   C	      D	  */
1204					 0xffffffff 0xffffefc0 0xc0ffd000 0x00000000	/* pioA */
1205					 0x07ffffff 0x0805fe7f 0x01ff9f81 0x06078000	/* pioB */
1206					 0xffffffff 0x07dfffff 0xfa3fffff 0x00000000	/* pioC */
1207					 0x00003fff 0x00003fe0 0x0000003f 0x00000000	/* pioD */
1208					 >;
1209
1210			pioA: gpio@fffff400 {
1211				compatible = "microchip,sam9x7-gpio", "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
1212				reg = <0xfffff400 0x200>;
1213				interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
1214				#interrupt-cells = <2>;
1215				interrupt-controller;
1216				#gpio-cells = <2>;
1217				gpio-controller;
1218				clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
1219			};
1220
1221			pioB: gpio@fffff600 {
1222				compatible = "microchip,sam9x7-gpio", "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
1223				reg = <0xfffff600 0x200>;
1224				interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
1225				#interrupt-cells = <2>;
1226				interrupt-controller;
1227				#gpio-cells = <2>;
1228				gpio-controller;
1229				#gpio-lines = <26>;
1230				clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
1231			};
1232
1233			pioC: gpio@fffff800 {
1234				compatible = "microchip,sam9x7-gpio", "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
1235				reg = <0xfffff800 0x200>;
1236				interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
1237				#interrupt-cells = <2>;
1238				interrupt-controller;
1239				#gpio-cells = <2>;
1240				gpio-controller;
1241				clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
1242			};
1243
1244			pioD: gpio@fffffa00 {
1245				compatible = "microchip,sam9x7-gpio", "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
1246				reg = <0xfffffa00 0x200>;
1247				interrupts = <44 IRQ_TYPE_LEVEL_HIGH 1>;
1248				#interrupt-cells = <2>;
1249				interrupt-controller;
1250				#gpio-cells = <2>;
1251				gpio-controller;
1252				#gpio-lines = <22>;
1253				clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
1254			};
1255		};
1256
1257		pmc: clock-controller@fffffc00 {
1258			compatible = "microchip,sam9x7-pmc", "syscon";
1259			reg = <0xfffffc00 0x200>;
1260			interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1261			#clock-cells = <2>;
1262			clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
1263			clock-names = "td_slck", "md_slck", "main_xtal";
1264		};
1265
1266		reset_controller: reset-controller@fffffe00 {
1267			compatible = "microchip,sam9x7-rstc", "microchip,sam9x60-rstc";
1268			reg = <0xfffffe00 0x10>;
1269			clocks = <&clk32k 0>;
1270		};
1271
1272		poweroff: poweroff@fffffe10 {
1273			compatible = "microchip,sam9x7-shdwc", "microchip,sam9x60-shdwc";
1274			reg = <0xfffffe10 0x10>;
1275			#address-cells = <1>;
1276			#size-cells = <0>;
1277			clocks = <&clk32k 0>;
1278			atmel,wakeup-rtc-timer;
1279			atmel,wakeup-rtt-timer;
1280			status = "disabled";
1281		};
1282
1283		rtt: rtc@fffffe20 {
1284			compatible = "microchip,sam9x7-rtt", "atmel,at91sam9260-rtt";
1285			reg = <0xfffffe20 0x20>;
1286			interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1287			clocks = <&clk32k 0>;
1288		};
1289
1290		clk32k: clock-controller@fffffe50 {
1291			compatible = "microchip,sam9x7-sckc", "microchip,sam9x60-sckc";
1292			reg = <0xfffffe50 0x4>;
1293			clocks = <&slow_xtal>;
1294			#clock-cells = <1>;
1295		};
1296
1297		gpbr: syscon@fffffe60 {
1298			compatible = "microchip,sam9x7-gpbr", "atmel,at91sam9260-gpbr", "syscon";
1299			reg = <0xfffffe60 0x10>;
1300		};
1301
1302		rtc: rtc@fffffea8 {
1303			compatible = "microchip,sam9x7-rtc", "microchip,sam9x60-rtc";
1304			reg = <0xfffffea8 0x100>;
1305			interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1306			clocks = <&clk32k 0>;
1307		};
1308
1309		watchdog: watchdog@ffffff80 {
1310			compatible = "microchip,sam9x7-wdt", "microchip,sam9x60-wdt";
1311			reg = <0xffffff80 0x24>;
1312			interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1313			status = "disabled";
1314		};
1315	};
1316};
1317