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