1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * at91sam9260.dtsi - Device Tree Include file for AT91SAM9260 family SoC
4 *
5 *  Copyright (C) 2011 Atmel,
6 *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>,
7 *                2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
8 */
9
10#include <dt-bindings/pinctrl/at91.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/clock/at91.h>
14
15/ {
16	#address-cells = <1>;
17	#size-cells = <1>;
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		device_type = "memory";
50		reg = <0x20000000 0x04000000>;
51	};
52
53	clocks {
54		slow_xtal: slow_xtal {
55			compatible = "fixed-clock";
56			#clock-cells = <0>;
57			clock-frequency = <0>;
58		};
59
60		main_xtal: main_xtal {
61			compatible = "fixed-clock";
62			#clock-cells = <0>;
63			clock-frequency = <0>;
64		};
65
66		adc_op_clk: adc_op_clk{
67			compatible = "fixed-clock";
68			#clock-cells = <0>;
69			clock-frequency = <5000000>;
70		};
71	};
72
73	sram0: sram@2ff000 {
74		compatible = "mmio-sram";
75		reg = <0x002ff000 0x2000>;
76	};
77
78	ahb {
79		compatible = "simple-bus";
80		#address-cells = <1>;
81		#size-cells = <1>;
82		ranges;
83
84		apb {
85			compatible = "simple-bus";
86			#address-cells = <1>;
87			#size-cells = <1>;
88			ranges;
89
90			aic: interrupt-controller@fffff000 {
91				#interrupt-cells = <3>;
92				compatible = "atmel,at91rm9200-aic";
93				interrupt-controller;
94				reg = <0xfffff000 0x200>;
95				atmel,external-irqs = <29 30 31>;
96			};
97
98			ramc0: ramc@ffffea00 {
99				compatible = "atmel,at91sam9260-sdramc";
100				reg = <0xffffea00 0x200>;
101			};
102
103			smc: smc@ffffec00 {
104				compatible = "atmel,at91sam9260-smc", "syscon";
105				reg = <0xffffec00 0x200>;
106			};
107
108			matrix: matrix@ffffee00 {
109				compatible = "atmel,at91sam9260-matrix", "syscon";
110				reg = <0xffffee00 0x200>;
111			};
112
113			pmc: pmc@fffffc00 {
114				compatible = "atmel,at91sam9260-pmc", "syscon";
115				reg = <0xfffffc00 0x100>;
116				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
117				#clock-cells = <2>;
118				clocks = <&slow_xtal>, <&main_xtal>;
119				clock-names = "slow_xtal", "main_xtal";
120			};
121
122			rstc@fffffd00 {
123				compatible = "atmel,at91sam9260-rstc";
124				reg = <0xfffffd00 0x10>;
125				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
126			};
127
128			shdwc@fffffd10 {
129				compatible = "atmel,at91sam9260-shdwc";
130				reg = <0xfffffd10 0x10>;
131				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
132			};
133
134			pit: timer@fffffd30 {
135				compatible = "atmel,at91sam9260-pit";
136				reg = <0xfffffd30 0xf>;
137				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
138				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
139			};
140
141			tcb0: timer@fffa0000 {
142				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
143				#address-cells = <1>;
144				#size-cells = <0>;
145				reg = <0xfffa0000 0x100>;
146				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
147					      18 IRQ_TYPE_LEVEL_HIGH 0
148					      19 IRQ_TYPE_LEVEL_HIGH 0>;
149				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 19>, <&pmc PMC_TYPE_CORE PMC_SLOW>;
150				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
151			};
152
153			tcb1: timer@fffdc000 {
154				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
155				#address-cells = <1>;
156				#size-cells = <0>;
157				reg = <0xfffdc000 0x100>;
158				interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0
159					      27 IRQ_TYPE_LEVEL_HIGH 0
160					      28 IRQ_TYPE_LEVEL_HIGH 0>;
161				clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 28>, <&pmc PMC_TYPE_CORE PMC_SLOW>;
162				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
163			};
164
165			pinctrl@fffff400 {
166				#address-cells = <1>;
167				#size-cells = <1>;
168				compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
169				ranges = <0xfffff400 0xfffff400 0x600>;
170
171				atmel,mux-mask = <
172				      /*    A         B     */
173				       0xffffffff 0xffc00c3b  /* pioA */
174				       0xffffffff 0x7fff3ccf  /* pioB */
175				       0xffffffff 0x007fffff  /* pioC */
176				      >;
177
178				/* shared pinctrl settings */
179				dbgu {
180					pinctrl_dbgu: dbgu-0 {
181						atmel,pins =
182							<AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
183							 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
184					};
185				};
186
187				usart0 {
188					pinctrl_usart0: usart0-0 {
189						atmel,pins =
190							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
191							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
192					};
193
194					pinctrl_usart0_rts: usart0_rts-0 {
195						atmel,pins =
196							<AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB26 periph A */
197					};
198
199					pinctrl_usart0_cts: usart0_cts-0 {
200						atmel,pins =
201							<AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB27 periph A */
202					};
203
204					pinctrl_usart0_dtr_dsr: usart0_dtr_dsr-0 {
205						atmel,pins =
206							<AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB24 periph A */
207							 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB22 periph A */
208					};
209
210					pinctrl_usart0_dcd: usart0_dcd-0 {
211						atmel,pins =
212							<AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB23 periph A */
213					};
214
215					pinctrl_usart0_ri: usart0_ri-0 {
216						atmel,pins =
217							<AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB25 periph A */
218					};
219				};
220
221				usart1 {
222					pinctrl_usart1: usart1-0 {
223						atmel,pins =
224							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE
225							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
226					};
227
228					pinctrl_usart1_rts: usart1_rts-0 {
229						atmel,pins =
230							<AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB28 periph A */
231					};
232
233					pinctrl_usart1_cts: usart1_cts-0 {
234						atmel,pins =
235							<AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB29 periph A */
236					};
237				};
238
239				usart2 {
240					pinctrl_usart2: usart2-0 {
241						atmel,pins =
242							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE
243							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
244					};
245
246					pinctrl_usart2_rts: usart2_rts-0 {
247						atmel,pins =
248							<AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA4 periph A */
249					};
250
251					pinctrl_usart2_cts: usart2_cts-0 {
252						atmel,pins =
253							<AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA5 periph A */
254					};
255				};
256
257				usart3 {
258					pinctrl_usart3: usart3-0 {
259						atmel,pins =
260							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE
261							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
262					};
263
264					pinctrl_usart3_rts: usart3_rts-0 {
265						atmel,pins =
266							<AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
267					};
268
269					pinctrl_usart3_cts: usart3_cts-0 {
270						atmel,pins =
271							<AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
272					};
273				};
274
275				uart0 {
276					pinctrl_uart0: uart0-0 {
277						atmel,pins =
278							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_NONE
279							 AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
280					};
281				};
282
283				uart1 {
284					pinctrl_uart1: uart1-0 {
285						atmel,pins =
286							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE
287							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
288					};
289				};
290
291				nand {
292					pinctrl_nand_rb: nand-rb-0 {
293						atmel,pins =
294							<AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
295					};
296
297					pinctrl_nand_cs: nand-cs-0 {
298						atmel,pins =
299							 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
300					};
301				};
302
303				macb {
304					pinctrl_macb_rmii: macb_rmii-0 {
305						atmel,pins =
306							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA12 periph A */
307							 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA13 periph A */
308							 AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA14 periph A */
309							 AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA15 periph A */
310							 AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA16 periph A */
311							 AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA17 periph A */
312							 AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA18 periph A */
313							 AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA19 periph A */
314							 AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA20 periph A */
315							 AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA21 periph A */
316					};
317
318					pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
319						atmel,pins =
320							<AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
321							 AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA23 periph B */
322							 AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA24 periph B */
323							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
324							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
325							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
326							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
327							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
328					};
329
330					pinctrl_macb_rmii_mii_alt: macb_rmii_mii-1 {
331						atmel,pins =
332							<AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA10 periph B */
333							 AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA11 periph B */
334							 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
335							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
336							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
337							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
338							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
339							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
340					};
341				};
342
343				mmc0 {
344					pinctrl_mmc0_clk: mmc0_clk-0 {
345						atmel,pins =
346							<AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA8 periph A */
347					};
348
349					pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
350						atmel,pins =
351							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA7 periph A with pullup */
352							 AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA6 periph A with pullup */
353					};
354
355					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
356						atmel,pins =
357							<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA9 periph A with pullup */
358							 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA10 periph A with pullup */
359							 AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA11 periph A with pullup */
360					};
361
362					pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
363						atmel,pins =
364							<AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA1 periph B with pullup */
365							 AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA0 periph B with pullup */
366					};
367
368					pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
369						atmel,pins =
370							<AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA5 periph B with pullup */
371							 AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA4 periph B with pullup */
372							 AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA3 periph B with pullup */
373					};
374				};
375
376				ssc0 {
377					pinctrl_ssc0_tx: ssc0_tx-0 {
378						atmel,pins =
379							<AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB16 periph A */
380							 AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB17 periph A */
381							 AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB18 periph A */
382					};
383
384					pinctrl_ssc0_rx: ssc0_rx-0 {
385						atmel,pins =
386							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB19 periph A */
387							 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB20 periph A */
388							 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB21 periph A */
389					};
390				};
391
392				spi0 {
393					pinctrl_spi0: spi0-0 {
394						atmel,pins =
395							<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA0 periph A SPI0_MISO pin */
396							 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA1 periph A SPI0_MOSI pin */
397							 AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA2 periph A SPI0_SPCK pin */
398					};
399				};
400
401				spi1 {
402					pinctrl_spi1: spi1-0 {
403						atmel,pins =
404							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB0 periph A SPI1_MISO pin */
405							 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB1 periph A SPI1_MOSI pin */
406							 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB2 periph A SPI1_SPCK pin */
407					};
408				};
409
410				i2c_gpio0 {
411					pinctrl_i2c_gpio0: i2c_gpio0-0 {
412						atmel,pins =
413							<AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE
414							 AT91_PIOA 24 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
415					};
416				};
417
418				tcb0 {
419					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
420						atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
421					};
422
423					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
424						atmel,pins = <AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;
425					};
426
427					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
428						atmel,pins = <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
429					};
430
431					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
432						atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
433					};
434
435					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
436						atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
437					};
438
439					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
440						atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
441					};
442
443					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
444						atmel,pins = <AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
445					};
446
447					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
448						atmel,pins = <AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;
449					};
450
451					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
452						atmel,pins = <AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
453					};
454				};
455
456				tcb1 {
457					pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
458						atmel,pins = <AT91_PIOB 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
459					};
460
461					pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
462						atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
463					};
464
465					pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
466						atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
467					};
468
469					pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
470						atmel,pins = <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;
471					};
472
473					pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
474						atmel,pins = <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
475					};
476
477					pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
478						atmel,pins = <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE>;
479					};
480
481					pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
482						atmel,pins = <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
483					};
484
485					pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
486						atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
487					};
488
489					pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
490						atmel,pins = <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
491					};
492				};
493
494				pioA: gpio@fffff400 {
495					compatible = "atmel,at91rm9200-gpio";
496					reg = <0xfffff400 0x200>;
497					interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
498					#gpio-cells = <2>;
499					gpio-controller;
500					interrupt-controller;
501					#interrupt-cells = <2>;
502					clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
503				};
504
505				pioB: gpio@fffff600 {
506					compatible = "atmel,at91rm9200-gpio";
507					reg = <0xfffff600 0x200>;
508					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
509					#gpio-cells = <2>;
510					gpio-controller;
511					interrupt-controller;
512					#interrupt-cells = <2>;
513					clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
514				};
515
516				pioC: gpio@fffff800 {
517					compatible = "atmel,at91rm9200-gpio";
518					reg = <0xfffff800 0x200>;
519					interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
520					#gpio-cells = <2>;
521					gpio-controller;
522					interrupt-controller;
523					#interrupt-cells = <2>;
524					clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
525				};
526			};
527
528			dbgu: serial@fffff200 {
529				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
530				reg = <0xfffff200 0x200>;
531				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
532				pinctrl-names = "default";
533				pinctrl-0 = <&pinctrl_dbgu>;
534				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
535				clock-names = "usart";
536				status = "disabled";
537			};
538
539			usart0: serial@fffb0000 {
540				compatible = "atmel,at91sam9260-usart";
541				reg = <0xfffb0000 0x200>;
542				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
543				atmel,use-dma-rx;
544				atmel,use-dma-tx;
545				pinctrl-names = "default";
546				pinctrl-0 = <&pinctrl_usart0>;
547				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
548				clock-names = "usart";
549				status = "disabled";
550			};
551
552			usart1: serial@fffb4000 {
553				compatible = "atmel,at91sam9260-usart";
554				reg = <0xfffb4000 0x200>;
555				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
556				atmel,use-dma-rx;
557				atmel,use-dma-tx;
558				pinctrl-names = "default";
559				pinctrl-0 = <&pinctrl_usart1>;
560				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
561				clock-names = "usart";
562				status = "disabled";
563			};
564
565			usart2: serial@fffb8000 {
566				compatible = "atmel,at91sam9260-usart";
567				reg = <0xfffb8000 0x200>;
568				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
569				atmel,use-dma-rx;
570				atmel,use-dma-tx;
571				pinctrl-names = "default";
572				pinctrl-0 = <&pinctrl_usart2>;
573				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
574				clock-names = "usart";
575				status = "disabled";
576			};
577
578			usart3: serial@fffd0000 {
579				compatible = "atmel,at91sam9260-usart";
580				reg = <0xfffd0000 0x200>;
581				interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>;
582				atmel,use-dma-rx;
583				atmel,use-dma-tx;
584				pinctrl-names = "default";
585				pinctrl-0 = <&pinctrl_usart3>;
586				clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
587				clock-names = "usart";
588				status = "disabled";
589			};
590
591			uart0: serial@fffd4000 {
592				compatible = "atmel,at91sam9260-usart";
593				reg = <0xfffd4000 0x200>;
594				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 5>;
595				atmel,use-dma-rx;
596				atmel,use-dma-tx;
597				pinctrl-names = "default";
598				pinctrl-0 = <&pinctrl_uart0>;
599				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
600				clock-names = "usart";
601				status = "disabled";
602			};
603
604			uart1: serial@fffd8000 {
605				compatible = "atmel,at91sam9260-usart";
606				reg = <0xfffd8000 0x200>;
607				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>;
608				atmel,use-dma-rx;
609				atmel,use-dma-tx;
610				pinctrl-names = "default";
611				pinctrl-0 = <&pinctrl_uart1>;
612				clocks = <&pmc PMC_TYPE_PERIPHERAL 25>;
613				clock-names = "usart";
614				status = "disabled";
615			};
616
617			macb0: ethernet@fffc4000 {
618				compatible = "cdns,at91sam9260-macb", "cdns,macb";
619				reg = <0xfffc4000 0x100>;
620				interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
621				pinctrl-names = "default";
622				pinctrl-0 = <&pinctrl_macb_rmii>;
623				clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_PERIPHERAL 21>;
624				clock-names = "hclk", "pclk";
625				status = "disabled";
626			};
627
628			usb1: gadget@fffa4000 {
629				compatible = "atmel,at91sam9260-udc";
630				reg = <0xfffa4000 0x4000>;
631				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
632				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>, <&pmc PMC_TYPE_SYSTEM 7>;
633				clock-names = "pclk", "hclk";
634				status = "disabled";
635			};
636
637			i2c0: i2c@fffac000 {
638				compatible = "atmel,at91sam9260-i2c";
639				reg = <0xfffac000 0x100>;
640				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
641				#address-cells = <1>;
642				#size-cells = <0>;
643				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
644				status = "disabled";
645			};
646
647			mmc0: mmc@fffa8000 {
648				compatible = "atmel,hsmci";
649				reg = <0xfffa8000 0x600>;
650				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
651				#address-cells = <1>;
652				#size-cells = <0>;
653				pinctrl-names = "default";
654				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
655				clock-names = "mci_clk";
656				status = "disabled";
657			};
658
659			ssc0: ssc@fffbc000 {
660				compatible = "atmel,at91rm9200-ssc";
661				reg = <0xfffbc000 0x4000>;
662				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
663				pinctrl-names = "default";
664				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
665				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
666				clock-names = "pclk";
667				status = "disabled";
668			};
669
670			spi0: spi@fffc8000 {
671				#address-cells = <1>;
672				#size-cells = <0>;
673				compatible = "atmel,at91rm9200-spi";
674				reg = <0xfffc8000 0x200>;
675				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
676				pinctrl-names = "default";
677				pinctrl-0 = <&pinctrl_spi0>;
678				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
679				clock-names = "spi_clk";
680				status = "disabled";
681			};
682
683			spi1: spi@fffcc000 {
684				#address-cells = <1>;
685				#size-cells = <0>;
686				compatible = "atmel,at91rm9200-spi";
687				reg = <0xfffcc000 0x200>;
688				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
689				pinctrl-names = "default";
690				pinctrl-0 = <&pinctrl_spi1>;
691				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
692				clock-names = "spi_clk";
693				status = "disabled";
694			};
695
696			adc0: adc@fffe0000 {
697				#address-cells = <1>;
698				#size-cells = <0>;
699				compatible = "atmel,at91sam9260-adc";
700				reg = <0xfffe0000 0x100>;
701				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 0>;
702				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>, <&adc_op_clk>;
703				clock-names = "adc_clk", "adc_op_clk";
704				atmel,adc-use-external-triggers;
705				atmel,adc-channels-used = <0xf>;
706				atmel,adc-vref = <3300>;
707				atmel,adc-startup-time = <15>;
708				atmel,adc-res = <8 10>;
709				atmel,adc-res-names = "lowres", "highres";
710				atmel,adc-use-res = "highres";
711
712				trigger0 {
713					trigger-name = "timer-counter-0";
714					trigger-value = <0x1>;
715				};
716				trigger1 {
717					trigger-name = "timer-counter-1";
718					trigger-value = <0x3>;
719				};
720
721				trigger2 {
722					trigger-name = "timer-counter-2";
723					trigger-value = <0x5>;
724				};
725
726				trigger3 {
727					trigger-name = "external";
728					trigger-value = <0xd>;
729					trigger-external;
730				};
731			};
732
733			rtc@fffffd20 {
734				compatible = "atmel,at91sam9260-rtt";
735				reg = <0xfffffd20 0x10>;
736				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
737				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
738				status = "disabled";
739			};
740
741			watchdog@fffffd40 {
742				compatible = "atmel,at91sam9260-wdt";
743				reg = <0xfffffd40 0x10>;
744				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
745				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
746				atmel,watchdog-type = "hardware";
747				atmel,reset-type = "all";
748				atmel,dbg-halt;
749				status = "disabled";
750			};
751
752			gpbr: syscon@fffffd50 {
753				compatible = "atmel,at91sam9260-gpbr", "syscon";
754				reg = <0xfffffd50 0x10>;
755				status = "disabled";
756			};
757		};
758
759		usb0: ohci@500000 {
760			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
761			reg = <0x00500000 0x100000>;
762			interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
763			clocks = <&pmc PMC_TYPE_PERIPHERAL 20>, <&pmc PMC_TYPE_PERIPHERAL 20>, <&pmc PMC_TYPE_SYSTEM 6>;
764			clock-names = "ohci_clk", "hclk", "uhpck";
765			status = "disabled";
766		};
767
768		ebi: ebi@10000000 {
769			compatible = "atmel,at91sam9260-ebi";
770			#address-cells = <2>;
771			#size-cells = <1>;
772			atmel,smc = <&smc>;
773			atmel,matrix = <&matrix>;
774			reg = <0x10000000 0x80000000>;
775			ranges = <0x0 0x0 0x10000000 0x10000000
776				  0x1 0x0 0x20000000 0x10000000
777				  0x2 0x0 0x30000000 0x10000000
778				  0x3 0x0 0x40000000 0x10000000
779				  0x4 0x0 0x50000000 0x10000000
780				  0x5 0x0 0x60000000 0x10000000
781				  0x6 0x0 0x70000000 0x10000000
782				  0x7 0x0 0x80000000 0x10000000>;
783			clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
784			status = "disabled";
785
786			nand_controller: nand-controller {
787				compatible = "atmel,at91sam9260-nand-controller";
788				#address-cells = <2>;
789				#size-cells = <1>;
790				ranges;
791				status = "disabled";
792			};
793		};
794	};
795
796	i2c-gpio-0 {
797		compatible = "i2c-gpio";
798		gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
799			 &pioA 24 GPIO_ACTIVE_HIGH /* scl */
800			>;
801		i2c-gpio,sda-open-drain;
802		i2c-gpio,scl-open-drain;
803		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
804		#address-cells = <1>;
805		#size-cells = <0>;
806		pinctrl-names = "default";
807		pinctrl-0 = <&pinctrl_i2c_gpio0>;
808		status = "disabled";
809	};
810};
811