ARM: dts: at91: Declare EBI/NAND controllers
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / at91sam9261.dtsi
1 /*
2  * at91sam9261.dtsi - Device Tree Include file for AT91SAM9261 SoC
3  *
4  *  Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
5  *
6  * Licensed under GPLv2 only.
7  */
8
9 #include "skeleton.dtsi"
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         model = "Atmel AT91SAM9261 family SoC";
17         compatible = "atmel,at91sam9261";
18         interrupt-parent = <&aic>;
19
20         aliases {
21                 serial0 = &dbgu;
22                 serial1 = &usart0;
23                 serial2 = &usart1;
24                 serial3 = &usart2;
25                 gpio0 = &pioA;
26                 gpio1 = &pioB;
27                 gpio2 = &pioC;
28                 tcb0 = &tcb0;
29                 i2c0 = &i2c0;
30                 ssc0 = &ssc0;
31                 ssc1 = &ssc1;
32                 ssc2 = &ssc2;
33         };
34
35         cpus {
36                 #address-cells = <0>;
37                 #size-cells = <0>;
38
39                 cpu {
40                         compatible = "arm,arm926ej-s";
41                         device_type = "cpu";
42                 };
43         };
44
45         memory {
46                 reg = <0x20000000 0x08000000>;
47         };
48
49         clocks {
50                 main_xtal: main_xtal {
51                         compatible = "fixed-clock";
52                         #clock-cells = <0>;
53                         clock-frequency = <0>;
54                 };
55
56                 slow_xtal: slow_xtal {
57                         compatible = "fixed-clock";
58                         #clock-cells = <0>;
59                         clock-frequency = <0>;
60                 };
61         };
62
63         sram: sram@00300000 {
64                 compatible = "mmio-sram";
65                 reg = <0x00300000 0x28000>;
66         };
67
68         ahb {
69                 compatible = "simple-bus";
70                 #address-cells = <1>;
71                 #size-cells = <1>;
72                 ranges;
73
74                 usb0: ohci@00500000 {
75                         compatible = "atmel,at91rm9200-ohci", "usb-ohci";
76                         reg = <0x00500000 0x100000>;
77                         interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
78                         clocks = <&ohci_clk>, <&hclk0>, <&uhpck>;
79                         clock-names = "ohci_clk", "hclk", "uhpck";
80                         status = "disabled";
81                 };
82
83                 fb0: fb@0x00600000 {
84                         compatible = "atmel,at91sam9261-lcdc";
85                         reg = <0x00600000 0x1000>;
86                         interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
87                         pinctrl-names = "default";
88                         pinctrl-0 = <&pinctrl_fb>;
89                         clocks = <&lcd_clk>, <&hclk1>;
90                         clock-names = "lcdc_clk", "hclk";
91                         status = "disabled";
92                 };
93
94                 ebi: ebi@10000000 {
95                         compatible = "atmel,at91sam9261-ebi";
96                         #address-cells = <2>;
97                         #size-cells = <1>;
98                         atmel,smc = <&smc>;
99                         atmel,matrix = <&matrix>;
100                         reg = <0x10000000 0x80000000>;
101                         ranges = <0x0 0x0 0x10000000 0x10000000
102                                   0x1 0x0 0x20000000 0x10000000
103                                   0x2 0x0 0x30000000 0x10000000
104                                   0x3 0x0 0x40000000 0x10000000
105                                   0x4 0x0 0x50000000 0x10000000
106                                   0x5 0x0 0x60000000 0x10000000
107                                   0x6 0x0 0x70000000 0x10000000
108                                   0x7 0x0 0x80000000 0x10000000>;
109                         clocks = <&mck>;
110                         status = "disabled";
111
112                         nand_controller: nand-controller {
113                                 compatible = "atmel,at91sam9261-nand-controller";
114                                 #address-cells = <2>;
115                                 #size-cells = <1>;
116                                 ranges;
117                                 status = "disabled";
118                         };
119                 };
120
121                 nand0: nand@40000000 {
122                         compatible = "atmel,at91rm9200-nand";
123                         #address-cells = <1>;
124                         #size-cells = <1>;
125                         reg = <0x40000000 0x10000000>;
126                         atmel,nand-addr-offset = <22>;
127                         atmel,nand-cmd-offset = <21>;
128                         pinctrl-names = "default";
129                         pinctrl-0 = <&pinctrl_nand>;
130
131                         gpios = <&pioC 15 GPIO_ACTIVE_HIGH>,
132                                 <&pioC 14 GPIO_ACTIVE_HIGH>,
133                                 <0>;
134                         status = "disabled";
135                 };
136
137                 apb {
138                         compatible = "simple-bus";
139                         #address-cells = <1>;
140                         #size-cells = <1>;
141                         ranges;
142
143                         tcb0: timer@fffa0000 {
144                                 compatible = "atmel,at91rm9200-tcb";
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 = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&slow_xtal>;
150                                 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
151                         };
152
153                         usb1: gadget@fffa4000 {
154                                 compatible = "atmel,at91sam9261-udc";
155                                 reg = <0xfffa4000 0x4000>;
156                                 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
157                                 clocks = <&udc_clk>, <&udpck>;
158                                 clock-names = "pclk", "hclk";
159                                 atmel,matrix = <&matrix>;
160                                 status = "disabled";
161                         };
162
163                         mmc0: mmc@fffa8000 {
164                                 compatible = "atmel,hsmci";
165                                 reg = <0xfffa8000 0x600>;
166                                 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
167                                 pinctrl-names = "default";
168                                 pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
169                                 #address-cells = <1>;
170                                 #size-cells = <0>;
171                                 clocks = <&mci0_clk>;
172                                 clock-names = "mci_clk";
173                                 status = "disabled";
174                         };
175
176                         i2c0: i2c@fffac000 {
177                                 compatible = "atmel,at91sam9261-i2c";
178                                 pinctrl-names = "default";
179                                 pinctrl-0 = <&pinctrl_i2c_twi>;
180                                 reg = <0xfffac000 0x100>;
181                                 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
182                                 #address-cells = <1>;
183                                 #size-cells = <0>;
184                                 clocks = <&twi0_clk>;
185                                 status = "disabled";
186                         };
187
188                         usart0: serial@fffb0000 {
189                                 compatible = "atmel,at91sam9260-usart";
190                                 reg = <0xfffb0000 0x200>;
191                                 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
192                                 atmel,use-dma-rx;
193                                 atmel,use-dma-tx;
194                                 pinctrl-names = "default";
195                                 pinctrl-0 = <&pinctrl_usart0>;
196                                 clocks = <&usart0_clk>;
197                                 clock-names = "usart";
198                                 status = "disabled";
199                         };
200
201                         usart1: serial@fffb4000 {
202                                 compatible = "atmel,at91sam9260-usart";
203                                 reg = <0xfffb4000 0x200>;
204                                 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
205                                 atmel,use-dma-rx;
206                                 atmel,use-dma-tx;
207                                 pinctrl-names = "default";
208                                 pinctrl-0 = <&pinctrl_usart1>;
209                                 clocks = <&usart1_clk>;
210                                 clock-names = "usart";
211                                 status = "disabled";
212                         };
213
214                         usart2: serial@fffb8000{
215                                 compatible = "atmel,at91sam9260-usart";
216                                 reg = <0xfffb8000 0x200>;
217                                 interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
218                                 atmel,use-dma-rx;
219                                 atmel,use-dma-tx;
220                                 pinctrl-names = "default";
221                                 pinctrl-0 = <&pinctrl_usart2>;
222                                 clocks = <&usart2_clk>;
223                                 clock-names = "usart";
224                                 status = "disabled";
225                         };
226
227                         ssc0: ssc@fffbc000 {
228                                 compatible = "atmel,at91rm9200-ssc";
229                                 reg = <0xfffbc000 0x4000>;
230                                 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
231                                 pinctrl-names = "default";
232                                 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
233                                 clocks = <&ssc0_clk>;
234                                 clock-names = "pclk";
235                                 status = "disabled";
236                         };
237
238                         ssc1: ssc@fffc0000 {
239                                 compatible = "atmel,at91rm9200-ssc";
240                                 reg = <0xfffc0000 0x4000>;
241                                 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
242                                 pinctrl-names = "default";
243                                 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
244                                 clocks = <&ssc1_clk>;
245                                 clock-names = "pclk";
246                                 status = "disabled";
247                         };
248
249                         ssc2: ssc@fffc4000 {
250                                 compatible = "atmel,at91rm9200-ssc";
251                                 reg = <0xfffc4000 0x4000>;
252                                 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
253                                 pinctrl-names = "default";
254                                 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
255                                 clocks = <&ssc2_clk>;
256                                 clock-names = "pclk";
257                                 status = "disabled";
258                         };
259
260                         spi0: spi@fffc8000 {
261                                 #address-cells = <1>;
262                                 #size-cells = <0>;
263                                 compatible = "atmel,at91rm9200-spi";
264                                 reg = <0xfffc8000 0x200>;
265                                 cs-gpios = <0>, <0>, <0>, <0>;
266                                 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
267                                 pinctrl-names = "default";
268                                 pinctrl-0 = <&pinctrl_spi0>;
269                                 clocks = <&spi0_clk>;
270                                 clock-names = "spi_clk";
271                                 status = "disabled";
272                         };
273
274                         spi1: spi@fffcc000 {
275                                 #address-cells = <1>;
276                                 #size-cells = <0>;
277                                 compatible = "atmel,at91rm9200-spi";
278                                 reg = <0xfffcc000 0x200>;
279                                 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
280                                 pinctrl-names = "default";
281                                 pinctrl-0 = <&pinctrl_spi1>;
282                                 clocks = <&spi1_clk>;
283                                 clock-names = "spi_clk";
284                                 status = "disabled";
285                         };
286
287                         ramc: ramc@ffffea00 {
288                                 compatible = "atmel,at91sam9260-sdramc";
289                                 reg = <0xffffea00 0x200>;
290                         };
291
292                         smc: smc@ffffec00 {
293                                 compatible = "atmel,at91sam9260-smc", "syscon";
294                                 reg = <0xffffec00 0x200>;
295                         };
296
297                         matrix: matrix@ffffee00 {
298                                 compatible = "atmel,at91sam9261-matrix", "syscon";
299                                 reg = <0xffffee00 0x200>;
300                         };
301
302                         aic: interrupt-controller@fffff000 {
303                                 #interrupt-cells = <3>;
304                                 compatible = "atmel,at91rm9200-aic";
305                                 interrupt-controller;
306                                 reg = <0xfffff000 0x200>;
307                                 atmel,external-irqs = <29 30 31>;
308                         };
309
310                         dbgu: serial@fffff200 {
311                                 compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
312                                 reg = <0xfffff200 0x200>;
313                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
314                                 pinctrl-names = "default";
315                                 pinctrl-0 = <&pinctrl_dbgu>;
316                                 clocks = <&mck>;
317                                 clock-names = "usart";
318                                 status = "disabled";
319                         };
320
321                         pinctrl@fffff400 {
322                                 #address-cells = <1>;
323                                 #size-cells = <1>;
324                                 compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
325                                 ranges = <0xfffff400 0xfffff400 0x600>;
326
327                                 atmel,mux-mask =
328                                       /*    A         B     */
329                                       <0xffffffff 0xfffffff7>,  /* pioA */
330                                       <0xffffffff 0xfffffff4>,  /* pioB */
331                                       <0xffffffff 0xffffff07>;  /* pioC */
332
333                                 /* shared pinctrl settings */
334                                 dbgu {
335                                         pinctrl_dbgu: dbgu-0 {
336                                                 atmel,pins =
337                                                         <AT91_PIOA 9  AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
338                                                         <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
339                                         };
340                                 };
341
342                                 usart0 {
343                                         pinctrl_usart0: usart0-0 {
344                                                 atmel,pins =
345                                                         <AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
346                                                         <AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;
347                                         };
348
349                                         pinctrl_usart0_rts: usart0_rts-0 {
350                                                 atmel,pins =
351                                                         <AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
352                                         };
353
354                                         pinctrl_usart0_cts: usart0_cts-0 {
355                                                 atmel,pins =
356                                                         <AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
357                                         };
358                                 };
359
360                                 usart1 {
361                                         pinctrl_usart1: usart1-0 {
362                                                 atmel,pins =
363                                                         <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
364                                                         <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
365                                         };
366
367                                         pinctrl_usart1_rts: usart1_rts-0 {
368                                                 atmel,pins =
369                                                         <AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
370                                         };
371
372                                         pinctrl_usart1_cts: usart1_cts-0 {
373                                                 atmel,pins =
374                                                         <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
375                                         };
376                                 };
377
378                                 usart2 {
379                                         pinctrl_usart2: usart2-0 {
380                                                 atmel,pins =
381                                                         <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
382                                                         <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
383                                         };
384
385                                         pinctrl_usart2_rts: usart2_rts-0 {
386                                                 atmel,pins =
387                                                         <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
388                                         };
389
390                                         pinctrl_usart2_cts: usart2_cts-0 {
391                                                 atmel,pins =
392                                                         <AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
393                                         };
394                                 };
395
396                                 nand {
397                                         pinctrl_nand: nand-0 {
398                                                 atmel,pins =
399                                                         <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>,
400                                                         <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
401                                         };
402                                 };
403
404                                 mmc0 {
405                                         pinctrl_mmc0_clk: mmc0_clk-0 {
406                                                 atmel,pins =
407                                                         <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
408                                         };
409
410                                         pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
411                                                 atmel,pins =
412                                                         <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
413                                                         <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
414                                         };
415
416                                         pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
417                                                 atmel,pins =
418                                                         <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
419                                                         <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
420                                                         <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
421                                         };
422                                         };
423
424                                 ssc0 {
425                                         pinctrl_ssc0_tx: ssc0_tx-0 {
426                                                 atmel,pins =
427                                                         <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
428                                                         <AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
429                                                         <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
430                                         };
431
432                                         pinctrl_ssc0_rx: ssc0_rx-0 {
433                                                 atmel,pins =
434                                                         <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
435                                                         <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
436                                                         <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
437                                         };
438                                 };
439
440                                 ssc1 {
441                                         pinctrl_ssc1_tx: ssc1_tx-0 {
442                                                 atmel,pins =
443                                                         <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
444                                                         <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
445                                                         <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
446                                         };
447
448                                         pinctrl_ssc1_rx: ssc1_rx-0 {
449                                                 atmel,pins =
450                                                         <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
451                                                         <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
452                                                         <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
453                                         };
454                                 };
455
456                                 ssc2 {
457                                         pinctrl_ssc2_tx: ssc2_tx-0 {
458                                                 atmel,pins =
459                                                         <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
460                                                         <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
461                                                         <AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
462                                         };
463
464                                         pinctrl_ssc2_rx: ssc2_rx-0 {
465                                                 atmel,pins =
466                                                         <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
467                                                         <AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
468                                                         <AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
469                                         };
470                                 };
471
472                                 spi0 {
473                                         pinctrl_spi0: spi0-0 {
474                                                 atmel,pins =
475                                                         <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
476                                                         <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
477                                                         <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
478                                         };
479                                         };
480
481                                 spi1 {
482                                         pinctrl_spi1: spi1-0 {
483                                                 atmel,pins =
484                                                         <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
485                                                         <AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
486                                                         <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
487                                         };
488                                 };
489
490                                 tcb0 {
491                                         pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
492                                                 atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
493                                         };
494
495                                         pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
496                                                 atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
497                                         };
498
499                                         pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
500                                                 atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
501                                         };
502
503                                         pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
504                                                 atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
505                                         };
506
507                                         pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
508                                                 atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
509                                         };
510
511                                         pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
512                                                 atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
513                                         };
514
515                                         pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
516                                                 atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
517                                         };
518
519                                         pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
520                                                 atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
521                                         };
522
523                                         pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
524                                                 atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
525                                         };
526                                 };
527
528                                 i2c0 {
529                                         pinctrl_i2c_bitbang: i2c-0-bitbang {
530                                                 atmel,pins =
531                                                         <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
532                                                         <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
533                                         };
534                                         pinctrl_i2c_twi: i2c-0-twi {
535                                                 atmel,pins =
536                                                         <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
537                                                         <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
538                                         };
539                                 };
540
541                                 fb {
542                                         pinctrl_fb: fb-0 {
543                                                 atmel,pins =
544                                                         <AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
545                                                         <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
546                                                         <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
547                                                         <AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
548                                                         <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
549                                                         <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
550                                                         <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
551                                                         <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
552                                                         <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
553                                                         <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
554                                                         <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
555                                                         <AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
556                                                         <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
557                                                         <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
558                                                         <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
559                                                         <AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
560                                                         <AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
561                                                         <AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
562                                                         <AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
563                                                         <AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
564                                                         <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
565                                         };
566                                 };
567
568                                 pioA: gpio@fffff400 {
569                                         compatible = "atmel,at91rm9200-gpio";
570                                         reg = <0xfffff400 0x200>;
571                                         interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
572                                         #gpio-cells = <2>;
573                                         gpio-controller;
574                                         interrupt-controller;
575                                         #interrupt-cells = <2>;
576                                         clocks = <&pioA_clk>;
577                                 };
578
579                                 pioB: gpio@fffff600 {
580                                         compatible = "atmel,at91rm9200-gpio";
581                                         reg = <0xfffff600 0x200>;
582                                         interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
583                                         #gpio-cells = <2>;
584                                         gpio-controller;
585                                         interrupt-controller;
586                                         #interrupt-cells = <2>;
587                                         clocks = <&pioB_clk>;
588                                 };
589
590                                 pioC: gpio@fffff800 {
591                                         compatible = "atmel,at91rm9200-gpio";
592                                         reg = <0xfffff800 0x200>;
593                                         interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
594                                         #gpio-cells = <2>;
595                                         gpio-controller;
596                                         interrupt-controller;
597                                         #interrupt-cells = <2>;
598                                         clocks = <&pioC_clk>;
599                                 };
600                         };
601
602                         pmc: pmc@fffffc00 {
603                                 compatible = "atmel,at91rm9200-pmc", "syscon";
604                                 reg = <0xfffffc00 0x100>;
605                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
606                                 interrupt-controller;
607                                 #address-cells = <1>;
608                                 #size-cells = <0>;
609                                 #interrupt-cells = <1>;
610
611                                 main_osc: main_osc {
612                                         compatible = "atmel,at91rm9200-clk-main-osc";
613                                         #clock-cells = <0>;
614                                         interrupts-extended = <&pmc AT91_PMC_MOSCS>;
615                                         clocks = <&main_xtal>;
616                                 };
617
618                                 main: mainck {
619                                         compatible = "atmel,at91rm9200-clk-main";
620                                         #clock-cells = <0>;
621                                         clocks = <&main_osc>;
622                                 };
623
624                                 plla: pllack {
625                                         compatible = "atmel,at91rm9200-clk-pll";
626                                         #clock-cells = <0>;
627                                         interrupts-extended = <&pmc AT91_PMC_LOCKA>;
628                                         clocks = <&main>;
629                                         reg = <0>;
630                                         atmel,clk-input-range = <1000000 32000000>;
631                                         #atmel,pll-clk-output-range-cells = <4>;
632                                         atmel,pll-clk-output-ranges = <80000000 200000000 0 1>,
633                                                                 <190000000 240000000 2 1>;
634                                 };
635
636                                 pllb: pllbck {
637                                         compatible = "atmel,at91rm9200-clk-pll";
638                                         #clock-cells = <0>;
639                                         interrupts-extended = <&pmc AT91_PMC_LOCKB>;
640                                         clocks = <&main>;
641                                         reg = <1>;
642                                         atmel,clk-input-range = <1000000 5000000>;
643                                         #atmel,pll-clk-output-range-cells = <4>;
644                                         atmel,pll-clk-output-ranges = <70000000 130000000 1 1>;
645                                 };
646
647                                 mck: masterck {
648                                         compatible = "atmel,at91rm9200-clk-master";
649                                         #clock-cells = <0>;
650                                         interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
651                                         clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
652                                         atmel,clk-output-range = <0 94000000>;
653                                         atmel,clk-divisors = <1 2 4 0>;
654                                 };
655
656                                 usb: usbck {
657                                         compatible = "atmel,at91rm9200-clk-usb";
658                                         #clock-cells = <0>;
659                                         atmel,clk-divisors = <1 2 4 0>;
660                                         clocks = <&pllb>;
661                                 };
662
663                                 prog: progck {
664                                         compatible = "atmel,at91rm9200-clk-programmable";
665                                         #address-cells = <1>;
666                                         #size-cells = <0>;
667                                         interrupt-parent = <&pmc>;
668                                         clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
669
670                                         prog0: prog0 {
671                                                 #clock-cells = <0>;
672                                                 reg = <0>;
673                                                 interrupts = <AT91_PMC_PCKRDY(0)>;
674                                         };
675
676                                         prog1: prog1 {
677                                                 #clock-cells = <0>;
678                                                 reg = <1>;
679                                                 interrupts = <AT91_PMC_PCKRDY(1)>;
680                                         };
681
682                                         prog2: prog2 {
683                                                 #clock-cells = <0>;
684                                                 reg = <2>;
685                                                 interrupts = <AT91_PMC_PCKRDY(2)>;
686                                         };
687
688                                         prog3: prog3 {
689                                                 #clock-cells = <0>;
690                                                 reg = <3>;
691                                                 interrupts = <AT91_PMC_PCKRDY(3)>;
692                                         };
693                                 };
694
695                                 systemck {
696                                         compatible = "atmel,at91rm9200-clk-system";
697                                         #address-cells = <1>;
698                                         #size-cells = <0>;
699
700                                         uhpck: uhpck {
701                                                 #clock-cells = <0>;
702                                                 reg = <6>;
703                                                 clocks = <&usb>;
704                                         };
705
706                                         udpck: udpck {
707                                                 #clock-cells = <0>;
708                                                 reg = <7>;
709                                                 clocks = <&usb>;
710                                         };
711
712                                         pck0: pck0 {
713                                                 #clock-cells = <0>;
714                                                 reg = <8>;
715                                                 clocks = <&prog0>;
716                                         };
717
718                                         pck1: pck1 {
719                                                 #clock-cells = <0>;
720                                                 reg = <9>;
721                                                 clocks = <&prog1>;
722                                         };
723
724                                         pck2: pck2 {
725                                                 #clock-cells = <0>;
726                                                 reg = <10>;
727                                                 clocks = <&prog2>;
728                                         };
729
730                                         pck3: pck3 {
731                                                 #clock-cells = <0>;
732                                                 reg = <11>;
733                                                 clocks = <&prog3>;
734                                         };
735
736                                         hclk0: hclk0 {
737                                                 #clock-cells = <0>;
738                                                 reg = <16>;
739                                                 clocks = <&mck>;
740                                         };
741
742                                         hclk1: hclk1 {
743                                                 #clock-cells = <0>;
744                                                 reg = <17>;
745                                                 clocks = <&mck>;
746                                         };
747                                 };
748
749                                 periphck {
750                                         compatible = "atmel,at91rm9200-clk-peripheral";
751                                         #address-cells = <1>;
752                                         #size-cells = <0>;
753                                         clocks = <&mck>;
754
755                                         pioA_clk: pioA_clk {
756                                                 #clock-cells = <0>;
757                                                 reg = <2>;
758                                         };
759
760                                         pioB_clk: pioB_clk {
761                                                 #clock-cells = <0>;
762                                                 reg = <3>;
763                                         };
764
765                                         pioC_clk: pioC_clk {
766                                                 #clock-cells = <0>;
767                                                 reg = <4>;
768                                         };
769
770                                         usart0_clk: usart0_clk {
771                                                 #clock-cells = <0>;
772                                                 reg = <6>;
773                                         };
774
775                                         usart1_clk: usart1_clk {
776                                                 #clock-cells = <0>;
777                                                 reg = <7>;
778                                         };
779
780                                         usart2_clk: usart2_clk {
781                                                 #clock-cells = <0>;
782                                                 reg = <8>;
783                                         };
784
785                                         mci0_clk: mci0_clk {
786                                                 #clock-cells = <0>;
787                                                 reg = <9>;
788                                         };
789
790                                         udc_clk: udc_clk {
791                                                 #clock-cells = <0>;
792                                                 reg = <10>;
793                                         };
794
795                                         twi0_clk: twi0_clk {
796                                                 reg = <11>;
797                                                 #clock-cells = <0>;
798                                         };
799
800                                         spi0_clk: spi0_clk {
801                                                 #clock-cells = <0>;
802                                                 reg = <12>;
803                                         };
804
805                                         spi1_clk: spi1_clk {
806                                                 #clock-cells = <0>;
807                                                 reg = <13>;
808                                         };
809
810                                         ssc0_clk: ssc0_clk {
811                                                 #clock-cells = <0>;
812                                                 reg = <14>;
813                                         };
814
815                                         ssc1_clk: ssc1_clk {
816                                                 #clock-cells = <0>;
817                                                 reg = <15>;
818                                         };
819
820                                         ssc2_clk: ssc2_clk {
821                                                 #clock-cells = <0>;
822                                                 reg = <16>;
823                                         };
824
825                                         tc0_clk: tc0_clk {
826                                                 #clock-cells = <0>;
827                                                 reg = <17>;
828                                         };
829
830                                         tc1_clk: tc1_clk {
831                                                 #clock-cells = <0>;
832                                                 reg = <18>;
833                                         };
834
835                                         tc2_clk: tc2_clk {
836                                                 #clock-cells = <0>;
837                                                 reg = <19>;
838                                         };
839
840                                         ohci_clk: ohci_clk {
841                                                 #clock-cells = <0>;
842                                                 reg = <20>;
843                                         };
844
845                                         lcd_clk: lcd_clk {
846                                                 #clock-cells = <0>;
847                                                 reg = <21>;
848                                         };
849                                 };
850                         };
851
852                         rstc@fffffd00 {
853                                 compatible = "atmel,at91sam9260-rstc";
854                                 reg = <0xfffffd00 0x10>;
855                                 clocks = <&slow_xtal>;
856                         };
857
858                         shdwc@fffffd10 {
859                                 compatible = "atmel,at91sam9260-shdwc";
860                                 reg = <0xfffffd10 0x10>;
861                                 clocks = <&slow_xtal>;
862                         };
863
864                         pit: timer@fffffd30 {
865                                 compatible = "atmel,at91sam9260-pit";
866                                 reg = <0xfffffd30 0xf>;
867                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
868                                 clocks = <&mck>;
869                         };
870
871                         rtc@fffffd20 {
872                                 compatible = "atmel,at91sam9260-rtt";
873                                 reg = <0xfffffd20 0x10>;
874                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
875                                 clocks = <&slow_xtal>;
876                                 status = "disabled";
877                         };
878
879                         watchdog@fffffd40 {
880                                 compatible = "atmel,at91sam9260-wdt";
881                                 reg = <0xfffffd40 0x10>;
882                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
883                                 clocks = <&slow_xtal>;
884                                 status = "disabled";
885                         };
886
887                         gpbr: syscon@fffffd50 {
888                                 compatible = "atmel,at91sam9260-gpbr", "syscon";
889                                 reg = <0xfffffd50 0x10>;
890                                 status = "disabled";
891                         };
892                 };
893         };
894
895         i2c-gpio-0 {
896                 compatible = "i2c-gpio";
897                 pinctrl-names = "default";
898                 pinctrl-0 = <&pinctrl_i2c_bitbang>;
899                 gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
900                         <&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
901                 i2c-gpio,sda-open-drain;
902                 i2c-gpio,scl-open-drain;
903                 i2c-gpio,delay-us = <2>;        /* ~100 kHz */
904                 #address-cells = <1>;
905                 #size-cells = <0>;
906                 status = "disabled";
907         };
908 };