xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/at91sam9x5.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * at91sam9x5.dtsi - Device Tree Include file for AT91SAM9x5 family SoC
3*4882a593Smuzhiyun *                   applies to AT91SAM9G15, AT91SAM9G25, AT91SAM9G35,
4*4882a593Smuzhiyun *                   AT91SAM9X25, AT91SAM9X35 SoC
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun *  Copyright (C) 2012 Atmel,
7*4882a593Smuzhiyun *                2012 Nicolas Ferre <nicolas.ferre@atmel.com>
8*4882a593Smuzhiyun *
9*4882a593Smuzhiyun * Licensed under GPLv2 or later.
10*4882a593Smuzhiyun */
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun#include "skeleton.dtsi"
13*4882a593Smuzhiyun#include <dt-bindings/dma/at91.h>
14*4882a593Smuzhiyun#include <dt-bindings/pinctrl/at91.h>
15*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
16*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
17*4882a593Smuzhiyun#include <dt-bindings/clock/at91.h>
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun/ {
20*4882a593Smuzhiyun	model = "Atmel AT91SAM9x5 family SoC";
21*4882a593Smuzhiyun	compatible = "atmel,at91sam9x5";
22*4882a593Smuzhiyun	interrupt-parent = <&aic>;
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	aliases {
25*4882a593Smuzhiyun		serial0 = &dbgu;
26*4882a593Smuzhiyun		serial1 = &usart0;
27*4882a593Smuzhiyun		serial2 = &usart1;
28*4882a593Smuzhiyun		serial3 = &usart2;
29*4882a593Smuzhiyun		gpio0 = &pioA;
30*4882a593Smuzhiyun		gpio1 = &pioB;
31*4882a593Smuzhiyun		gpio2 = &pioC;
32*4882a593Smuzhiyun		gpio3 = &pioD;
33*4882a593Smuzhiyun		tcb0 = &tcb0;
34*4882a593Smuzhiyun		tcb1 = &tcb1;
35*4882a593Smuzhiyun		i2c0 = &i2c0;
36*4882a593Smuzhiyun		i2c1 = &i2c1;
37*4882a593Smuzhiyun		i2c2 = &i2c2;
38*4882a593Smuzhiyun		ssc0 = &ssc0;
39*4882a593Smuzhiyun		pwm0 = &pwm0;
40*4882a593Smuzhiyun		spi0 = &spi0;
41*4882a593Smuzhiyun	};
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	cpus {
44*4882a593Smuzhiyun		#address-cells = <0>;
45*4882a593Smuzhiyun		#size-cells = <0>;
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun		cpu {
48*4882a593Smuzhiyun			compatible = "arm,arm926ej-s";
49*4882a593Smuzhiyun			device_type = "cpu";
50*4882a593Smuzhiyun		};
51*4882a593Smuzhiyun	};
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	memory {
54*4882a593Smuzhiyun		reg = <0x20000000 0x10000000>;
55*4882a593Smuzhiyun	};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun	clocks {
58*4882a593Smuzhiyun		slow_xtal: slow_xtal {
59*4882a593Smuzhiyun			compatible = "fixed-clock";
60*4882a593Smuzhiyun			#clock-cells = <0>;
61*4882a593Smuzhiyun			clock-frequency = <0>;
62*4882a593Smuzhiyun		};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun		main_xtal: main_xtal {
65*4882a593Smuzhiyun			compatible = "fixed-clock";
66*4882a593Smuzhiyun			#clock-cells = <0>;
67*4882a593Smuzhiyun			clock-frequency = <0>;
68*4882a593Smuzhiyun		};
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun		adc_op_clk: adc_op_clk{
71*4882a593Smuzhiyun			compatible = "fixed-clock";
72*4882a593Smuzhiyun			#clock-cells = <0>;
73*4882a593Smuzhiyun			clock-frequency = <1000000>;
74*4882a593Smuzhiyun		};
75*4882a593Smuzhiyun	};
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun	sram: sram@00300000 {
78*4882a593Smuzhiyun		compatible = "mmio-sram";
79*4882a593Smuzhiyun		reg = <0x00300000 0x8000>;
80*4882a593Smuzhiyun	};
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	ahb {
83*4882a593Smuzhiyun		compatible = "simple-bus";
84*4882a593Smuzhiyun		#address-cells = <1>;
85*4882a593Smuzhiyun		#size-cells = <1>;
86*4882a593Smuzhiyun		ranges;
87*4882a593Smuzhiyun		u-boot,dm-pre-reloc;
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun		apb {
90*4882a593Smuzhiyun			compatible = "simple-bus";
91*4882a593Smuzhiyun			#address-cells = <1>;
92*4882a593Smuzhiyun			#size-cells = <1>;
93*4882a593Smuzhiyun			ranges;
94*4882a593Smuzhiyun			u-boot,dm-pre-reloc;
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun			aic: interrupt-controller@fffff000 {
97*4882a593Smuzhiyun				#interrupt-cells = <3>;
98*4882a593Smuzhiyun				compatible = "atmel,at91rm9200-aic";
99*4882a593Smuzhiyun				interrupt-controller;
100*4882a593Smuzhiyun				reg = <0xfffff000 0x200>;
101*4882a593Smuzhiyun				atmel,external-irqs = <31>;
102*4882a593Smuzhiyun			};
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun			ramc0: ramc@ffffe800 {
105*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-ddramc";
106*4882a593Smuzhiyun				reg = <0xffffe800 0x200>;
107*4882a593Smuzhiyun				clocks = <&ddrck>;
108*4882a593Smuzhiyun				clock-names = "ddrck";
109*4882a593Smuzhiyun			};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun			pmc: pmc@fffffc00 {
112*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-pmc", "syscon";
113*4882a593Smuzhiyun				reg = <0xfffffc00 0x200>;
114*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
115*4882a593Smuzhiyun				interrupt-controller;
116*4882a593Smuzhiyun				#address-cells = <1>;
117*4882a593Smuzhiyun				#size-cells = <0>;
118*4882a593Smuzhiyun				#interrupt-cells = <1>;
119*4882a593Smuzhiyun				u-boot,dm-pre-reloc;
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun				main_rc_osc: main_rc_osc {
122*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-main-rc-osc";
123*4882a593Smuzhiyun					#clock-cells = <0>;
124*4882a593Smuzhiyun					interrupts-extended = <&pmc AT91_PMC_MOSCRCS>;
125*4882a593Smuzhiyun					clock-frequency = <12000000>;
126*4882a593Smuzhiyun					clock-accuracy = <50000000>;
127*4882a593Smuzhiyun				};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun				main_osc: main_osc {
130*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-clk-main-osc";
131*4882a593Smuzhiyun					#clock-cells = <0>;
132*4882a593Smuzhiyun					interrupts-extended = <&pmc AT91_PMC_MOSCS>;
133*4882a593Smuzhiyun					clocks = <&main_xtal>;
134*4882a593Smuzhiyun				};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun				main: mainck {
137*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-main";
138*4882a593Smuzhiyun					#clock-cells = <0>;
139*4882a593Smuzhiyun					interrupts-extended = <&pmc AT91_PMC_MOSCSELS>;
140*4882a593Smuzhiyun					clocks = <&main_rc_osc>, <&main_osc>;
141*4882a593Smuzhiyun				};
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun				plla: pllack@0 {
144*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-clk-pll";
145*4882a593Smuzhiyun					#clock-cells = <0>;
146*4882a593Smuzhiyun					interrupts-extended = <&pmc AT91_PMC_LOCKA>;
147*4882a593Smuzhiyun					clocks = <&main>;
148*4882a593Smuzhiyun					reg = <0>;
149*4882a593Smuzhiyun					atmel,clk-input-range = <2000000 32000000>;
150*4882a593Smuzhiyun					#atmel,pll-clk-output-range-cells = <4>;
151*4882a593Smuzhiyun					atmel,pll-clk-output-ranges = <745000000 800000000 0 0
152*4882a593Smuzhiyun								       695000000 750000000 1 0
153*4882a593Smuzhiyun								       645000000 700000000 2 0
154*4882a593Smuzhiyun								       595000000 650000000 3 0
155*4882a593Smuzhiyun								       545000000 600000000 0 1
156*4882a593Smuzhiyun								       495000000 555000000 1 1
157*4882a593Smuzhiyun								       445000000 500000000 2 1
158*4882a593Smuzhiyun								       400000000 450000000 3 1>;
159*4882a593Smuzhiyun				};
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun				plladiv: plladivck {
162*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-plldiv";
163*4882a593Smuzhiyun					#clock-cells = <0>;
164*4882a593Smuzhiyun					clocks = <&plla>;
165*4882a593Smuzhiyun				};
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun				utmi: utmick {
168*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-utmi";
169*4882a593Smuzhiyun					#clock-cells = <0>;
170*4882a593Smuzhiyun					interrupts-extended = <&pmc AT91_PMC_LOCKU>;
171*4882a593Smuzhiyun					clocks = <&main>;
172*4882a593Smuzhiyun				};
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun				mck: masterck {
175*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-master";
176*4882a593Smuzhiyun					#clock-cells = <0>;
177*4882a593Smuzhiyun					interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
178*4882a593Smuzhiyun					clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
179*4882a593Smuzhiyun					atmel,clk-output-range = <0 133333333>;
180*4882a593Smuzhiyun					atmel,clk-divisors = <1 2 4 3>;
181*4882a593Smuzhiyun					atmel,master-clk-have-div3-pres;
182*4882a593Smuzhiyun					u-boot,dm-pre-reloc;
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun				};
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun				usb: usbck {
187*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-usb";
188*4882a593Smuzhiyun					#clock-cells = <0>;
189*4882a593Smuzhiyun					clocks = <&plladiv>, <&utmi>;
190*4882a593Smuzhiyun				};
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun				prog: progck {
193*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-programmable";
194*4882a593Smuzhiyun					#address-cells = <1>;
195*4882a593Smuzhiyun					#size-cells = <0>;
196*4882a593Smuzhiyun					interrupt-parent = <&pmc>;
197*4882a593Smuzhiyun					clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun					prog0: prog@0 {
200*4882a593Smuzhiyun						#clock-cells = <0>;
201*4882a593Smuzhiyun						reg = <0>;
202*4882a593Smuzhiyun						interrupts = <AT91_PMC_PCKRDY(0)>;
203*4882a593Smuzhiyun					};
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun					prog1: prog@1 {
206*4882a593Smuzhiyun						#clock-cells = <0>;
207*4882a593Smuzhiyun						reg = <1>;
208*4882a593Smuzhiyun						interrupts = <AT91_PMC_PCKRDY(1)>;
209*4882a593Smuzhiyun					};
210*4882a593Smuzhiyun				};
211*4882a593Smuzhiyun
212*4882a593Smuzhiyun				smd: smdclk {
213*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-smd";
214*4882a593Smuzhiyun					#clock-cells = <0>;
215*4882a593Smuzhiyun					clocks = <&plladiv>, <&utmi>;
216*4882a593Smuzhiyun				};
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun				systemck {
219*4882a593Smuzhiyun					compatible = "atmel,at91rm9200-clk-system";
220*4882a593Smuzhiyun					#address-cells = <1>;
221*4882a593Smuzhiyun					#size-cells = <0>;
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun					ddrck: ddrck@2 {
224*4882a593Smuzhiyun						#clock-cells = <0>;
225*4882a593Smuzhiyun						reg = <2>;
226*4882a593Smuzhiyun						clocks = <&mck>;
227*4882a593Smuzhiyun					};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun					smdck: smdck@4 {
230*4882a593Smuzhiyun						#clock-cells = <0>;
231*4882a593Smuzhiyun						reg = <4>;
232*4882a593Smuzhiyun						clocks = <&smd>;
233*4882a593Smuzhiyun					};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun					uhpck: uhpck@6 {
236*4882a593Smuzhiyun						#clock-cells = <0>;
237*4882a593Smuzhiyun						reg = <6>;
238*4882a593Smuzhiyun						clocks = <&usb>;
239*4882a593Smuzhiyun					};
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun					udpck: udpck@7 {
242*4882a593Smuzhiyun						#clock-cells = <0>;
243*4882a593Smuzhiyun						reg = <7>;
244*4882a593Smuzhiyun						clocks = <&usb>;
245*4882a593Smuzhiyun					};
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun					pck0: pck0@8 {
248*4882a593Smuzhiyun						#clock-cells = <0>;
249*4882a593Smuzhiyun						reg = <8>;
250*4882a593Smuzhiyun						clocks = <&prog0>;
251*4882a593Smuzhiyun					};
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun					pck1: pck1@9 {
254*4882a593Smuzhiyun						#clock-cells = <0>;
255*4882a593Smuzhiyun						reg = <9>;
256*4882a593Smuzhiyun						clocks = <&prog1>;
257*4882a593Smuzhiyun					};
258*4882a593Smuzhiyun				};
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun				periphck {
261*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-peripheral";
262*4882a593Smuzhiyun					#address-cells = <1>;
263*4882a593Smuzhiyun					#size-cells = <0>;
264*4882a593Smuzhiyun					clocks = <&mck>;
265*4882a593Smuzhiyun					u-boot,dm-pre-reloc;
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun
268*4882a593Smuzhiyun					pioAB_clk: pioAB_clk@2 {
269*4882a593Smuzhiyun						#clock-cells = <0>;
270*4882a593Smuzhiyun						reg = <2>;
271*4882a593Smuzhiyun					};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun					pioCD_clk: pioCD_clk@3 {
274*4882a593Smuzhiyun						#clock-cells = <0>;
275*4882a593Smuzhiyun						reg = <3>;
276*4882a593Smuzhiyun					};
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun					smd_clk: smd_clk@4 {
279*4882a593Smuzhiyun						#clock-cells = <0>;
280*4882a593Smuzhiyun						reg = <4>;
281*4882a593Smuzhiyun					};
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun					usart0_clk: usart0_clk@5 {
284*4882a593Smuzhiyun						#clock-cells = <0>;
285*4882a593Smuzhiyun						reg = <5>;
286*4882a593Smuzhiyun					};
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun					usart1_clk: usart1_clk@6 {
289*4882a593Smuzhiyun						#clock-cells = <0>;
290*4882a593Smuzhiyun						reg = <6>;
291*4882a593Smuzhiyun					};
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun					usart2_clk: usart2_clk@7 {
294*4882a593Smuzhiyun						#clock-cells = <0>;
295*4882a593Smuzhiyun						reg = <7>;
296*4882a593Smuzhiyun					};
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun					twi0_clk: twi0_clk@9 {
299*4882a593Smuzhiyun						reg = <9>;
300*4882a593Smuzhiyun						#clock-cells = <0>;
301*4882a593Smuzhiyun					};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun					twi1_clk: twi1_clk@10 {
304*4882a593Smuzhiyun						#clock-cells = <0>;
305*4882a593Smuzhiyun						reg = <10>;
306*4882a593Smuzhiyun					};
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun					twi2_clk: twi2_clk@11 {
309*4882a593Smuzhiyun						#clock-cells = <0>;
310*4882a593Smuzhiyun						reg = <11>;
311*4882a593Smuzhiyun					};
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun					mci0_clk: mci0_clk@12 {
314*4882a593Smuzhiyun						#clock-cells = <0>;
315*4882a593Smuzhiyun						reg = <12>;
316*4882a593Smuzhiyun					};
317*4882a593Smuzhiyun
318*4882a593Smuzhiyun					spi0_clk: spi0_clk@13 {
319*4882a593Smuzhiyun						#clock-cells = <0>;
320*4882a593Smuzhiyun						reg = <13>;
321*4882a593Smuzhiyun					};
322*4882a593Smuzhiyun
323*4882a593Smuzhiyun					spi1_clk: spi1_clk@14 {
324*4882a593Smuzhiyun						#clock-cells = <0>;
325*4882a593Smuzhiyun						reg = <14>;
326*4882a593Smuzhiyun					};
327*4882a593Smuzhiyun
328*4882a593Smuzhiyun					uart0_clk: uart0_clk@15 {
329*4882a593Smuzhiyun						#clock-cells = <0>;
330*4882a593Smuzhiyun						reg = <15>;
331*4882a593Smuzhiyun					};
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun					uart1_clk: uart1_clk@16 {
334*4882a593Smuzhiyun						#clock-cells = <0>;
335*4882a593Smuzhiyun						reg = <16>;
336*4882a593Smuzhiyun					};
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun					tcb0_clk: tcb0_clk@17 {
339*4882a593Smuzhiyun						#clock-cells = <0>;
340*4882a593Smuzhiyun						reg = <17>;
341*4882a593Smuzhiyun					};
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun					pwm_clk: pwm_clk@18 {
344*4882a593Smuzhiyun						#clock-cells = <0>;
345*4882a593Smuzhiyun						reg = <18>;
346*4882a593Smuzhiyun					};
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun					adc_clk: adc_clk@19 {
349*4882a593Smuzhiyun						#clock-cells = <0>;
350*4882a593Smuzhiyun						reg = <19>;
351*4882a593Smuzhiyun					};
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun					dma0_clk: dma0_clk@20 {
354*4882a593Smuzhiyun						#clock-cells = <0>;
355*4882a593Smuzhiyun						reg = <20>;
356*4882a593Smuzhiyun					};
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun					dma1_clk: dma1_clk@21 {
359*4882a593Smuzhiyun						#clock-cells = <0>;
360*4882a593Smuzhiyun						reg = <21>;
361*4882a593Smuzhiyun					};
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun					uhphs_clk: uhphs_clk@22 {
364*4882a593Smuzhiyun						#clock-cells = <0>;
365*4882a593Smuzhiyun						reg = <22>;
366*4882a593Smuzhiyun					};
367*4882a593Smuzhiyun
368*4882a593Smuzhiyun					udphs_clk: udphs_clk@23 {
369*4882a593Smuzhiyun						#clock-cells = <0>;
370*4882a593Smuzhiyun						reg = <23>;
371*4882a593Smuzhiyun					};
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun					mci1_clk: mci1_clk@26 {
374*4882a593Smuzhiyun						#clock-cells = <0>;
375*4882a593Smuzhiyun						reg = <26>;
376*4882a593Smuzhiyun					};
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun					ssc0_clk: ssc0_clk@28 {
379*4882a593Smuzhiyun						#clock-cells = <0>;
380*4882a593Smuzhiyun						reg = <28>;
381*4882a593Smuzhiyun					};
382*4882a593Smuzhiyun				};
383*4882a593Smuzhiyun			};
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun			rstc@fffffe00 {
386*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-rstc";
387*4882a593Smuzhiyun				reg = <0xfffffe00 0x10>;
388*4882a593Smuzhiyun				clocks = <&clk32k>;
389*4882a593Smuzhiyun			};
390*4882a593Smuzhiyun
391*4882a593Smuzhiyun			shdwc@fffffe10 {
392*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-shdwc";
393*4882a593Smuzhiyun				reg = <0xfffffe10 0x10>;
394*4882a593Smuzhiyun				clocks = <&clk32k>;
395*4882a593Smuzhiyun			};
396*4882a593Smuzhiyun
397*4882a593Smuzhiyun			pit: timer@fffffe30 {
398*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-pit";
399*4882a593Smuzhiyun				reg = <0xfffffe30 0xf>;
400*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
401*4882a593Smuzhiyun				clocks = <&mck>;
402*4882a593Smuzhiyun			};
403*4882a593Smuzhiyun
404*4882a593Smuzhiyun			sckc@fffffe50 {
405*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-sckc";
406*4882a593Smuzhiyun				reg = <0xfffffe50 0x4>;
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun				slow_osc: slow_osc {
409*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-slow-osc";
410*4882a593Smuzhiyun					#clock-cells = <0>;
411*4882a593Smuzhiyun					clocks = <&slow_xtal>;
412*4882a593Smuzhiyun				};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun				slow_rc_osc: slow_rc_osc {
415*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-slow-rc-osc";
416*4882a593Smuzhiyun					#clock-cells = <0>;
417*4882a593Smuzhiyun					clock-frequency = <32768>;
418*4882a593Smuzhiyun					clock-accuracy = <50000000>;
419*4882a593Smuzhiyun				};
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun				clk32k: slck {
422*4882a593Smuzhiyun					compatible = "atmel,at91sam9x5-clk-slow";
423*4882a593Smuzhiyun					#clock-cells = <0>;
424*4882a593Smuzhiyun					clocks = <&slow_rc_osc>, <&slow_osc>;
425*4882a593Smuzhiyun				};
426*4882a593Smuzhiyun			};
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun			tcb0: timer@f8008000 {
429*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-tcb";
430*4882a593Smuzhiyun				reg = <0xf8008000 0x100>;
431*4882a593Smuzhiyun				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
432*4882a593Smuzhiyun				clocks = <&tcb0_clk>, <&clk32k>;
433*4882a593Smuzhiyun				clock-names = "t0_clk", "slow_clk";
434*4882a593Smuzhiyun			};
435*4882a593Smuzhiyun
436*4882a593Smuzhiyun			tcb1: timer@f800c000 {
437*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-tcb";
438*4882a593Smuzhiyun				reg = <0xf800c000 0x100>;
439*4882a593Smuzhiyun				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
440*4882a593Smuzhiyun				clocks = <&tcb0_clk>, <&clk32k>;
441*4882a593Smuzhiyun				clock-names = "t0_clk", "slow_clk";
442*4882a593Smuzhiyun			};
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun			dma0: dma-controller@ffffec00 {
445*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-dma";
446*4882a593Smuzhiyun				reg = <0xffffec00 0x200>;
447*4882a593Smuzhiyun				interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
448*4882a593Smuzhiyun				#dma-cells = <2>;
449*4882a593Smuzhiyun				clocks = <&dma0_clk>;
450*4882a593Smuzhiyun				clock-names = "dma_clk";
451*4882a593Smuzhiyun			};
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun			dma1: dma-controller@ffffee00 {
454*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-dma";
455*4882a593Smuzhiyun				reg = <0xffffee00 0x200>;
456*4882a593Smuzhiyun				interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>;
457*4882a593Smuzhiyun				#dma-cells = <2>;
458*4882a593Smuzhiyun				clocks = <&dma1_clk>;
459*4882a593Smuzhiyun				clock-names = "dma_clk";
460*4882a593Smuzhiyun			};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun			pinctrl@fffff400 {
463*4882a593Smuzhiyun				#address-cells = <1>;
464*4882a593Smuzhiyun				#size-cells = <1>;
465*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
466*4882a593Smuzhiyun				ranges = <0xfffff400 0xfffff400 0x800>;
467*4882a593Smuzhiyun				reg = <0xfffff400 0x200		/* pioA */
468*4882a593Smuzhiyun				       0xfffff600 0x200		/* pioB */
469*4882a593Smuzhiyun				       0xfffff800 0x200		/* pioC */
470*4882a593Smuzhiyun				       0xfffffa00 0x200		/* pioD */
471*4882a593Smuzhiyun				       >;
472*4882a593Smuzhiyun				u-boot,dm-pre-reloc;
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun
475*4882a593Smuzhiyun				/* shared pinctrl settings */
476*4882a593Smuzhiyun				dbgu {
477*4882a593Smuzhiyun					u-boot,dm-pre-reloc;
478*4882a593Smuzhiyun					pinctrl_dbgu: dbgu-0 {
479*4882a593Smuzhiyun						atmel,pins =
480*4882a593Smuzhiyun							<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
481*4882a593Smuzhiyun							 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
482*4882a593Smuzhiyun					};
483*4882a593Smuzhiyun				};
484*4882a593Smuzhiyun
485*4882a593Smuzhiyun				usart0 {
486*4882a593Smuzhiyun					pinctrl_usart0: usart0-0 {
487*4882a593Smuzhiyun						atmel,pins =
488*4882a593Smuzhiyun							<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA0 periph A with pullup */
489*4882a593Smuzhiyun							 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA1 periph A */
490*4882a593Smuzhiyun					};
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun					pinctrl_usart0_rts: usart0_rts-0 {
493*4882a593Smuzhiyun						atmel,pins =
494*4882a593Smuzhiyun							<AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA2 periph A */
495*4882a593Smuzhiyun					};
496*4882a593Smuzhiyun
497*4882a593Smuzhiyun					pinctrl_usart0_cts: usart0_cts-0 {
498*4882a593Smuzhiyun						atmel,pins =
499*4882a593Smuzhiyun							<AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA3 periph A */
500*4882a593Smuzhiyun					};
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun					pinctrl_usart0_sck: usart0_sck-0 {
503*4882a593Smuzhiyun						atmel,pins =
504*4882a593Smuzhiyun							<AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA4 periph A */
505*4882a593Smuzhiyun					};
506*4882a593Smuzhiyun				};
507*4882a593Smuzhiyun
508*4882a593Smuzhiyun				usart1 {
509*4882a593Smuzhiyun					pinctrl_usart1: usart1-0 {
510*4882a593Smuzhiyun						atmel,pins =
511*4882a593Smuzhiyun							<AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA5 periph A with pullup */
512*4882a593Smuzhiyun							 AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA6 periph A */
513*4882a593Smuzhiyun					};
514*4882a593Smuzhiyun
515*4882a593Smuzhiyun					pinctrl_usart1_rts: usart1_rts-0 {
516*4882a593Smuzhiyun						atmel,pins =
517*4882a593Smuzhiyun							<AT91_PIOC 27 AT91_PERIPH_C AT91_PINCTRL_NONE>;	/* PC27 periph C */
518*4882a593Smuzhiyun					};
519*4882a593Smuzhiyun
520*4882a593Smuzhiyun					pinctrl_usart1_cts: usart1_cts-0 {
521*4882a593Smuzhiyun						atmel,pins =
522*4882a593Smuzhiyun							<AT91_PIOC 28 AT91_PERIPH_C AT91_PINCTRL_NONE>;	/* PC28 periph C */
523*4882a593Smuzhiyun					};
524*4882a593Smuzhiyun
525*4882a593Smuzhiyun					pinctrl_usart1_sck: usart1_sck-0 {
526*4882a593Smuzhiyun						atmel,pins =
527*4882a593Smuzhiyun							<AT91_PIOC 29 AT91_PERIPH_C AT91_PINCTRL_NONE>;	/* PC29 periph C */
528*4882a593Smuzhiyun					};
529*4882a593Smuzhiyun				};
530*4882a593Smuzhiyun
531*4882a593Smuzhiyun				usart2 {
532*4882a593Smuzhiyun					pinctrl_usart2: usart2-0 {
533*4882a593Smuzhiyun						atmel,pins =
534*4882a593Smuzhiyun							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA7 periph A with pullup */
535*4882a593Smuzhiyun							 AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA8 periph A */
536*4882a593Smuzhiyun					};
537*4882a593Smuzhiyun
538*4882a593Smuzhiyun					pinctrl_usart2_rts: usart2_rts-0 {
539*4882a593Smuzhiyun						atmel,pins =
540*4882a593Smuzhiyun							<AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PB0 periph B */
541*4882a593Smuzhiyun					};
542*4882a593Smuzhiyun
543*4882a593Smuzhiyun					pinctrl_usart2_cts: usart2_cts-0 {
544*4882a593Smuzhiyun						atmel,pins =
545*4882a593Smuzhiyun							<AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PB1 periph B */
546*4882a593Smuzhiyun					};
547*4882a593Smuzhiyun
548*4882a593Smuzhiyun					pinctrl_usart2_sck: usart2_sck-0 {
549*4882a593Smuzhiyun						atmel,pins =
550*4882a593Smuzhiyun							<AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PB2 periph B */
551*4882a593Smuzhiyun					};
552*4882a593Smuzhiyun				};
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun				uart0 {
555*4882a593Smuzhiyun					pinctrl_uart0: uart0-0 {
556*4882a593Smuzhiyun						atmel,pins =
557*4882a593Smuzhiyun							<AT91_PIOC 8 AT91_PERIPH_C AT91_PINCTRL_NONE	/* PC8 periph C */
558*4882a593Smuzhiyun							 AT91_PIOC 9 AT91_PERIPH_C AT91_PINCTRL_PULL_UP>;	/* PC9 periph C with pullup */
559*4882a593Smuzhiyun					};
560*4882a593Smuzhiyun				};
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun				uart1 {
563*4882a593Smuzhiyun					pinctrl_uart1: uart1-0 {
564*4882a593Smuzhiyun						atmel,pins =
565*4882a593Smuzhiyun							<AT91_PIOC 16 AT91_PERIPH_C AT91_PINCTRL_NONE	/* PC16 periph C */
566*4882a593Smuzhiyun							 AT91_PIOC 17 AT91_PERIPH_C AT91_PINCTRL_PULL_UP>;	/* PC17 periph C with pullup */
567*4882a593Smuzhiyun					};
568*4882a593Smuzhiyun				};
569*4882a593Smuzhiyun
570*4882a593Smuzhiyun				nand {
571*4882a593Smuzhiyun					pinctrl_nand: nand-0 {
572*4882a593Smuzhiyun						atmel,pins =
573*4882a593Smuzhiyun							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD0 periph A Read Enable */
574*4882a593Smuzhiyun							 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD1 periph A Write Enable */
575*4882a593Smuzhiyun							 AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD2 periph A Address Latch Enable */
576*4882a593Smuzhiyun							 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD3 periph A Command Latch Enable */
577*4882a593Smuzhiyun							 AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP	/* PD4 gpio Chip Enable pin pull_up */
578*4882a593Smuzhiyun							 AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP	/* PD5 gpio RDY/BUSY pin pull_up */
579*4882a593Smuzhiyun							 AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD6 periph A Data bit 0 */
580*4882a593Smuzhiyun							 AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD7 periph A Data bit 1 */
581*4882a593Smuzhiyun							 AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD8 periph A Data bit 2 */
582*4882a593Smuzhiyun							 AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD9 periph A Data bit 3 */
583*4882a593Smuzhiyun							 AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD10 periph A Data bit 4 */
584*4882a593Smuzhiyun							 AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD11 periph A Data bit 5 */
585*4882a593Smuzhiyun							 AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD12 periph A Data bit 6 */
586*4882a593Smuzhiyun							 AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PD13 periph A Data bit 7 */
587*4882a593Smuzhiyun					};
588*4882a593Smuzhiyun
589*4882a593Smuzhiyun					pinctrl_nand_16bits: nand_16bits-0 {
590*4882a593Smuzhiyun						atmel,pins =
591*4882a593Smuzhiyun							<AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD14 periph A Data bit 8 */
592*4882a593Smuzhiyun							 AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD15 periph A Data bit 9 */
593*4882a593Smuzhiyun							 AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD16 periph A Data bit 10 */
594*4882a593Smuzhiyun							 AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD17 periph A Data bit 11 */
595*4882a593Smuzhiyun							 AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD18 periph A Data bit 12 */
596*4882a593Smuzhiyun							 AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD19 periph A Data bit 13 */
597*4882a593Smuzhiyun							 AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PD20 periph A Data bit 14 */
598*4882a593Smuzhiyun							 AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PD21 periph A Data bit 15 */
599*4882a593Smuzhiyun					};
600*4882a593Smuzhiyun				};
601*4882a593Smuzhiyun
602*4882a593Smuzhiyun				mmc0 {
603*4882a593Smuzhiyun					pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 {
604*4882a593Smuzhiyun						atmel,pins =
605*4882a593Smuzhiyun							<AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA17 periph A */
606*4882a593Smuzhiyun							 AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA16 periph A with pullup */
607*4882a593Smuzhiyun							 AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA15 periph A with pullup */
608*4882a593Smuzhiyun					};
609*4882a593Smuzhiyun
610*4882a593Smuzhiyun					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
611*4882a593Smuzhiyun						atmel,pins =
612*4882a593Smuzhiyun							<AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA18 periph A with pullup */
613*4882a593Smuzhiyun							 AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA19 periph A with pullup */
614*4882a593Smuzhiyun							 AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA20 periph A with pullup */
615*4882a593Smuzhiyun					};
616*4882a593Smuzhiyun				};
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun				mmc1 {
619*4882a593Smuzhiyun					pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 {
620*4882a593Smuzhiyun						atmel,pins =
621*4882a593Smuzhiyun							<AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA13 periph B */
622*4882a593Smuzhiyun							 AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA12 periph B with pullup */
623*4882a593Smuzhiyun							 AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA11 periph B with pullup */
624*4882a593Smuzhiyun					};
625*4882a593Smuzhiyun
626*4882a593Smuzhiyun					pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 {
627*4882a593Smuzhiyun						atmel,pins =
628*4882a593Smuzhiyun							<AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA2 periph B with pullup */
629*4882a593Smuzhiyun							 AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA3 periph B with pullup */
630*4882a593Smuzhiyun							 AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA4 periph B with pullup */
631*4882a593Smuzhiyun					};
632*4882a593Smuzhiyun				};
633*4882a593Smuzhiyun
634*4882a593Smuzhiyun				ssc0 {
635*4882a593Smuzhiyun					pinctrl_ssc0_tx: ssc0_tx-0 {
636*4882a593Smuzhiyun						atmel,pins =
637*4882a593Smuzhiyun							<AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA24 periph B */
638*4882a593Smuzhiyun							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
639*4882a593Smuzhiyun							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA26 periph B */
640*4882a593Smuzhiyun					};
641*4882a593Smuzhiyun
642*4882a593Smuzhiyun					pinctrl_ssc0_rx: ssc0_rx-0 {
643*4882a593Smuzhiyun						atmel,pins =
644*4882a593Smuzhiyun							<AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
645*4882a593Smuzhiyun							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
646*4882a593Smuzhiyun							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
647*4882a593Smuzhiyun					};
648*4882a593Smuzhiyun				};
649*4882a593Smuzhiyun
650*4882a593Smuzhiyun				spi0 {
651*4882a593Smuzhiyun					pinctrl_spi0: spi0-0 {
652*4882a593Smuzhiyun						atmel,pins =
653*4882a593Smuzhiyun							<AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA11 periph A SPI0_MISO pin */
654*4882a593Smuzhiyun							 AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA12 periph A SPI0_MOSI pin */
655*4882a593Smuzhiyun							 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA13 periph A SPI0_SPCK pin */
656*4882a593Smuzhiyun					};
657*4882a593Smuzhiyun				};
658*4882a593Smuzhiyun
659*4882a593Smuzhiyun				spi1 {
660*4882a593Smuzhiyun					pinctrl_spi1: spi1-0 {
661*4882a593Smuzhiyun						atmel,pins =
662*4882a593Smuzhiyun							<AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA21 periph B SPI1_MISO pin */
663*4882a593Smuzhiyun							 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B SPI1_MOSI pin */
664*4882a593Smuzhiyun							 AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA23 periph B SPI1_SPCK pin */
665*4882a593Smuzhiyun					};
666*4882a593Smuzhiyun				};
667*4882a593Smuzhiyun
668*4882a593Smuzhiyun				i2c0 {
669*4882a593Smuzhiyun					pinctrl_i2c0: i2c0-0 {
670*4882a593Smuzhiyun						atmel,pins =
671*4882a593Smuzhiyun							<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA30 periph A I2C0 data */
672*4882a593Smuzhiyun							 AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA31 periph A I2C0 clock */
673*4882a593Smuzhiyun					};
674*4882a593Smuzhiyun				};
675*4882a593Smuzhiyun
676*4882a593Smuzhiyun				i2c1 {
677*4882a593Smuzhiyun					pinctrl_i2c1: i2c1-0 {
678*4882a593Smuzhiyun						atmel,pins =
679*4882a593Smuzhiyun							<AT91_PIOC 0 AT91_PERIPH_C AT91_PINCTRL_NONE	/* PC0 periph C I2C1 data */
680*4882a593Smuzhiyun							 AT91_PIOC 1 AT91_PERIPH_C AT91_PINCTRL_NONE>;	/* PC1 periph C I2C1 clock */
681*4882a593Smuzhiyun					};
682*4882a593Smuzhiyun				};
683*4882a593Smuzhiyun
684*4882a593Smuzhiyun				i2c2 {
685*4882a593Smuzhiyun					pinctrl_i2c2: i2c2-0 {
686*4882a593Smuzhiyun						atmel,pins =
687*4882a593Smuzhiyun							<AT91_PIOB 4 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PB4 periph B I2C2 data */
688*4882a593Smuzhiyun							 AT91_PIOB 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PB5 periph B I2C2 clock */
689*4882a593Smuzhiyun					};
690*4882a593Smuzhiyun				};
691*4882a593Smuzhiyun
692*4882a593Smuzhiyun				i2c_gpio0 {
693*4882a593Smuzhiyun					pinctrl_i2c_gpio0: i2c_gpio0-0 {
694*4882a593Smuzhiyun						atmel,pins =
695*4882a593Smuzhiyun							<AT91_PIOA 30 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE	/* PA30 gpio multidrive I2C0 data */
696*4882a593Smuzhiyun							 AT91_PIOA 31 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;	/* PA31 gpio multidrive I2C0 clock */
697*4882a593Smuzhiyun					};
698*4882a593Smuzhiyun				};
699*4882a593Smuzhiyun
700*4882a593Smuzhiyun				i2c_gpio1 {
701*4882a593Smuzhiyun					pinctrl_i2c_gpio1: i2c_gpio1-0 {
702*4882a593Smuzhiyun						atmel,pins =
703*4882a593Smuzhiyun							<AT91_PIOC 0 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE	/* PC0 gpio multidrive I2C1 data */
704*4882a593Smuzhiyun							 AT91_PIOC 1 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;	/* PC1 gpio multidrive I2C1 clock */
705*4882a593Smuzhiyun					};
706*4882a593Smuzhiyun				};
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun				i2c_gpio2 {
709*4882a593Smuzhiyun					pinctrl_i2c_gpio2: i2c_gpio2-0 {
710*4882a593Smuzhiyun						atmel,pins =
711*4882a593Smuzhiyun							<AT91_PIOB 4 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE	/* PB4 gpio multidrive I2C2 data */
712*4882a593Smuzhiyun							 AT91_PIOB 5 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;	/* PB5 gpio multidrive I2C2 clock */
713*4882a593Smuzhiyun					};
714*4882a593Smuzhiyun				};
715*4882a593Smuzhiyun
716*4882a593Smuzhiyun				pwm0 {
717*4882a593Smuzhiyun					pinctrl_pwm0_pwm0_0: pwm0_pwm0-0 {
718*4882a593Smuzhiyun						atmel,pins =
719*4882a593Smuzhiyun							<AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>;
720*4882a593Smuzhiyun					};
721*4882a593Smuzhiyun					pinctrl_pwm0_pwm0_1: pwm0_pwm0-1 {
722*4882a593Smuzhiyun						atmel,pins =
723*4882a593Smuzhiyun							<AT91_PIOC 10 AT91_PERIPH_C AT91_PINCTRL_NONE>;
724*4882a593Smuzhiyun					};
725*4882a593Smuzhiyun					pinctrl_pwm0_pwm0_2: pwm0_pwm0-2 {
726*4882a593Smuzhiyun						atmel,pins =
727*4882a593Smuzhiyun							<AT91_PIOC 18 AT91_PERIPH_C AT91_PINCTRL_NONE>;
728*4882a593Smuzhiyun					};
729*4882a593Smuzhiyun
730*4882a593Smuzhiyun					pinctrl_pwm0_pwm1_0: pwm0_pwm1-0 {
731*4882a593Smuzhiyun						atmel,pins =
732*4882a593Smuzhiyun							<AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
733*4882a593Smuzhiyun					};
734*4882a593Smuzhiyun					pinctrl_pwm0_pwm1_1: pwm0_pwm1-1 {
735*4882a593Smuzhiyun						atmel,pins =
736*4882a593Smuzhiyun							<AT91_PIOC 11 AT91_PERIPH_C AT91_PINCTRL_NONE>;
737*4882a593Smuzhiyun					};
738*4882a593Smuzhiyun					pinctrl_pwm0_pwm1_2: pwm0_pwm1-2 {
739*4882a593Smuzhiyun						atmel,pins =
740*4882a593Smuzhiyun							<AT91_PIOC 19 AT91_PERIPH_C AT91_PINCTRL_NONE>;
741*4882a593Smuzhiyun					};
742*4882a593Smuzhiyun
743*4882a593Smuzhiyun					pinctrl_pwm0_pwm2_0: pwm0_pwm2-0 {
744*4882a593Smuzhiyun						atmel,pins =
745*4882a593Smuzhiyun							<AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
746*4882a593Smuzhiyun					};
747*4882a593Smuzhiyun					pinctrl_pwm0_pwm2_1: pwm0_pwm2-1 {
748*4882a593Smuzhiyun						atmel,pins =
749*4882a593Smuzhiyun							<AT91_PIOC 20 AT91_PERIPH_C AT91_PINCTRL_NONE>;
750*4882a593Smuzhiyun					};
751*4882a593Smuzhiyun
752*4882a593Smuzhiyun					pinctrl_pwm0_pwm3_0: pwm0_pwm3-0 {
753*4882a593Smuzhiyun						atmel,pins =
754*4882a593Smuzhiyun							<AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE>;
755*4882a593Smuzhiyun					};
756*4882a593Smuzhiyun					pinctrl_pwm0_pwm3_1: pwm0_pwm3-1 {
757*4882a593Smuzhiyun						atmel,pins =
758*4882a593Smuzhiyun							<AT91_PIOC 21 AT91_PERIPH_C AT91_PINCTRL_NONE>;
759*4882a593Smuzhiyun					};
760*4882a593Smuzhiyun				};
761*4882a593Smuzhiyun
762*4882a593Smuzhiyun				tcb0 {
763*4882a593Smuzhiyun					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
764*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE>;
765*4882a593Smuzhiyun					};
766*4882a593Smuzhiyun
767*4882a593Smuzhiyun					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
768*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
769*4882a593Smuzhiyun					};
770*4882a593Smuzhiyun
771*4882a593Smuzhiyun					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
772*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
773*4882a593Smuzhiyun					};
774*4882a593Smuzhiyun
775*4882a593Smuzhiyun					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
776*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
777*4882a593Smuzhiyun					};
778*4882a593Smuzhiyun
779*4882a593Smuzhiyun					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
780*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
781*4882a593Smuzhiyun					};
782*4882a593Smuzhiyun
783*4882a593Smuzhiyun					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
784*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
785*4882a593Smuzhiyun					};
786*4882a593Smuzhiyun
787*4882a593Smuzhiyun					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
788*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
789*4882a593Smuzhiyun					};
790*4882a593Smuzhiyun
791*4882a593Smuzhiyun					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
792*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
793*4882a593Smuzhiyun					};
794*4882a593Smuzhiyun
795*4882a593Smuzhiyun					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
796*4882a593Smuzhiyun						atmel,pins = <AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
797*4882a593Smuzhiyun					};
798*4882a593Smuzhiyun				};
799*4882a593Smuzhiyun
800*4882a593Smuzhiyun				tcb1 {
801*4882a593Smuzhiyun					pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
802*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 4 AT91_PERIPH_C AT91_PINCTRL_NONE>;
803*4882a593Smuzhiyun					};
804*4882a593Smuzhiyun
805*4882a593Smuzhiyun					pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
806*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 7 AT91_PERIPH_C AT91_PINCTRL_NONE>;
807*4882a593Smuzhiyun					};
808*4882a593Smuzhiyun
809*4882a593Smuzhiyun					pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
810*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 14 AT91_PERIPH_C AT91_PINCTRL_NONE>;
811*4882a593Smuzhiyun					};
812*4882a593Smuzhiyun
813*4882a593Smuzhiyun					pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
814*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 2 AT91_PERIPH_C AT91_PINCTRL_NONE>;
815*4882a593Smuzhiyun					};
816*4882a593Smuzhiyun
817*4882a593Smuzhiyun					pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
818*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 5 AT91_PERIPH_C AT91_PINCTRL_NONE>;
819*4882a593Smuzhiyun					};
820*4882a593Smuzhiyun
821*4882a593Smuzhiyun					pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
822*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 12 AT91_PERIPH_C AT91_PINCTRL_NONE>;
823*4882a593Smuzhiyun					};
824*4882a593Smuzhiyun
825*4882a593Smuzhiyun					pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
826*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 3 AT91_PERIPH_C AT91_PINCTRL_NONE>;
827*4882a593Smuzhiyun					};
828*4882a593Smuzhiyun
829*4882a593Smuzhiyun					pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
830*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 6 AT91_PERIPH_C AT91_PINCTRL_NONE>;
831*4882a593Smuzhiyun					};
832*4882a593Smuzhiyun
833*4882a593Smuzhiyun					pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
834*4882a593Smuzhiyun						atmel,pins = <AT91_PIOC 13 AT91_PERIPH_C AT91_PINCTRL_NONE>;
835*4882a593Smuzhiyun					};
836*4882a593Smuzhiyun				};
837*4882a593Smuzhiyun			};
838*4882a593Smuzhiyun
839*4882a593Smuzhiyun			pioA: gpio@fffff400 {
840*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
841*4882a593Smuzhiyun				reg = <0xfffff400 0x200>;
842*4882a593Smuzhiyun				interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
843*4882a593Smuzhiyun				#gpio-cells = <2>;
844*4882a593Smuzhiyun				gpio-controller;
845*4882a593Smuzhiyun				interrupt-controller;
846*4882a593Smuzhiyun				#interrupt-cells = <2>;
847*4882a593Smuzhiyun				clocks = <&pioAB_clk>;
848*4882a593Smuzhiyun			};
849*4882a593Smuzhiyun
850*4882a593Smuzhiyun			pioB: gpio@fffff600 {
851*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
852*4882a593Smuzhiyun				reg = <0xfffff600 0x200>;
853*4882a593Smuzhiyun				interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
854*4882a593Smuzhiyun				#gpio-cells = <2>;
855*4882a593Smuzhiyun				gpio-controller;
856*4882a593Smuzhiyun				#gpio-lines = <19>;
857*4882a593Smuzhiyun				interrupt-controller;
858*4882a593Smuzhiyun				#interrupt-cells = <2>;
859*4882a593Smuzhiyun				clocks = <&pioAB_clk>;
860*4882a593Smuzhiyun			};
861*4882a593Smuzhiyun
862*4882a593Smuzhiyun			pioC: gpio@fffff800 {
863*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
864*4882a593Smuzhiyun				reg = <0xfffff800 0x200>;
865*4882a593Smuzhiyun				interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
866*4882a593Smuzhiyun				#gpio-cells = <2>;
867*4882a593Smuzhiyun				gpio-controller;
868*4882a593Smuzhiyun				interrupt-controller;
869*4882a593Smuzhiyun				#interrupt-cells = <2>;
870*4882a593Smuzhiyun				clocks = <&pioCD_clk>;
871*4882a593Smuzhiyun			};
872*4882a593Smuzhiyun
873*4882a593Smuzhiyun			pioD: gpio@fffffa00 {
874*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
875*4882a593Smuzhiyun				reg = <0xfffffa00 0x200>;
876*4882a593Smuzhiyun				interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
877*4882a593Smuzhiyun				#gpio-cells = <2>;
878*4882a593Smuzhiyun				gpio-controller;
879*4882a593Smuzhiyun				#gpio-lines = <22>;
880*4882a593Smuzhiyun				interrupt-controller;
881*4882a593Smuzhiyun				#interrupt-cells = <2>;
882*4882a593Smuzhiyun				clocks = <&pioCD_clk>;
883*4882a593Smuzhiyun			};
884*4882a593Smuzhiyun
885*4882a593Smuzhiyun			ssc0: ssc@f0010000 {
886*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-ssc";
887*4882a593Smuzhiyun				reg = <0xf0010000 0x4000>;
888*4882a593Smuzhiyun				interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
889*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(13)>,
890*4882a593Smuzhiyun				       <&dma0 1 AT91_DMA_CFG_PER_ID(14)>;
891*4882a593Smuzhiyun				dma-names = "tx", "rx";
892*4882a593Smuzhiyun				pinctrl-names = "default";
893*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
894*4882a593Smuzhiyun				clocks = <&ssc0_clk>;
895*4882a593Smuzhiyun				clock-names = "pclk";
896*4882a593Smuzhiyun				status = "disabled";
897*4882a593Smuzhiyun			};
898*4882a593Smuzhiyun
899*4882a593Smuzhiyun			mmc0: mmc@f0008000 {
900*4882a593Smuzhiyun				compatible = "atmel,hsmci";
901*4882a593Smuzhiyun				reg = <0xf0008000 0x600>;
902*4882a593Smuzhiyun				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
903*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>;
904*4882a593Smuzhiyun				dma-names = "rxtx";
905*4882a593Smuzhiyun				pinctrl-names = "default";
906*4882a593Smuzhiyun				clocks = <&mci0_clk>;
907*4882a593Smuzhiyun				clock-names = "mci_clk";
908*4882a593Smuzhiyun				#address-cells = <1>;
909*4882a593Smuzhiyun				#size-cells = <0>;
910*4882a593Smuzhiyun				status = "disabled";
911*4882a593Smuzhiyun			};
912*4882a593Smuzhiyun
913*4882a593Smuzhiyun			mmc1: mmc@f000c000 {
914*4882a593Smuzhiyun				compatible = "atmel,hsmci";
915*4882a593Smuzhiyun				reg = <0xf000c000 0x600>;
916*4882a593Smuzhiyun				interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
917*4882a593Smuzhiyun				dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>;
918*4882a593Smuzhiyun				dma-names = "rxtx";
919*4882a593Smuzhiyun				pinctrl-names = "default";
920*4882a593Smuzhiyun				clocks = <&mci1_clk>;
921*4882a593Smuzhiyun				clock-names = "mci_clk";
922*4882a593Smuzhiyun				#address-cells = <1>;
923*4882a593Smuzhiyun				#size-cells = <0>;
924*4882a593Smuzhiyun				status = "disabled";
925*4882a593Smuzhiyun			};
926*4882a593Smuzhiyun
927*4882a593Smuzhiyun			dbgu: serial@fffff200 {
928*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
929*4882a593Smuzhiyun				reg = <0xfffff200 0x200>;
930*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
931*4882a593Smuzhiyun				pinctrl-names = "default";
932*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_dbgu>;
933*4882a593Smuzhiyun				dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(8)>,
934*4882a593Smuzhiyun				       <&dma1 1 (AT91_DMA_CFG_PER_ID(9) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
935*4882a593Smuzhiyun				dma-names = "tx", "rx";
936*4882a593Smuzhiyun				clocks = <&mck>;
937*4882a593Smuzhiyun				clock-names = "usart";
938*4882a593Smuzhiyun				status = "disabled";
939*4882a593Smuzhiyun			};
940*4882a593Smuzhiyun
941*4882a593Smuzhiyun			usart0: serial@f801c000 {
942*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
943*4882a593Smuzhiyun				reg = <0xf801c000 0x200>;
944*4882a593Smuzhiyun				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 5>;
945*4882a593Smuzhiyun				pinctrl-names = "default";
946*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_usart0>;
947*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(3)>,
948*4882a593Smuzhiyun				       <&dma0 1 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
949*4882a593Smuzhiyun				dma-names = "tx", "rx";
950*4882a593Smuzhiyun				clocks = <&usart0_clk>;
951*4882a593Smuzhiyun				clock-names = "usart";
952*4882a593Smuzhiyun				status = "disabled";
953*4882a593Smuzhiyun			};
954*4882a593Smuzhiyun
955*4882a593Smuzhiyun			usart1: serial@f8020000 {
956*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
957*4882a593Smuzhiyun				reg = <0xf8020000 0x200>;
958*4882a593Smuzhiyun				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
959*4882a593Smuzhiyun				pinctrl-names = "default";
960*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_usart1>;
961*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(5)>,
962*4882a593Smuzhiyun				       <&dma0 1 (AT91_DMA_CFG_PER_ID(6) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
963*4882a593Smuzhiyun				dma-names = "tx", "rx";
964*4882a593Smuzhiyun				clocks = <&usart1_clk>;
965*4882a593Smuzhiyun				clock-names = "usart";
966*4882a593Smuzhiyun				status = "disabled";
967*4882a593Smuzhiyun			};
968*4882a593Smuzhiyun
969*4882a593Smuzhiyun			usart2: serial@f8024000 {
970*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
971*4882a593Smuzhiyun				reg = <0xf8024000 0x200>;
972*4882a593Smuzhiyun				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
973*4882a593Smuzhiyun				pinctrl-names = "default";
974*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_usart2>;
975*4882a593Smuzhiyun				dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(12)>,
976*4882a593Smuzhiyun				       <&dma1 1 (AT91_DMA_CFG_PER_ID(13) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
977*4882a593Smuzhiyun				dma-names = "tx", "rx";
978*4882a593Smuzhiyun				clocks = <&usart2_clk>;
979*4882a593Smuzhiyun				clock-names = "usart";
980*4882a593Smuzhiyun				status = "disabled";
981*4882a593Smuzhiyun			};
982*4882a593Smuzhiyun
983*4882a593Smuzhiyun			i2c0: i2c@f8010000 {
984*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-i2c";
985*4882a593Smuzhiyun				reg = <0xf8010000 0x100>;
986*4882a593Smuzhiyun				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
987*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(7)>,
988*4882a593Smuzhiyun				       <&dma0 1 AT91_DMA_CFG_PER_ID(8)>;
989*4882a593Smuzhiyun				dma-names = "tx", "rx";
990*4882a593Smuzhiyun				#address-cells = <1>;
991*4882a593Smuzhiyun				#size-cells = <0>;
992*4882a593Smuzhiyun				pinctrl-names = "default";
993*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_i2c0>;
994*4882a593Smuzhiyun				clocks = <&twi0_clk>;
995*4882a593Smuzhiyun				status = "disabled";
996*4882a593Smuzhiyun			};
997*4882a593Smuzhiyun
998*4882a593Smuzhiyun			i2c1: i2c@f8014000 {
999*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-i2c";
1000*4882a593Smuzhiyun				reg = <0xf8014000 0x100>;
1001*4882a593Smuzhiyun				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 6>;
1002*4882a593Smuzhiyun				dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(5)>,
1003*4882a593Smuzhiyun				       <&dma1 1 AT91_DMA_CFG_PER_ID(6)>;
1004*4882a593Smuzhiyun				dma-names = "tx", "rx";
1005*4882a593Smuzhiyun				#address-cells = <1>;
1006*4882a593Smuzhiyun				#size-cells = <0>;
1007*4882a593Smuzhiyun				pinctrl-names = "default";
1008*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_i2c1>;
1009*4882a593Smuzhiyun				clocks = <&twi1_clk>;
1010*4882a593Smuzhiyun				status = "disabled";
1011*4882a593Smuzhiyun			};
1012*4882a593Smuzhiyun
1013*4882a593Smuzhiyun			i2c2: i2c@f8018000 {
1014*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-i2c";
1015*4882a593Smuzhiyun				reg = <0xf8018000 0x100>;
1016*4882a593Smuzhiyun				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
1017*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(9)>,
1018*4882a593Smuzhiyun				       <&dma0 1 AT91_DMA_CFG_PER_ID(10)>;
1019*4882a593Smuzhiyun				dma-names = "tx", "rx";
1020*4882a593Smuzhiyun				#address-cells = <1>;
1021*4882a593Smuzhiyun				#size-cells = <0>;
1022*4882a593Smuzhiyun				pinctrl-names = "default";
1023*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_i2c2>;
1024*4882a593Smuzhiyun				clocks = <&twi2_clk>;
1025*4882a593Smuzhiyun				status = "disabled";
1026*4882a593Smuzhiyun			};
1027*4882a593Smuzhiyun
1028*4882a593Smuzhiyun			uart0: serial@f8040000 {
1029*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
1030*4882a593Smuzhiyun				reg = <0xf8040000 0x200>;
1031*4882a593Smuzhiyun				interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
1032*4882a593Smuzhiyun				pinctrl-names = "default";
1033*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_uart0>;
1034*4882a593Smuzhiyun				clocks = <&uart0_clk>;
1035*4882a593Smuzhiyun				clock-names = "usart";
1036*4882a593Smuzhiyun				status = "disabled";
1037*4882a593Smuzhiyun			};
1038*4882a593Smuzhiyun
1039*4882a593Smuzhiyun			uart1: serial@f8044000 {
1040*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-usart";
1041*4882a593Smuzhiyun				reg = <0xf8044000 0x200>;
1042*4882a593Smuzhiyun				interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
1043*4882a593Smuzhiyun				pinctrl-names = "default";
1044*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_uart1>;
1045*4882a593Smuzhiyun				clocks = <&uart1_clk>;
1046*4882a593Smuzhiyun				clock-names = "usart";
1047*4882a593Smuzhiyun				status = "disabled";
1048*4882a593Smuzhiyun			};
1049*4882a593Smuzhiyun
1050*4882a593Smuzhiyun			adc0: adc@f804c000 {
1051*4882a593Smuzhiyun				#address-cells = <1>;
1052*4882a593Smuzhiyun				#size-cells = <0>;
1053*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-adc";
1054*4882a593Smuzhiyun				reg = <0xf804c000 0x100>;
1055*4882a593Smuzhiyun				interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>;
1056*4882a593Smuzhiyun				clocks = <&adc_clk>,
1057*4882a593Smuzhiyun					 <&adc_op_clk>;
1058*4882a593Smuzhiyun				clock-names = "adc_clk", "adc_op_clk";
1059*4882a593Smuzhiyun				atmel,adc-use-external-triggers;
1060*4882a593Smuzhiyun				atmel,adc-channels-used = <0xffff>;
1061*4882a593Smuzhiyun				atmel,adc-vref = <3300>;
1062*4882a593Smuzhiyun				atmel,adc-startup-time = <40>;
1063*4882a593Smuzhiyun				atmel,adc-sample-hold-time = <11>;
1064*4882a593Smuzhiyun				atmel,adc-res = <8 10>;
1065*4882a593Smuzhiyun				atmel,adc-res-names = "lowres", "highres";
1066*4882a593Smuzhiyun				atmel,adc-use-res = "highres";
1067*4882a593Smuzhiyun
1068*4882a593Smuzhiyun				trigger0 {
1069*4882a593Smuzhiyun					trigger-name = "external-rising";
1070*4882a593Smuzhiyun					trigger-value = <0x1>;
1071*4882a593Smuzhiyun					trigger-external;
1072*4882a593Smuzhiyun				};
1073*4882a593Smuzhiyun
1074*4882a593Smuzhiyun				trigger1 {
1075*4882a593Smuzhiyun					trigger-name = "external-falling";
1076*4882a593Smuzhiyun					trigger-value = <0x2>;
1077*4882a593Smuzhiyun					trigger-external;
1078*4882a593Smuzhiyun				};
1079*4882a593Smuzhiyun
1080*4882a593Smuzhiyun				trigger2 {
1081*4882a593Smuzhiyun					trigger-name = "external-any";
1082*4882a593Smuzhiyun					trigger-value = <0x3>;
1083*4882a593Smuzhiyun					trigger-external;
1084*4882a593Smuzhiyun				};
1085*4882a593Smuzhiyun
1086*4882a593Smuzhiyun				trigger3 {
1087*4882a593Smuzhiyun					trigger-name = "continuous";
1088*4882a593Smuzhiyun					trigger-value = <0x6>;
1089*4882a593Smuzhiyun				};
1090*4882a593Smuzhiyun			};
1091*4882a593Smuzhiyun
1092*4882a593Smuzhiyun			spi0: spi@f0000000 {
1093*4882a593Smuzhiyun				#address-cells = <1>;
1094*4882a593Smuzhiyun				#size-cells = <0>;
1095*4882a593Smuzhiyun				compatible = "atmel,at91rm9200-spi";
1096*4882a593Smuzhiyun				reg = <0xf0000000 0x100>;
1097*4882a593Smuzhiyun				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
1098*4882a593Smuzhiyun				dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(1)>,
1099*4882a593Smuzhiyun				       <&dma0 1 AT91_DMA_CFG_PER_ID(2)>;
1100*4882a593Smuzhiyun				dma-names = "tx", "rx";
1101*4882a593Smuzhiyun				pinctrl-names = "default";
1102*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_spi0>;
1103*4882a593Smuzhiyun				clocks = <&spi0_clk>;
1104*4882a593Smuzhiyun				clock-names = "spi_clk";
1105*4882a593Smuzhiyun				status = "disabled";
1106*4882a593Smuzhiyun			};
1107*4882a593Smuzhiyun
1108*4882a593Smuzhiyun			spi1: spi@f0004000 {
1109*4882a593Smuzhiyun				#address-cells = <1>;
1110*4882a593Smuzhiyun				#size-cells = <0>;
1111*4882a593Smuzhiyun				compatible = "atmel,at91rm9200-spi";
1112*4882a593Smuzhiyun				reg = <0xf0004000 0x100>;
1113*4882a593Smuzhiyun				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>;
1114*4882a593Smuzhiyun				dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(1)>,
1115*4882a593Smuzhiyun				       <&dma1 1 AT91_DMA_CFG_PER_ID(2)>;
1116*4882a593Smuzhiyun				dma-names = "tx", "rx";
1117*4882a593Smuzhiyun				pinctrl-names = "default";
1118*4882a593Smuzhiyun				pinctrl-0 = <&pinctrl_spi1>;
1119*4882a593Smuzhiyun				clocks = <&spi1_clk>;
1120*4882a593Smuzhiyun				clock-names = "spi_clk";
1121*4882a593Smuzhiyun				status = "disabled";
1122*4882a593Smuzhiyun			};
1123*4882a593Smuzhiyun
1124*4882a593Smuzhiyun			usb2: gadget@f803c000 {
1125*4882a593Smuzhiyun				#address-cells = <1>;
1126*4882a593Smuzhiyun				#size-cells = <0>;
1127*4882a593Smuzhiyun				compatible = "atmel,at91sam9g45-udc";
1128*4882a593Smuzhiyun				reg = <0x00500000 0x80000
1129*4882a593Smuzhiyun				       0xf803c000 0x400>;
1130*4882a593Smuzhiyun				interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
1131*4882a593Smuzhiyun				clocks = <&utmi>, <&udphs_clk>;
1132*4882a593Smuzhiyun				clock-names = "hclk", "pclk";
1133*4882a593Smuzhiyun				status = "disabled";
1134*4882a593Smuzhiyun
1135*4882a593Smuzhiyun				ep@0 {
1136*4882a593Smuzhiyun					reg = <0>;
1137*4882a593Smuzhiyun					atmel,fifo-size = <64>;
1138*4882a593Smuzhiyun					atmel,nb-banks = <1>;
1139*4882a593Smuzhiyun				};
1140*4882a593Smuzhiyun
1141*4882a593Smuzhiyun				ep@1 {
1142*4882a593Smuzhiyun					reg = <1>;
1143*4882a593Smuzhiyun					atmel,fifo-size = <1024>;
1144*4882a593Smuzhiyun					atmel,nb-banks = <2>;
1145*4882a593Smuzhiyun					atmel,can-dma;
1146*4882a593Smuzhiyun					atmel,can-isoc;
1147*4882a593Smuzhiyun				};
1148*4882a593Smuzhiyun
1149*4882a593Smuzhiyun				ep@2 {
1150*4882a593Smuzhiyun					reg = <2>;
1151*4882a593Smuzhiyun					atmel,fifo-size = <1024>;
1152*4882a593Smuzhiyun					atmel,nb-banks = <2>;
1153*4882a593Smuzhiyun					atmel,can-dma;
1154*4882a593Smuzhiyun					atmel,can-isoc;
1155*4882a593Smuzhiyun				};
1156*4882a593Smuzhiyun
1157*4882a593Smuzhiyun				ep@3 {
1158*4882a593Smuzhiyun					reg = <3>;
1159*4882a593Smuzhiyun					atmel,fifo-size = <1024>;
1160*4882a593Smuzhiyun					atmel,nb-banks = <3>;
1161*4882a593Smuzhiyun					atmel,can-dma;
1162*4882a593Smuzhiyun				};
1163*4882a593Smuzhiyun
1164*4882a593Smuzhiyun				ep@4 {
1165*4882a593Smuzhiyun					reg = <4>;
1166*4882a593Smuzhiyun					atmel,fifo-size = <1024>;
1167*4882a593Smuzhiyun					atmel,nb-banks = <3>;
1168*4882a593Smuzhiyun					atmel,can-dma;
1169*4882a593Smuzhiyun				};
1170*4882a593Smuzhiyun
1171*4882a593Smuzhiyun				ep@5 {
1172*4882a593Smuzhiyun					reg = <5>;
1173*4882a593Smuzhiyun					atmel,fifo-size = <1024>;
1174*4882a593Smuzhiyun					atmel,nb-banks = <3>;
1175*4882a593Smuzhiyun					atmel,can-dma;
1176*4882a593Smuzhiyun					atmel,can-isoc;
1177*4882a593Smuzhiyun				};
1178*4882a593Smuzhiyun
1179*4882a593Smuzhiyun				ep@6 {
1180*4882a593Smuzhiyun					reg = <6>;
1181*4882a593Smuzhiyun					atmel,fifo-size = <1024>;
1182*4882a593Smuzhiyun					atmel,nb-banks = <3>;
1183*4882a593Smuzhiyun					atmel,can-dma;
1184*4882a593Smuzhiyun					atmel,can-isoc;
1185*4882a593Smuzhiyun				};
1186*4882a593Smuzhiyun			};
1187*4882a593Smuzhiyun
1188*4882a593Smuzhiyun			watchdog@fffffe40 {
1189*4882a593Smuzhiyun				compatible = "atmel,at91sam9260-wdt";
1190*4882a593Smuzhiyun				reg = <0xfffffe40 0x10>;
1191*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1192*4882a593Smuzhiyun				clocks = <&clk32k>;
1193*4882a593Smuzhiyun				atmel,watchdog-type = "hardware";
1194*4882a593Smuzhiyun				atmel,reset-type = "all";
1195*4882a593Smuzhiyun				atmel,dbg-halt;
1196*4882a593Smuzhiyun				status = "disabled";
1197*4882a593Smuzhiyun			};
1198*4882a593Smuzhiyun
1199*4882a593Smuzhiyun			rtc@fffffeb0 {
1200*4882a593Smuzhiyun				compatible = "atmel,at91sam9x5-rtc";
1201*4882a593Smuzhiyun				reg = <0xfffffeb0 0x40>;
1202*4882a593Smuzhiyun				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1203*4882a593Smuzhiyun				clocks = <&clk32k>;
1204*4882a593Smuzhiyun				status = "disabled";
1205*4882a593Smuzhiyun			};
1206*4882a593Smuzhiyun
1207*4882a593Smuzhiyun			pwm0: pwm@f8034000 {
1208*4882a593Smuzhiyun				compatible = "atmel,at91sam9rl-pwm";
1209*4882a593Smuzhiyun				reg = <0xf8034000 0x300>;
1210*4882a593Smuzhiyun				interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
1211*4882a593Smuzhiyun				clocks = <&pwm_clk>;
1212*4882a593Smuzhiyun				#pwm-cells = <3>;
1213*4882a593Smuzhiyun				status = "disabled";
1214*4882a593Smuzhiyun			};
1215*4882a593Smuzhiyun		};
1216*4882a593Smuzhiyun
1217*4882a593Smuzhiyun		nand0: nand@40000000 {
1218*4882a593Smuzhiyun			compatible = "atmel,at91rm9200-nand";
1219*4882a593Smuzhiyun			#address-cells = <1>;
1220*4882a593Smuzhiyun			#size-cells = <1>;
1221*4882a593Smuzhiyun			reg = <0x40000000 0x10000000
1222*4882a593Smuzhiyun			       0xffffe000 0x600		/* PMECC Registers */
1223*4882a593Smuzhiyun			       0xffffe600 0x200		/* PMECC Error Location Registers */
1224*4882a593Smuzhiyun			       0x00108000 0x18000	/* PMECC looup table in ROM code  */
1225*4882a593Smuzhiyun			      >;
1226*4882a593Smuzhiyun			atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
1227*4882a593Smuzhiyun			atmel,nand-addr-offset = <21>;
1228*4882a593Smuzhiyun			atmel,nand-cmd-offset = <22>;
1229*4882a593Smuzhiyun			atmel,nand-has-dma;
1230*4882a593Smuzhiyun			pinctrl-names = "default";
1231*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_nand>;
1232*4882a593Smuzhiyun			gpios = <&pioD 5 GPIO_ACTIVE_HIGH
1233*4882a593Smuzhiyun				 &pioD 4 GPIO_ACTIVE_HIGH
1234*4882a593Smuzhiyun				 0
1235*4882a593Smuzhiyun				>;
1236*4882a593Smuzhiyun			status = "disabled";
1237*4882a593Smuzhiyun		};
1238*4882a593Smuzhiyun
1239*4882a593Smuzhiyun		usb0: ohci@00600000 {
1240*4882a593Smuzhiyun			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1241*4882a593Smuzhiyun			reg = <0x00600000 0x100000>;
1242*4882a593Smuzhiyun			interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
1243*4882a593Smuzhiyun			clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
1244*4882a593Smuzhiyun			clock-names = "ohci_clk", "hclk", "uhpck";
1245*4882a593Smuzhiyun			status = "disabled";
1246*4882a593Smuzhiyun		};
1247*4882a593Smuzhiyun
1248*4882a593Smuzhiyun		usb1: ehci@00700000 {
1249*4882a593Smuzhiyun			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
1250*4882a593Smuzhiyun			reg = <0x00700000 0x100000>;
1251*4882a593Smuzhiyun			interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
1252*4882a593Smuzhiyun			clocks = <&utmi>, <&uhphs_clk>;
1253*4882a593Smuzhiyun			clock-names = "usb_clk", "ehci_clk";
1254*4882a593Smuzhiyun			status = "disabled";
1255*4882a593Smuzhiyun		};
1256*4882a593Smuzhiyun	};
1257*4882a593Smuzhiyun
1258*4882a593Smuzhiyun	i2c-gpio-0 {
1259*4882a593Smuzhiyun		compatible = "i2c-gpio";
1260*4882a593Smuzhiyun		gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
1261*4882a593Smuzhiyun			 &pioA 31 GPIO_ACTIVE_HIGH /* scl */
1262*4882a593Smuzhiyun			>;
1263*4882a593Smuzhiyun		i2c-gpio,sda-open-drain;
1264*4882a593Smuzhiyun		i2c-gpio,scl-open-drain;
1265*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
1266*4882a593Smuzhiyun		#address-cells = <1>;
1267*4882a593Smuzhiyun		#size-cells = <0>;
1268*4882a593Smuzhiyun		pinctrl-names = "default";
1269*4882a593Smuzhiyun		pinctrl-0 = <&pinctrl_i2c_gpio0>;
1270*4882a593Smuzhiyun		status = "disabled";
1271*4882a593Smuzhiyun	};
1272*4882a593Smuzhiyun
1273*4882a593Smuzhiyun	i2c-gpio-1 {
1274*4882a593Smuzhiyun		compatible = "i2c-gpio";
1275*4882a593Smuzhiyun		gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */
1276*4882a593Smuzhiyun			 &pioC 1 GPIO_ACTIVE_HIGH /* scl */
1277*4882a593Smuzhiyun			>;
1278*4882a593Smuzhiyun		i2c-gpio,sda-open-drain;
1279*4882a593Smuzhiyun		i2c-gpio,scl-open-drain;
1280*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
1281*4882a593Smuzhiyun		#address-cells = <1>;
1282*4882a593Smuzhiyun		#size-cells = <0>;
1283*4882a593Smuzhiyun		pinctrl-names = "default";
1284*4882a593Smuzhiyun		pinctrl-0 = <&pinctrl_i2c_gpio1>;
1285*4882a593Smuzhiyun		status = "disabled";
1286*4882a593Smuzhiyun	};
1287*4882a593Smuzhiyun
1288*4882a593Smuzhiyun	i2c-gpio-2 {
1289*4882a593Smuzhiyun		compatible = "i2c-gpio";
1290*4882a593Smuzhiyun		gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
1291*4882a593Smuzhiyun			 &pioB 5 GPIO_ACTIVE_HIGH /* scl */
1292*4882a593Smuzhiyun			>;
1293*4882a593Smuzhiyun		i2c-gpio,sda-open-drain;
1294*4882a593Smuzhiyun		i2c-gpio,scl-open-drain;
1295*4882a593Smuzhiyun		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
1296*4882a593Smuzhiyun		#address-cells = <1>;
1297*4882a593Smuzhiyun		#size-cells = <0>;
1298*4882a593Smuzhiyun		pinctrl-names = "default";
1299*4882a593Smuzhiyun		pinctrl-0 = <&pinctrl_i2c_gpio2>;
1300*4882a593Smuzhiyun		status = "disabled";
1301*4882a593Smuzhiyun	};
1302*4882a593Smuzhiyun};
1303