• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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@002ff000 {
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";
390				reg = <0xfffa0000 0x100>;
391				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
392					      18 IRQ_TYPE_LEVEL_HIGH 0
393					      19 IRQ_TYPE_LEVEL_HIGH 0>;
394				clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&clk32k>;
395				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
396			};
397
398			tcb1: timer@fffdc000 {
399				compatible = "atmel,at91rm9200-tcb";
400				reg = <0xfffdc000 0x100>;
401				interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0
402					      27 IRQ_TYPE_LEVEL_HIGH 0
403					      28 IRQ_TYPE_LEVEL_HIGH 0>;
404				clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>, <&clk32k>;
405				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
406			};
407
408			pinctrl@fffff400 {
409				#address-cells = <1>;
410				#size-cells = <1>;
411				compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
412				ranges = <0xfffff400 0xfffff400 0x600>;
413
414				atmel,mux-mask = <
415				      /*    A         B     */
416				       0xffffffff 0xffc00c3b  /* pioA */
417				       0xffffffff 0x7fff3ccf  /* pioB */
418				       0xffffffff 0x007fffff  /* pioC */
419				      >;
420
421				/* shared pinctrl settings */
422				dbgu {
423					pinctrl_dbgu: dbgu-0 {
424						atmel,pins =
425							<AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
426							 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
427					};
428				};
429
430				usart0 {
431					pinctrl_usart0: usart0-0 {
432						atmel,pins =
433							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB4 periph A */
434							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB5 periph A */
435					};
436
437					pinctrl_usart0_rts: usart0_rts-0 {
438						atmel,pins =
439							<AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB26 periph A */
440					};
441
442					pinctrl_usart0_cts: usart0_cts-0 {
443						atmel,pins =
444							<AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB27 periph A */
445					};
446
447					pinctrl_usart0_dtr_dsr: usart0_dtr_dsr-0 {
448						atmel,pins =
449							<AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB24 periph A */
450							 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB22 periph A */
451					};
452
453					pinctrl_usart0_dcd: usart0_dcd-0 {
454						atmel,pins =
455							<AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB23 periph A */
456					};
457
458					pinctrl_usart0_ri: usart0_ri-0 {
459						atmel,pins =
460							<AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB25 periph A */
461					};
462				};
463
464				usart1 {
465					pinctrl_usart1: usart1-0 {
466						atmel,pins =
467							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PB6 periph A with pullup */
468							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB7 periph A */
469					};
470
471					pinctrl_usart1_rts: usart1_rts-0 {
472						atmel,pins =
473							<AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB28 periph A */
474					};
475
476					pinctrl_usart1_cts: usart1_cts-0 {
477						atmel,pins =
478							<AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB29 periph A */
479					};
480				};
481
482				usart2 {
483					pinctrl_usart2: usart2-0 {
484						atmel,pins =
485							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PB8 periph A with pullup */
486							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB9 periph A */
487					};
488
489					pinctrl_usart2_rts: usart2_rts-0 {
490						atmel,pins =
491							<AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA4 periph A */
492					};
493
494					pinctrl_usart2_cts: usart2_cts-0 {
495						atmel,pins =
496							<AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA5 periph A */
497					};
498				};
499
500				usart3 {
501					pinctrl_usart3: usart3-0 {
502						atmel,pins =
503							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PB10 periph A with pullup */
504							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB11 periph A */
505					};
506
507					pinctrl_usart3_rts: usart3_rts-0 {
508						atmel,pins =
509							<AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
510					};
511
512					pinctrl_usart3_cts: usart3_cts-0 {
513						atmel,pins =
514							<AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
515					};
516				};
517
518				uart0 {
519					pinctrl_uart0: uart0-0 {
520						atmel,pins =
521							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA31 periph B with pullup */
522							 AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA30 periph B */
523					};
524				};
525
526				uart1 {
527					pinctrl_uart1: uart1-0 {
528						atmel,pins =
529							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PB12 periph A with pullup */
530							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB13 periph A */
531					};
532				};
533
534				nand {
535					pinctrl_nand_rb: nand-rb-0 {
536						atmel,pins =
537							<AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
538					};
539
540					pinctrl_nand_cs: nand-cs-0 {
541						atmel,pins =
542							 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
543					};
544				};
545
546				macb {
547					pinctrl_macb_rmii: macb_rmii-0 {
548						atmel,pins =
549							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA12 periph A */
550							 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA13 periph A */
551							 AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA14 periph A */
552							 AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA15 periph A */
553							 AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA16 periph A */
554							 AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA17 periph A */
555							 AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA18 periph A */
556							 AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA19 periph A */
557							 AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA20 periph A */
558							 AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA21 periph A */
559					};
560
561					pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
562						atmel,pins =
563							<AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
564							 AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA23 periph B */
565							 AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA24 periph B */
566							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
567							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
568							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
569							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
570							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
571					};
572
573					pinctrl_macb_rmii_mii_alt: macb_rmii_mii-1 {
574						atmel,pins =
575							<AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA10 periph B */
576							 AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA11 periph B */
577							 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
578							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
579							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
580							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
581							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
582							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
583					};
584				};
585
586				mmc0 {
587					pinctrl_mmc0_clk: mmc0_clk-0 {
588						atmel,pins =
589							<AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA8 periph A */
590					};
591
592					pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
593						atmel,pins =
594							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA7 periph A with pullup */
595							 AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA6 periph A with pullup */
596					};
597
598					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
599						atmel,pins =
600							<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA9 periph A with pullup */
601							 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA10 periph A with pullup */
602							 AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA11 periph A with pullup */
603					};
604
605					pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
606						atmel,pins =
607							<AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA1 periph B with pullup */
608							 AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA0 periph B with pullup */
609					};
610
611					pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
612						atmel,pins =
613							<AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA5 periph B with pullup */
614							 AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA4 periph B with pullup */
615							 AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA3 periph B with pullup */
616					};
617				};
618
619				ssc0 {
620					pinctrl_ssc0_tx: ssc0_tx-0 {
621						atmel,pins =
622							<AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB16 periph A */
623							 AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB17 periph A */
624							 AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB18 periph A */
625					};
626
627					pinctrl_ssc0_rx: ssc0_rx-0 {
628						atmel,pins =
629							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB19 periph A */
630							 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB20 periph A */
631							 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB21 periph A */
632					};
633				};
634
635				spi0 {
636					pinctrl_spi0: spi0-0 {
637						atmel,pins =
638							<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA0 periph A SPI0_MISO pin */
639							 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA1 periph A SPI0_MOSI pin */
640							 AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA2 periph A SPI0_SPCK pin */
641					};
642				};
643
644				spi1 {
645					pinctrl_spi1: spi1-0 {
646						atmel,pins =
647							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB0 periph A SPI1_MISO pin */
648							 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB1 periph A SPI1_MOSI pin */
649							 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB2 periph A SPI1_SPCK pin */
650					};
651				};
652
653				i2c_gpio0 {
654					pinctrl_i2c_gpio0: i2c_gpio0-0 {
655						atmel,pins =
656							<AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE
657							 AT91_PIOA 24 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
658					};
659				};
660
661				tcb0 {
662					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
663						atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
664					};
665
666					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
667						atmel,pins = <AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;
668					};
669
670					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
671						atmel,pins = <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
672					};
673
674					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
675						atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
676					};
677
678					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
679						atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
680					};
681
682					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
683						atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
684					};
685
686					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
687						atmel,pins = <AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
688					};
689
690					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
691						atmel,pins = <AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;
692					};
693
694					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
695						atmel,pins = <AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
696					};
697				};
698
699				tcb1 {
700					pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
701						atmel,pins = <AT91_PIOB 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
702					};
703
704					pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
705						atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
706					};
707
708					pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
709						atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
710					};
711
712					pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
713						atmel,pins = <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;
714					};
715
716					pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
717						atmel,pins = <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
718					};
719
720					pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
721						atmel,pins = <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE>;
722					};
723
724					pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
725						atmel,pins = <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
726					};
727
728					pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
729						atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
730					};
731
732					pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
733						atmel,pins = <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
734					};
735				};
736
737				pioA: gpio@fffff400 {
738					compatible = "atmel,at91rm9200-gpio";
739					reg = <0xfffff400 0x200>;
740					interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
741					#gpio-cells = <2>;
742					gpio-controller;
743					interrupt-controller;
744					#interrupt-cells = <2>;
745					clocks = <&pioA_clk>;
746				};
747
748				pioB: gpio@fffff600 {
749					compatible = "atmel,at91rm9200-gpio";
750					reg = <0xfffff600 0x200>;
751					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
752					#gpio-cells = <2>;
753					gpio-controller;
754					interrupt-controller;
755					#interrupt-cells = <2>;
756					clocks = <&pioB_clk>;
757				};
758
759				pioC: gpio@fffff800 {
760					compatible = "atmel,at91rm9200-gpio";
761					reg = <0xfffff800 0x200>;
762					interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
763					#gpio-cells = <2>;
764					gpio-controller;
765					interrupt-controller;
766					#interrupt-cells = <2>;
767					clocks = <&pioC_clk>;
768				};
769			};
770
771			dbgu: serial@fffff200 {
772				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
773				reg = <0xfffff200 0x200>;
774				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
775				pinctrl-names = "default";
776				pinctrl-0 = <&pinctrl_dbgu>;
777				clocks = <&mck>;
778				clock-names = "usart";
779				status = "disabled";
780			};
781
782			usart0: serial@fffb0000 {
783				compatible = "atmel,at91sam9260-usart";
784				reg = <0xfffb0000 0x200>;
785				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
786				atmel,use-dma-rx;
787				atmel,use-dma-tx;
788				pinctrl-names = "default";
789				pinctrl-0 = <&pinctrl_usart0>;
790				clocks = <&usart0_clk>;
791				clock-names = "usart";
792				status = "disabled";
793			};
794
795			usart1: serial@fffb4000 {
796				compatible = "atmel,at91sam9260-usart";
797				reg = <0xfffb4000 0x200>;
798				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
799				atmel,use-dma-rx;
800				atmel,use-dma-tx;
801				pinctrl-names = "default";
802				pinctrl-0 = <&pinctrl_usart1>;
803				clocks = <&usart1_clk>;
804				clock-names = "usart";
805				status = "disabled";
806			};
807
808			usart2: serial@fffb8000 {
809				compatible = "atmel,at91sam9260-usart";
810				reg = <0xfffb8000 0x200>;
811				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
812				atmel,use-dma-rx;
813				atmel,use-dma-tx;
814				pinctrl-names = "default";
815				pinctrl-0 = <&pinctrl_usart2>;
816				clocks = <&usart2_clk>;
817				clock-names = "usart";
818				status = "disabled";
819			};
820
821			usart3: serial@fffd0000 {
822				compatible = "atmel,at91sam9260-usart";
823				reg = <0xfffd0000 0x200>;
824				interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>;
825				atmel,use-dma-rx;
826				atmel,use-dma-tx;
827				pinctrl-names = "default";
828				pinctrl-0 = <&pinctrl_usart3>;
829				clocks = <&usart3_clk>;
830				clock-names = "usart";
831				status = "disabled";
832			};
833
834			uart0: serial@fffd4000 {
835				compatible = "atmel,at91sam9260-usart";
836				reg = <0xfffd4000 0x200>;
837				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 5>;
838				atmel,use-dma-rx;
839				atmel,use-dma-tx;
840				pinctrl-names = "default";
841				pinctrl-0 = <&pinctrl_uart0>;
842				clocks = <&uart0_clk>;
843				clock-names = "usart";
844				status = "disabled";
845			};
846
847			uart1: serial@fffd8000 {
848				compatible = "atmel,at91sam9260-usart";
849				reg = <0xfffd8000 0x200>;
850				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>;
851				atmel,use-dma-rx;
852				atmel,use-dma-tx;
853				pinctrl-names = "default";
854				pinctrl-0 = <&pinctrl_uart1>;
855				clocks = <&uart1_clk>;
856				clock-names = "usart";
857				status = "disabled";
858			};
859
860			macb0: ethernet@fffc4000 {
861				compatible = "cdns,at91sam9260-macb", "cdns,macb";
862				reg = <0xfffc4000 0x100>;
863				interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
864				pinctrl-names = "default";
865				pinctrl-0 = <&pinctrl_macb_rmii>;
866				clocks = <&macb0_clk>, <&macb0_clk>;
867				clock-names = "hclk", "pclk";
868				status = "disabled";
869			};
870
871			usb1: gadget@fffa4000 {
872				compatible = "atmel,at91sam9260-udc";
873				reg = <0xfffa4000 0x4000>;
874				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
875				clocks = <&udc_clk>, <&udpck>;
876				clock-names = "pclk", "hclk";
877				status = "disabled";
878			};
879
880			i2c0: i2c@fffac000 {
881				compatible = "atmel,at91sam9260-i2c";
882				reg = <0xfffac000 0x100>;
883				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
884				#address-cells = <1>;
885				#size-cells = <0>;
886				clocks = <&twi0_clk>;
887				status = "disabled";
888			};
889
890			mmc0: mmc@fffa8000 {
891				compatible = "atmel,hsmci";
892				reg = <0xfffa8000 0x600>;
893				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
894				#address-cells = <1>;
895				#size-cells = <0>;
896				pinctrl-names = "default";
897				clocks = <&mci0_clk>;
898				clock-names = "mci_clk";
899				status = "disabled";
900			};
901
902			ssc0: ssc@fffbc000 {
903				compatible = "atmel,at91rm9200-ssc";
904				reg = <0xfffbc000 0x4000>;
905				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
906				pinctrl-names = "default";
907				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
908				clocks = <&ssc0_clk>;
909				clock-names = "pclk";
910				status = "disabled";
911			};
912
913			spi0: spi@fffc8000 {
914				#address-cells = <1>;
915				#size-cells = <0>;
916				compatible = "atmel,at91rm9200-spi";
917				reg = <0xfffc8000 0x200>;
918				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
919				pinctrl-names = "default";
920				pinctrl-0 = <&pinctrl_spi0>;
921				clocks = <&spi0_clk>;
922				clock-names = "spi_clk";
923				status = "disabled";
924			};
925
926			spi1: spi@fffcc000 {
927				#address-cells = <1>;
928				#size-cells = <0>;
929				compatible = "atmel,at91rm9200-spi";
930				reg = <0xfffcc000 0x200>;
931				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
932				pinctrl-names = "default";
933				pinctrl-0 = <&pinctrl_spi1>;
934				clocks = <&spi1_clk>;
935				clock-names = "spi_clk";
936				status = "disabled";
937			};
938
939			adc0: adc@fffe0000 {
940				#address-cells = <1>;
941				#size-cells = <0>;
942				compatible = "atmel,at91sam9260-adc";
943				reg = <0xfffe0000 0x100>;
944				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 0>;
945				clocks = <&adc_clk>, <&adc_op_clk>;
946				clock-names = "adc_clk", "adc_op_clk";
947				atmel,adc-use-external-triggers;
948				atmel,adc-channels-used = <0xf>;
949				atmel,adc-vref = <3300>;
950				atmel,adc-startup-time = <15>;
951				atmel,adc-res = <8 10>;
952				atmel,adc-res-names = "lowres", "highres";
953				atmel,adc-use-res = "highres";
954
955				trigger0 {
956					trigger-name = "timer-counter-0";
957					trigger-value = <0x1>;
958				};
959				trigger1 {
960					trigger-name = "timer-counter-1";
961					trigger-value = <0x3>;
962				};
963
964				trigger2 {
965					trigger-name = "timer-counter-2";
966					trigger-value = <0x5>;
967				};
968
969				trigger3 {
970					trigger-name = "external";
971					trigger-value = <0xd>;
972					trigger-external;
973				};
974			};
975
976			rtc@fffffd20 {
977				compatible = "atmel,at91sam9260-rtt";
978				reg = <0xfffffd20 0x10>;
979				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
980				clocks = <&clk32k>;
981				status = "disabled";
982			};
983
984			watchdog@fffffd40 {
985				compatible = "atmel,at91sam9260-wdt";
986				reg = <0xfffffd40 0x10>;
987				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
988				clocks = <&clk32k>;
989				atmel,watchdog-type = "hardware";
990				atmel,reset-type = "all";
991				atmel,dbg-halt;
992				status = "disabled";
993			};
994
995			gpbr: syscon@fffffd50 {
996				compatible = "atmel,at91sam9260-gpbr", "syscon";
997				reg = <0xfffffd50 0x10>;
998				status = "disabled";
999			};
1000		};
1001
1002		usb0: ohci@500000 {
1003			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1004			reg = <0x00500000 0x100000>;
1005			interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
1006			clocks = <&ohci_clk>, <&ohci_clk>, <&uhpck>;
1007			clock-names = "ohci_clk", "hclk", "uhpck";
1008			status = "disabled";
1009		};
1010
1011		ebi: ebi@10000000 {
1012			compatible = "atmel,at91sam9260-ebi";
1013			#address-cells = <2>;
1014			#size-cells = <1>;
1015			atmel,smc = <&smc>;
1016			atmel,matrix = <&matrix>;
1017			reg = <0x10000000 0x80000000>;
1018			ranges = <0x0 0x0 0x10000000 0x10000000
1019				  0x1 0x0 0x20000000 0x10000000
1020				  0x2 0x0 0x30000000 0x10000000
1021				  0x3 0x0 0x40000000 0x10000000
1022				  0x4 0x0 0x50000000 0x10000000
1023				  0x5 0x0 0x60000000 0x10000000
1024				  0x6 0x0 0x70000000 0x10000000
1025				  0x7 0x0 0x80000000 0x10000000>;
1026			clocks = <&mck>;
1027			status = "disabled";
1028
1029			nand_controller: nand-controller {
1030				compatible = "atmel,at91sam9260-nand-controller";
1031				#address-cells = <2>;
1032				#size-cells = <1>;
1033				ranges;
1034				status = "disabled";
1035			};
1036		};
1037	};
1038
1039	i2c-gpio-0 {
1040		compatible = "i2c-gpio";
1041		gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
1042			 &pioA 24 GPIO_ACTIVE_HIGH /* scl */
1043			>;
1044		i2c-gpio,sda-open-drain;
1045		i2c-gpio,scl-open-drain;
1046		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
1047		#address-cells = <1>;
1048		#size-cells = <0>;
1049		pinctrl-names = "default";
1050		pinctrl-0 = <&pinctrl_i2c_gpio0>;
1051		status = "disabled";
1052	};
1053};
1054