1/*
2 * at91sam9260.dtsi - Device Tree Include file for AT91SAM9260 family SoC
3 *
4 *  Copyright (C) 2011 Atmel,
5 *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>,
6 *                2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
7 *
8 * Licensed under GPLv2 or later.
9 */
10
11#include "skeleton.dtsi"
12#include <dt-bindings/pinctrl/at91.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/clock/at91.h>
16
17/ {
18	model = "Atmel AT91SAM9260 family SoC";
19	compatible = "atmel,at91sam9260";
20	interrupt-parent = <&aic>;
21
22	aliases {
23		serial0 = &dbgu;
24		serial1 = &usart0;
25		serial2 = &usart1;
26		serial3 = &usart2;
27		serial4 = &usart3;
28		serial5 = &uart0;
29		serial6 = &uart1;
30		gpio0 = &pioA;
31		gpio1 = &pioB;
32		gpio2 = &pioC;
33		tcb0 = &tcb0;
34		tcb1 = &tcb1;
35		i2c0 = &i2c0;
36		ssc0 = &ssc0;
37	};
38	cpus {
39		#address-cells = <0>;
40		#size-cells = <0>;
41
42		cpu {
43			compatible = "arm,arm926ej-s";
44			device_type = "cpu";
45		};
46	};
47
48	memory {
49		reg = <0x20000000 0x04000000>;
50	};
51
52	clocks {
53		slow_xtal: slow_xtal {
54			compatible = "fixed-clock";
55			#clock-cells = <0>;
56			clock-frequency = <0>;
57		};
58
59		main_xtal: main_xtal {
60			compatible = "fixed-clock";
61			#clock-cells = <0>;
62			clock-frequency = <0>;
63		};
64
65		adc_op_clk: adc_op_clk{
66			compatible = "fixed-clock";
67			#clock-cells = <0>;
68			clock-frequency = <5000000>;
69		};
70	};
71
72	sram0: sram@2ff000 {
73		compatible = "mmio-sram";
74		reg = <0x002ff000 0x2000>;
75	};
76
77	ahb {
78		compatible = "simple-bus";
79		#address-cells = <1>;
80		#size-cells = <1>;
81		ranges;
82
83		apb {
84			compatible = "simple-bus";
85			#address-cells = <1>;
86			#size-cells = <1>;
87			ranges;
88
89			aic: interrupt-controller@fffff000 {
90				#interrupt-cells = <3>;
91				compatible = "atmel,at91rm9200-aic";
92				interrupt-controller;
93				reg = <0xfffff000 0x200>;
94				atmel,external-irqs = <29 30 31>;
95			};
96
97			ramc0: ramc@ffffea00 {
98				compatible = "atmel,at91sam9260-sdramc";
99				reg = <0xffffea00 0x200>;
100			};
101
102			smc: smc@ffffec00 {
103				compatible = "atmel,at91sam9260-smc", "syscon";
104				reg = <0xffffec00 0x200>;
105			};
106
107			matrix: matrix@ffffee00 {
108				compatible = "atmel,at91sam9260-matrix", "syscon";
109				reg = <0xffffee00 0x200>;
110			};
111
112			pmc: pmc@fffffc00 {
113				compatible = "atmel,at91sam9260-pmc", "syscon";
114				reg = <0xfffffc00 0x100>;
115				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
116				interrupt-controller;
117				#address-cells = <1>;
118				#size-cells = <0>;
119				#interrupt-cells = <1>;
120
121				main_osc: main_osc {
122					compatible = "atmel,at91rm9200-clk-main-osc";
123					#clock-cells = <0>;
124					interrupts-extended = <&pmc AT91_PMC_MOSCS>;
125					clocks = <&main_xtal>;
126				};
127
128				main: mainck {
129					compatible = "atmel,at91rm9200-clk-main";
130					#clock-cells = <0>;
131					clocks = <&main_osc>;
132				};
133
134				slow_rc_osc: slow_rc_osc {
135					compatible = "fixed-clock";
136					#clock-cells = <0>;
137					clock-frequency = <32768>;
138					clock-accuracy = <50000000>;
139				};
140
141				clk32k: slck {
142					compatible = "atmel,at91sam9260-clk-slow";
143					#clock-cells = <0>;
144					clocks = <&slow_rc_osc>, <&slow_xtal>;
145				};
146
147				plla: pllack {
148					compatible = "atmel,at91rm9200-clk-pll";
149					#clock-cells = <0>;
150					interrupts-extended = <&pmc AT91_PMC_LOCKA>;
151					clocks = <&main>;
152					reg = <0>;
153					atmel,clk-input-range = <1000000 32000000>;
154					#atmel,pll-clk-output-range-cells = <4>;
155					atmel,pll-clk-output-ranges = <80000000 160000000 0 1>,
156								<150000000 240000000 2 1>;
157				};
158
159				pllb: pllbck {
160					compatible = "atmel,at91rm9200-clk-pll";
161					#clock-cells = <0>;
162					interrupts-extended = <&pmc AT91_PMC_LOCKB>;
163					clocks = <&main>;
164					reg = <1>;
165					atmel,clk-input-range = <1000000 5000000>;
166					#atmel,pll-clk-output-range-cells = <4>;
167					atmel,pll-clk-output-ranges = <70000000 130000000 1 1>;
168				};
169
170				mck: masterck {
171					compatible = "atmel,at91rm9200-clk-master";
172					#clock-cells = <0>;
173					interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
174					clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
175					atmel,clk-output-range = <0 105000000>;
176					atmel,clk-divisors = <1 2 4 0>;
177				};
178
179				usb: usbck {
180					compatible = "atmel,at91rm9200-clk-usb";
181					#clock-cells = <0>;
182					atmel,clk-divisors = <1 2 4 0>;
183					clocks = <&pllb>;
184				};
185
186				prog: progck {
187					compatible = "atmel,at91rm9200-clk-programmable";
188					#address-cells = <1>;
189					#size-cells = <0>;
190					interrupt-parent = <&pmc>;
191					clocks = <&clk32k>, <&main>, <&plla>, <&pllb>;
192
193					prog0: prog0 {
194						#clock-cells = <0>;
195						reg = <0>;
196						interrupts = <AT91_PMC_PCKRDY(0)>;
197					};
198
199					prog1: prog1 {
200						#clock-cells = <0>;
201						reg = <1>;
202						interrupts = <AT91_PMC_PCKRDY(1)>;
203					};
204				};
205
206				systemck {
207					compatible = "atmel,at91rm9200-clk-system";
208					#address-cells = <1>;
209					#size-cells = <0>;
210
211					uhpck: uhpck {
212						#clock-cells = <0>;
213						reg = <6>;
214						clocks = <&usb>;
215					};
216
217					udpck: udpck {
218						#clock-cells = <0>;
219						reg = <7>;
220						clocks = <&usb>;
221					};
222
223					pck0: pck0 {
224						#clock-cells = <0>;
225						reg = <8>;
226						clocks = <&prog0>;
227					};
228
229					pck1: pck1 {
230						#clock-cells = <0>;
231						reg = <9>;
232						clocks = <&prog1>;
233					};
234				};
235
236				periphck {
237					compatible = "atmel,at91rm9200-clk-peripheral";
238					#address-cells = <1>;
239					#size-cells = <0>;
240					clocks = <&mck>;
241
242					pioA_clk: pioA_clk {
243						#clock-cells = <0>;
244						reg = <2>;
245					};
246
247					pioB_clk: pioB_clk {
248						#clock-cells = <0>;
249						reg = <3>;
250					};
251
252					pioC_clk: pioC_clk {
253						#clock-cells = <0>;
254						reg = <4>;
255					};
256
257					adc_clk: adc_clk {
258						#clock-cells = <0>;
259						reg = <5>;
260					};
261
262					usart0_clk: usart0_clk {
263						#clock-cells = <0>;
264						reg = <6>;
265					};
266
267					usart1_clk: usart1_clk {
268						#clock-cells = <0>;
269						reg = <7>;
270					};
271
272					usart2_clk: usart2_clk {
273						#clock-cells = <0>;
274						reg = <8>;
275					};
276
277					mci0_clk: mci0_clk {
278						#clock-cells = <0>;
279						reg = <9>;
280					};
281
282					udc_clk: udc_clk {
283						#clock-cells = <0>;
284						reg = <10>;
285					};
286
287					twi0_clk: twi0_clk {
288						reg = <11>;
289						#clock-cells = <0>;
290					};
291
292					spi0_clk: spi0_clk {
293						#clock-cells = <0>;
294						reg = <12>;
295					};
296
297					spi1_clk: spi1_clk {
298						#clock-cells = <0>;
299						reg = <13>;
300					};
301
302					ssc0_clk: ssc0_clk {
303						#clock-cells = <0>;
304						reg = <14>;
305					};
306
307					tc0_clk: tc0_clk {
308						#clock-cells = <0>;
309						reg = <17>;
310					};
311
312					tc1_clk: tc1_clk {
313						#clock-cells = <0>;
314						reg = <18>;
315					};
316
317					tc2_clk: tc2_clk {
318						#clock-cells = <0>;
319						reg = <19>;
320					};
321
322					ohci_clk: ohci_clk {
323						#clock-cells = <0>;
324						reg = <20>;
325					};
326
327					macb0_clk: macb0_clk {
328						#clock-cells = <0>;
329						reg = <21>;
330					};
331
332					isi_clk: isi_clk {
333						#clock-cells = <0>;
334						reg = <22>;
335					};
336
337					usart3_clk: usart3_clk {
338						#clock-cells = <0>;
339						reg = <23>;
340					};
341
342					uart0_clk: uart0_clk {
343						#clock-cells = <0>;
344						reg = <24>;
345					};
346
347					uart1_clk: uart1_clk {
348						#clock-cells = <0>;
349						reg = <25>;
350					};
351
352					tc3_clk: tc3_clk {
353						#clock-cells = <0>;
354						reg = <26>;
355					};
356
357					tc4_clk: tc4_clk {
358						#clock-cells = <0>;
359						reg = <27>;
360					};
361
362					tc5_clk: tc5_clk {
363						#clock-cells = <0>;
364						reg = <28>;
365					};
366				};
367			};
368
369			rstc@fffffd00 {
370				compatible = "atmel,at91sam9260-rstc";
371				reg = <0xfffffd00 0x10>;
372				clocks = <&clk32k>;
373			};
374
375			shdwc@fffffd10 {
376				compatible = "atmel,at91sam9260-shdwc";
377				reg = <0xfffffd10 0x10>;
378				clocks = <&clk32k>;
379			};
380
381			pit: timer@fffffd30 {
382				compatible = "atmel,at91sam9260-pit";
383				reg = <0xfffffd30 0xf>;
384				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
385				clocks = <&mck>;
386			};
387
388			tcb0: timer@fffa0000 {
389				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
390				#address-cells = <1>;
391				#size-cells = <0>;
392				reg = <0xfffa0000 0x100>;
393				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
394					      18 IRQ_TYPE_LEVEL_HIGH 0
395					      19 IRQ_TYPE_LEVEL_HIGH 0>;
396				clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&clk32k>;
397				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
398			};
399
400			tcb1: timer@fffdc000 {
401				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
402				#address-cells = <1>;
403				#size-cells = <0>;
404				reg = <0xfffdc000 0x100>;
405				interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0
406					      27 IRQ_TYPE_LEVEL_HIGH 0
407					      28 IRQ_TYPE_LEVEL_HIGH 0>;
408				clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>, <&clk32k>;
409				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
410			};
411
412			pinctrl@fffff400 {
413				#address-cells = <1>;
414				#size-cells = <1>;
415				compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
416				ranges = <0xfffff400 0xfffff400 0x600>;
417
418				atmel,mux-mask = <
419				      /*    A         B     */
420				       0xffffffff 0xffc00c3b  /* pioA */
421				       0xffffffff 0x7fff3ccf  /* pioB */
422				       0xffffffff 0x007fffff  /* pioC */
423				      >;
424
425				/* shared pinctrl settings */
426				dbgu {
427					pinctrl_dbgu: dbgu-0 {
428						atmel,pins =
429							<AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
430							 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
431					};
432				};
433
434				usart0 {
435					pinctrl_usart0: usart0-0 {
436						atmel,pins =
437							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
438							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
439					};
440
441					pinctrl_usart0_rts: usart0_rts-0 {
442						atmel,pins =
443							<AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB26 periph A */
444					};
445
446					pinctrl_usart0_cts: usart0_cts-0 {
447						atmel,pins =
448							<AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB27 periph A */
449					};
450
451					pinctrl_usart0_dtr_dsr: usart0_dtr_dsr-0 {
452						atmel,pins =
453							<AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB24 periph A */
454							 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB22 periph A */
455					};
456
457					pinctrl_usart0_dcd: usart0_dcd-0 {
458						atmel,pins =
459							<AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB23 periph A */
460					};
461
462					pinctrl_usart0_ri: usart0_ri-0 {
463						atmel,pins =
464							<AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB25 periph A */
465					};
466				};
467
468				usart1 {
469					pinctrl_usart1: usart1-0 {
470						atmel,pins =
471							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE
472							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
473					};
474
475					pinctrl_usart1_rts: usart1_rts-0 {
476						atmel,pins =
477							<AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB28 periph A */
478					};
479
480					pinctrl_usart1_cts: usart1_cts-0 {
481						atmel,pins =
482							<AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB29 periph A */
483					};
484				};
485
486				usart2 {
487					pinctrl_usart2: usart2-0 {
488						atmel,pins =
489							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE
490							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
491					};
492
493					pinctrl_usart2_rts: usart2_rts-0 {
494						atmel,pins =
495							<AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA4 periph A */
496					};
497
498					pinctrl_usart2_cts: usart2_cts-0 {
499						atmel,pins =
500							<AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA5 periph A */
501					};
502				};
503
504				usart3 {
505					pinctrl_usart3: usart3-0 {
506						atmel,pins =
507							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE
508							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
509					};
510
511					pinctrl_usart3_rts: usart3_rts-0 {
512						atmel,pins =
513							<AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
514					};
515
516					pinctrl_usart3_cts: usart3_cts-0 {
517						atmel,pins =
518							<AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
519					};
520				};
521
522				uart0 {
523					pinctrl_uart0: uart0-0 {
524						atmel,pins =
525							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_NONE
526							 AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
527					};
528				};
529
530				uart1 {
531					pinctrl_uart1: uart1-0 {
532						atmel,pins =
533							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE
534							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
535					};
536				};
537
538				nand {
539					pinctrl_nand_rb: nand-rb-0 {
540						atmel,pins =
541							<AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
542					};
543
544					pinctrl_nand_cs: nand-cs-0 {
545						atmel,pins =
546							 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
547					};
548				};
549
550				macb {
551					pinctrl_macb_rmii: macb_rmii-0 {
552						atmel,pins =
553							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA12 periph A */
554							 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA13 periph A */
555							 AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA14 periph A */
556							 AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA15 periph A */
557							 AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA16 periph A */
558							 AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA17 periph A */
559							 AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA18 periph A */
560							 AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA19 periph A */
561							 AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA20 periph A */
562							 AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA21 periph A */
563					};
564
565					pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
566						atmel,pins =
567							<AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
568							 AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA23 periph B */
569							 AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA24 periph B */
570							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
571							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
572							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
573							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
574							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
575					};
576
577					pinctrl_macb_rmii_mii_alt: macb_rmii_mii-1 {
578						atmel,pins =
579							<AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA10 periph B */
580							 AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA11 periph B */
581							 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
582							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
583							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
584							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
585							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
586							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
587					};
588				};
589
590				mmc0 {
591					pinctrl_mmc0_clk: mmc0_clk-0 {
592						atmel,pins =
593							<AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA8 periph A */
594					};
595
596					pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
597						atmel,pins =
598							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA7 periph A with pullup */
599							 AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA6 periph A with pullup */
600					};
601
602					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
603						atmel,pins =
604							<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA9 periph A with pullup */
605							 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA10 periph A with pullup */
606							 AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA11 periph A with pullup */
607					};
608
609					pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
610						atmel,pins =
611							<AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA1 periph B with pullup */
612							 AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA0 periph B with pullup */
613					};
614
615					pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
616						atmel,pins =
617							<AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA5 periph B with pullup */
618							 AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA4 periph B with pullup */
619							 AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA3 periph B with pullup */
620					};
621				};
622
623				ssc0 {
624					pinctrl_ssc0_tx: ssc0_tx-0 {
625						atmel,pins =
626							<AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB16 periph A */
627							 AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB17 periph A */
628							 AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB18 periph A */
629					};
630
631					pinctrl_ssc0_rx: ssc0_rx-0 {
632						atmel,pins =
633							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB19 periph A */
634							 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB20 periph A */
635							 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB21 periph A */
636					};
637				};
638
639				spi0 {
640					pinctrl_spi0: spi0-0 {
641						atmel,pins =
642							<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA0 periph A SPI0_MISO pin */
643							 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA1 periph A SPI0_MOSI pin */
644							 AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA2 periph A SPI0_SPCK pin */
645					};
646				};
647
648				spi1 {
649					pinctrl_spi1: spi1-0 {
650						atmel,pins =
651							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB0 periph A SPI1_MISO pin */
652							 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB1 periph A SPI1_MOSI pin */
653							 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB2 periph A SPI1_SPCK pin */
654					};
655				};
656
657				i2c_gpio0 {
658					pinctrl_i2c_gpio0: i2c_gpio0-0 {
659						atmel,pins =
660							<AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE
661							 AT91_PIOA 24 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
662					};
663				};
664
665				tcb0 {
666					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
667						atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
668					};
669
670					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
671						atmel,pins = <AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;
672					};
673
674					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
675						atmel,pins = <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
676					};
677
678					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
679						atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
680					};
681
682					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
683						atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
684					};
685
686					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
687						atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
688					};
689
690					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
691						atmel,pins = <AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
692					};
693
694					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
695						atmel,pins = <AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;
696					};
697
698					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
699						atmel,pins = <AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
700					};
701				};
702
703				tcb1 {
704					pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
705						atmel,pins = <AT91_PIOB 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
706					};
707
708					pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
709						atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
710					};
711
712					pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
713						atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
714					};
715
716					pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
717						atmel,pins = <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;
718					};
719
720					pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
721						atmel,pins = <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
722					};
723
724					pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
725						atmel,pins = <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE>;
726					};
727
728					pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
729						atmel,pins = <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
730					};
731
732					pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
733						atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
734					};
735
736					pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
737						atmel,pins = <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
738					};
739				};
740
741				pioA: gpio@fffff400 {
742					compatible = "atmel,at91rm9200-gpio";
743					reg = <0xfffff400 0x200>;
744					interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
745					#gpio-cells = <2>;
746					gpio-controller;
747					interrupt-controller;
748					#interrupt-cells = <2>;
749					clocks = <&pioA_clk>;
750				};
751
752				pioB: gpio@fffff600 {
753					compatible = "atmel,at91rm9200-gpio";
754					reg = <0xfffff600 0x200>;
755					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
756					#gpio-cells = <2>;
757					gpio-controller;
758					interrupt-controller;
759					#interrupt-cells = <2>;
760					clocks = <&pioB_clk>;
761				};
762
763				pioC: gpio@fffff800 {
764					compatible = "atmel,at91rm9200-gpio";
765					reg = <0xfffff800 0x200>;
766					interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
767					#gpio-cells = <2>;
768					gpio-controller;
769					interrupt-controller;
770					#interrupt-cells = <2>;
771					clocks = <&pioC_clk>;
772				};
773			};
774
775			dbgu: serial@fffff200 {
776				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
777				reg = <0xfffff200 0x200>;
778				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
779				pinctrl-names = "default";
780				pinctrl-0 = <&pinctrl_dbgu>;
781				clocks = <&mck>;
782				clock-names = "usart";
783				status = "disabled";
784			};
785
786			usart0: serial@fffb0000 {
787				compatible = "atmel,at91sam9260-usart";
788				reg = <0xfffb0000 0x200>;
789				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
790				atmel,use-dma-rx;
791				atmel,use-dma-tx;
792				pinctrl-names = "default";
793				pinctrl-0 = <&pinctrl_usart0>;
794				clocks = <&usart0_clk>;
795				clock-names = "usart";
796				status = "disabled";
797			};
798
799			usart1: serial@fffb4000 {
800				compatible = "atmel,at91sam9260-usart";
801				reg = <0xfffb4000 0x200>;
802				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
803				atmel,use-dma-rx;
804				atmel,use-dma-tx;
805				pinctrl-names = "default";
806				pinctrl-0 = <&pinctrl_usart1>;
807				clocks = <&usart1_clk>;
808				clock-names = "usart";
809				status = "disabled";
810			};
811
812			usart2: serial@fffb8000 {
813				compatible = "atmel,at91sam9260-usart";
814				reg = <0xfffb8000 0x200>;
815				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
816				atmel,use-dma-rx;
817				atmel,use-dma-tx;
818				pinctrl-names = "default";
819				pinctrl-0 = <&pinctrl_usart2>;
820				clocks = <&usart2_clk>;
821				clock-names = "usart";
822				status = "disabled";
823			};
824
825			usart3: serial@fffd0000 {
826				compatible = "atmel,at91sam9260-usart";
827				reg = <0xfffd0000 0x200>;
828				interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>;
829				atmel,use-dma-rx;
830				atmel,use-dma-tx;
831				pinctrl-names = "default";
832				pinctrl-0 = <&pinctrl_usart3>;
833				clocks = <&usart3_clk>;
834				clock-names = "usart";
835				status = "disabled";
836			};
837
838			uart0: serial@fffd4000 {
839				compatible = "atmel,at91sam9260-usart";
840				reg = <0xfffd4000 0x200>;
841				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 5>;
842				atmel,use-dma-rx;
843				atmel,use-dma-tx;
844				pinctrl-names = "default";
845				pinctrl-0 = <&pinctrl_uart0>;
846				clocks = <&uart0_clk>;
847				clock-names = "usart";
848				status = "disabled";
849			};
850
851			uart1: serial@fffd8000 {
852				compatible = "atmel,at91sam9260-usart";
853				reg = <0xfffd8000 0x200>;
854				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>;
855				atmel,use-dma-rx;
856				atmel,use-dma-tx;
857				pinctrl-names = "default";
858				pinctrl-0 = <&pinctrl_uart1>;
859				clocks = <&uart1_clk>;
860				clock-names = "usart";
861				status = "disabled";
862			};
863
864			macb0: ethernet@fffc4000 {
865				compatible = "cdns,at91sam9260-macb", "cdns,macb";
866				reg = <0xfffc4000 0x100>;
867				interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
868				pinctrl-names = "default";
869				pinctrl-0 = <&pinctrl_macb_rmii>;
870				clocks = <&macb0_clk>, <&macb0_clk>;
871				clock-names = "hclk", "pclk";
872				status = "disabled";
873			};
874
875			usb1: gadget@fffa4000 {
876				compatible = "atmel,at91sam9260-udc";
877				reg = <0xfffa4000 0x4000>;
878				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
879				clocks = <&udc_clk>, <&udpck>;
880				clock-names = "pclk", "hclk";
881				status = "disabled";
882			};
883
884			i2c0: i2c@fffac000 {
885				compatible = "atmel,at91sam9260-i2c";
886				reg = <0xfffac000 0x100>;
887				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
888				#address-cells = <1>;
889				#size-cells = <0>;
890				clocks = <&twi0_clk>;
891				status = "disabled";
892			};
893
894			mmc0: mmc@fffa8000 {
895				compatible = "atmel,hsmci";
896				reg = <0xfffa8000 0x600>;
897				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
898				#address-cells = <1>;
899				#size-cells = <0>;
900				pinctrl-names = "default";
901				clocks = <&mci0_clk>;
902				clock-names = "mci_clk";
903				status = "disabled";
904			};
905
906			ssc0: ssc@fffbc000 {
907				compatible = "atmel,at91rm9200-ssc";
908				reg = <0xfffbc000 0x4000>;
909				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
910				pinctrl-names = "default";
911				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
912				clocks = <&ssc0_clk>;
913				clock-names = "pclk";
914				status = "disabled";
915			};
916
917			spi0: spi@fffc8000 {
918				#address-cells = <1>;
919				#size-cells = <0>;
920				compatible = "atmel,at91rm9200-spi";
921				reg = <0xfffc8000 0x200>;
922				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
923				pinctrl-names = "default";
924				pinctrl-0 = <&pinctrl_spi0>;
925				clocks = <&spi0_clk>;
926				clock-names = "spi_clk";
927				status = "disabled";
928			};
929
930			spi1: spi@fffcc000 {
931				#address-cells = <1>;
932				#size-cells = <0>;
933				compatible = "atmel,at91rm9200-spi";
934				reg = <0xfffcc000 0x200>;
935				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
936				pinctrl-names = "default";
937				pinctrl-0 = <&pinctrl_spi1>;
938				clocks = <&spi1_clk>;
939				clock-names = "spi_clk";
940				status = "disabled";
941			};
942
943			adc0: adc@fffe0000 {
944				#address-cells = <1>;
945				#size-cells = <0>;
946				compatible = "atmel,at91sam9260-adc";
947				reg = <0xfffe0000 0x100>;
948				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 0>;
949				clocks = <&adc_clk>, <&adc_op_clk>;
950				clock-names = "adc_clk", "adc_op_clk";
951				atmel,adc-use-external-triggers;
952				atmel,adc-channels-used = <0xf>;
953				atmel,adc-vref = <3300>;
954				atmel,adc-startup-time = <15>;
955				atmel,adc-res = <8 10>;
956				atmel,adc-res-names = "lowres", "highres";
957				atmel,adc-use-res = "highres";
958
959				trigger0 {
960					trigger-name = "timer-counter-0";
961					trigger-value = <0x1>;
962				};
963				trigger1 {
964					trigger-name = "timer-counter-1";
965					trigger-value = <0x3>;
966				};
967
968				trigger2 {
969					trigger-name = "timer-counter-2";
970					trigger-value = <0x5>;
971				};
972
973				trigger3 {
974					trigger-name = "external";
975					trigger-value = <0xd>;
976					trigger-external;
977				};
978			};
979
980			rtc@fffffd20 {
981				compatible = "atmel,at91sam9260-rtt";
982				reg = <0xfffffd20 0x10>;
983				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
984				clocks = <&clk32k>;
985				status = "disabled";
986			};
987
988			watchdog@fffffd40 {
989				compatible = "atmel,at91sam9260-wdt";
990				reg = <0xfffffd40 0x10>;
991				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
992				clocks = <&clk32k>;
993				atmel,watchdog-type = "hardware";
994				atmel,reset-type = "all";
995				atmel,dbg-halt;
996				status = "disabled";
997			};
998
999			gpbr: syscon@fffffd50 {
1000				compatible = "atmel,at91sam9260-gpbr", "syscon";
1001				reg = <0xfffffd50 0x10>;
1002				status = "disabled";
1003			};
1004		};
1005
1006		usb0: ohci@500000 {
1007			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1008			reg = <0x00500000 0x100000>;
1009			interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
1010			clocks = <&ohci_clk>, <&ohci_clk>, <&uhpck>;
1011			clock-names = "ohci_clk", "hclk", "uhpck";
1012			status = "disabled";
1013		};
1014
1015		ebi: ebi@10000000 {
1016			compatible = "atmel,at91sam9260-ebi";
1017			#address-cells = <2>;
1018			#size-cells = <1>;
1019			atmel,smc = <&smc>;
1020			atmel,matrix = <&matrix>;
1021			reg = <0x10000000 0x80000000>;
1022			ranges = <0x0 0x0 0x10000000 0x10000000
1023				  0x1 0x0 0x20000000 0x10000000
1024				  0x2 0x0 0x30000000 0x10000000
1025				  0x3 0x0 0x40000000 0x10000000
1026				  0x4 0x0 0x50000000 0x10000000
1027				  0x5 0x0 0x60000000 0x10000000
1028				  0x6 0x0 0x70000000 0x10000000
1029				  0x7 0x0 0x80000000 0x10000000>;
1030			clocks = <&mck>;
1031			status = "disabled";
1032
1033			nand_controller: nand-controller {
1034				compatible = "atmel,at91sam9260-nand-controller";
1035				#address-cells = <2>;
1036				#size-cells = <1>;
1037				ranges;
1038				status = "disabled";
1039			};
1040		};
1041	};
1042
1043	i2c-gpio-0 {
1044		compatible = "i2c-gpio";
1045		gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
1046			 &pioA 24 GPIO_ACTIVE_HIGH /* scl */
1047			>;
1048		i2c-gpio,sda-open-drain;
1049		i2c-gpio,scl-open-drain;
1050		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
1051		#address-cells = <1>;
1052		#size-cells = <0>;
1053		pinctrl-names = "default";
1054		pinctrl-0 = <&pinctrl_i2c_gpio0>;
1055		status = "disabled";
1056	};
1057};
1058