Merge tag 'lsk-v3.10-15.04-android'
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / at91sam9260.dtsi
1 /*
2  * at91sam9260.dtsi - Device Tree Include file for AT91SAM9260 family SoC
3  *
4  *  Copyright (C) 2011 Atmel,
5  *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>,
6  *                2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
7  *
8  * Licensed under GPLv2 or later.
9  */
10
11 /include/ "skeleton.dtsi"
12
13 / {
14         model = "Atmel AT91SAM9260 family SoC";
15         compatible = "atmel,at91sam9260";
16         interrupt-parent = <&aic>;
17
18         aliases {
19                 serial0 = &dbgu;
20                 serial1 = &usart0;
21                 serial2 = &usart1;
22                 serial3 = &usart2;
23                 serial4 = &usart3;
24                 serial5 = &uart0;
25                 serial6 = &uart1;
26                 gpio0 = &pioA;
27                 gpio1 = &pioB;
28                 gpio2 = &pioC;
29                 tcb0 = &tcb0;
30                 tcb1 = &tcb1;
31                 i2c0 = &i2c0;
32                 ssc0 = &ssc0;
33         };
34         cpus {
35                 #address-cells = <0>;
36                 #size-cells = <0>;
37
38                 cpu {
39                         compatible = "arm,arm926ej-s";
40                         device_type = "cpu";
41                 };
42         };
43
44         memory {
45                 reg = <0x20000000 0x04000000>;
46         };
47
48         ahb {
49                 compatible = "simple-bus";
50                 #address-cells = <1>;
51                 #size-cells = <1>;
52                 ranges;
53
54                 apb {
55                         compatible = "simple-bus";
56                         #address-cells = <1>;
57                         #size-cells = <1>;
58                         ranges;
59
60                         aic: interrupt-controller@fffff000 {
61                                 #interrupt-cells = <3>;
62                                 compatible = "atmel,at91rm9200-aic";
63                                 interrupt-controller;
64                                 reg = <0xfffff000 0x200>;
65                                 atmel,external-irqs = <29 30 31>;
66                         };
67
68                         ramc0: ramc@ffffea00 {
69                                 compatible = "atmel,at91sam9260-sdramc";
70                                 reg = <0xffffea00 0x200>;
71                         };
72
73                         pmc: pmc@fffffc00 {
74                                 compatible = "atmel,at91rm9200-pmc";
75                                 reg = <0xfffffc00 0x100>;
76                         };
77
78                         rstc@fffffd00 {
79                                 compatible = "atmel,at91sam9260-rstc";
80                                 reg = <0xfffffd00 0x10>;
81                         };
82
83                         shdwc@fffffd10 {
84                                 compatible = "atmel,at91sam9260-shdwc";
85                                 reg = <0xfffffd10 0x10>;
86                         };
87
88                         pit: timer@fffffd30 {
89                                 compatible = "atmel,at91sam9260-pit";
90                                 reg = <0xfffffd30 0xf>;
91                                 interrupts = <1 4 7>;
92                         };
93
94                         tcb0: timer@fffa0000 {
95                                 compatible = "atmel,at91rm9200-tcb";
96                                 reg = <0xfffa0000 0x100>;
97                                 interrupts = <17 4 0 18 4 0 19 4 0>;
98                         };
99
100                         tcb1: timer@fffdc000 {
101                                 compatible = "atmel,at91rm9200-tcb";
102                                 reg = <0xfffdc000 0x100>;
103                                 interrupts = <26 4 0 27 4 0 28 4 0>;
104                         };
105
106                         pinctrl@fffff400 {
107                                 #address-cells = <1>;
108                                 #size-cells = <1>;
109                                 compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
110                                 ranges = <0xfffff400 0xfffff400 0x600>;
111
112                                 atmel,mux-mask = <
113                                       /*    A         B     */
114                                        0xffffffff 0xffc00c3b  /* pioA */
115                                        0xffffffff 0x7fff3ccf  /* pioB */
116                                        0xffffffff 0x007fffff  /* pioC */
117                                       >;
118
119                                 /* shared pinctrl settings */
120                                 dbgu {
121                                         pinctrl_dbgu: dbgu-0 {
122                                                 atmel,pins =
123                                                         <1 14 0x1 0x0   /* PB14 periph A */
124                                                          1 15 0x1 0x1>; /* PB15 periph with pullup */
125                                         };
126                                 };
127
128                                 usart0 {
129                                         pinctrl_usart0: usart0-0 {
130                                                 atmel,pins =
131                                                         <1 4 0x1 0x0    /* PB4 periph A */
132                                                          1 5 0x1 0x0>;  /* PB5 periph A */
133                                         };
134
135                                         pinctrl_usart0_rts: usart0_rts-0 {
136                                                 atmel,pins =
137                                                         <1 26 0x1 0x0>; /* PB26 periph A */
138                                         };
139
140                                         pinctrl_usart0_cts: usart0_cts-0 {
141                                                 atmel,pins =
142                                                         <1 27 0x1 0x0>; /* PB27 periph A */
143                                         };
144
145                                         pinctrl_usart0_dtr_dsr: usart0_dtr_dsr-0 {
146                                                 atmel,pins =
147                                                         <1 24 0x1 0x0   /* PB24 periph A */
148                                                          1 22 0x1 0x0>; /* PB22 periph A */
149                                         };
150
151                                         pinctrl_usart0_dcd: usart0_dcd-0 {
152                                                 atmel,pins =
153                                                         <1 23 0x1 0x0>; /* PB23 periph A */
154                                         };
155
156                                         pinctrl_usart0_ri: usart0_ri-0 {
157                                                 atmel,pins =
158                                                         <1 25 0x1 0x0>; /* PB25 periph A */
159                                         };
160                                 };
161
162                                 usart1 {
163                                         pinctrl_usart1: usart1-0 {
164                                                 atmel,pins =
165                                                         <1 6 0x1 0x1    /* PB6 periph A with pullup */
166                                                          1 7 0x1 0x0>;  /* PB7 periph A */
167                                         };
168
169                                         pinctrl_usart1_rts: usart1_rts-0 {
170                                                 atmel,pins =
171                                                         <1 28 0x1 0x0>; /* PB28 periph A */
172                                         };
173
174                                         pinctrl_usart1_cts: usart1_cts-0 {
175                                                 atmel,pins =
176                                                         <1 29 0x1 0x0>; /* PB29 periph A */
177                                         };
178                                 };
179
180                                 usart2 {
181                                         pinctrl_usart2: usart2-0 {
182                                                 atmel,pins =
183                                                         <1 8 0x1 0x1    /* PB8 periph A with pullup */
184                                                          1 9 0x1 0x0>;  /* PB9 periph A */
185                                         };
186
187                                         pinctrl_usart2_rts: usart2_rts-0 {
188                                                 atmel,pins =
189                                                         <0 4 0x1 0x0>;  /* PA4 periph A */
190                                         };
191
192                                         pinctrl_usart2_cts: usart2_cts-0 {
193                                                 atmel,pins =
194                                                         <0 5 0x1 0x0>;  /* PA5 periph A */
195                                         };
196                                 };
197
198                                 usart3 {
199                                         pinctrl_usart3: usart3-0 {
200                                                 atmel,pins =
201                                                         <1 10 0x1 0x1   /* PB10 periph A with pullup */
202                                                          1 11 0x1 0x0>; /* PB11 periph A */
203                                         };
204
205                                         pinctrl_usart3_rts: usart3_rts-0 {
206                                                 atmel,pins =
207                                                         <2 8 0x2 0x0>;  /* PC8 periph B */
208                                         };
209
210                                         pinctrl_usart3_cts: usart3_cts-0 {
211                                                 atmel,pins =
212                                                         <2 10 0x2 0x0>; /* PC10 periph B */
213                                         };
214                                 };
215
216                                 uart0 {
217                                         pinctrl_uart0: uart0-0 {
218                                                 atmel,pins =
219                                                         <0 31 0x2 0x1   /* PA31 periph B with pullup */
220                                                          0 30 0x2 0x0>; /* PA30 periph B */
221                                         };
222                                 };
223
224                                 uart1 {
225                                         pinctrl_uart1: uart1-0 {
226                                                 atmel,pins =
227                                                         <1 12 0x1 0x1   /* PB12 periph A with pullup */
228                                                          1 13 0x1 0x0>; /* PB13 periph A */
229                                         };
230                                 };
231
232                                 nand {
233                                         pinctrl_nand: nand-0 {
234                                                 atmel,pins =
235                                                         <2 13 0x0 0x1   /* PC13 gpio RDY pin pull_up */
236                                                          2 14 0x0 0x1>; /* PC14 gpio enable pin pull_up */
237                                         };
238                                 };
239
240                                 macb {
241                                         pinctrl_macb_rmii: macb_rmii-0 {
242                                                 atmel,pins =
243                                                         <0 12 0x1 0x0   /* PA12 periph A */
244                                                          0 13 0x1 0x0   /* PA13 periph A */
245                                                          0 14 0x1 0x0   /* PA14 periph A */
246                                                          0 15 0x1 0x0   /* PA15 periph A */
247                                                          0 16 0x1 0x0   /* PA16 periph A */
248                                                          0 17 0x1 0x0   /* PA17 periph A */
249                                                          0 18 0x1 0x0   /* PA18 periph A */
250                                                          0 19 0x1 0x0   /* PA19 periph A */
251                                                          0 20 0x1 0x0   /* PA20 periph A */
252                                                          0 21 0x1 0x0>; /* PA21 periph A */
253                                         };
254
255                                         pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
256                                                 atmel,pins =
257                                                         <0 22 0x2 0x0   /* PA22 periph B */
258                                                          0 23 0x2 0x0   /* PA23 periph B */
259                                                          0 24 0x2 0x0   /* PA24 periph B */
260                                                          0 25 0x2 0x0   /* PA25 periph B */
261                                                          0 26 0x2 0x0   /* PA26 periph B */
262                                                          0 27 0x2 0x0   /* PA27 periph B */
263                                                          0 28 0x2 0x0   /* PA28 periph B */
264                                                          0 29 0x2 0x0>; /* PA29 periph B */
265                                         };
266
267                                         pinctrl_macb_rmii_mii_alt: macb_rmii_mii-1 {
268                                                 atmel,pins =
269                                                         <0 10 0x2 0x0   /* PA10 periph B */
270                                                          0 11 0x2 0x0   /* PA11 periph B */
271                                                          0 22 0x2 0x0   /* PA22 periph B */
272                                                          0 25 0x2 0x0   /* PA25 periph B */
273                                                          0 26 0x2 0x0   /* PA26 periph B */
274                                                          0 27 0x2 0x0   /* PA27 periph B */
275                                                          0 28 0x2 0x0   /* PA28 periph B */
276                                                          0 29 0x2 0x0>; /* PA29 periph B */
277                                         };
278                                 };
279
280                                 mmc0 {
281                                         pinctrl_mmc0_clk: mmc0_clk-0 {
282                                                 atmel,pins =
283                                                         <0 8 0x1 0x0>;  /* PA8 periph A */
284                                         };
285
286                                         pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
287                                                 atmel,pins =
288                                                         <0 7 0x1 0x1    /* PA7 periph A with pullup */
289                                                          0 6 0x1 0x1>;  /* PA6 periph A with pullup */
290                                         };
291
292                                         pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
293                                                 atmel,pins =
294                                                         <0 9 0x1 0x1    /* PA9 periph A with pullup */
295                                                          0 10 0x1 0x1   /* PA10 periph A with pullup */
296                                                          0 11 0x1 0x1>; /* PA11 periph A with pullup */
297                                         };
298
299                                         pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
300                                                 atmel,pins =
301                                                         <0 1 0x2 0x1    /* PA1 periph B with pullup */
302                                                          0 0 0x2 0x1>;  /* PA0 periph B with pullup */
303                                         };
304
305                                         pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
306                                                 atmel,pins =
307                                                         <0 5 0x2 0x1    /* PA5 periph B with pullup */
308                                                          0 4 0x2 0x1    /* PA4 periph B with pullup */
309                                                          0 3 0x2 0x1>;  /* PA3 periph B with pullup */
310                                         };
311                                 };
312
313                                 ssc0 {
314                                         pinctrl_ssc0_tx: ssc0_tx-0 {
315                                                 atmel,pins =
316                                                         <1 16 0x1 0x0   /* PB16 periph A */
317                                                          1 17 0x1 0x0   /* PB17 periph A */
318                                                          1 18 0x1 0x0>; /* PB18 periph A */
319                                         };
320
321                                         pinctrl_ssc0_rx: ssc0_rx-0 {
322                                                 atmel,pins =
323                                                         <1 19 0x1 0x0   /* PB19 periph A */
324                                                          1 20 0x1 0x0   /* PB20 periph A */
325                                                          1 21 0x1 0x0>; /* PB21 periph A */
326                                         };
327                                 };
328
329                                 spi0 {
330                                         pinctrl_spi0: spi0-0 {
331                                                 atmel,pins =
332                                                         <0 0 0x1 0x0    /* PA0 periph A SPI0_MISO pin */
333                                                          0 1 0x1 0x0    /* PA1 periph A SPI0_MOSI pin */
334                                                          0 2 0x1 0x0>;  /* PA2 periph A SPI0_SPCK pin */
335                                         };
336                                 };
337
338                                 spi1 {
339                                         pinctrl_spi1: spi1-0 {
340                                                 atmel,pins =
341                                                         <1 0 0x1 0x0    /* PB0 periph A SPI1_MISO pin */
342                                                          1 1 0x1 0x0    /* PB1 periph A SPI1_MOSI pin */
343                                                          1 2 0x1 0x0>;  /* PB2 periph A SPI1_SPCK pin */
344                                         };
345                                 };
346
347                                 i2c_gpio0 {
348                                         pinctrl_i2c_gpio0: i2c_gpio0-0 {
349                                                 atmel,pins =
350                                                         <0 23 0x0 0x3   /* PA23 gpio I2C_SDA pin */
351                                                          0 24 0x0 0x3>; /* PA24 gpio I2C_SCL pin */
352                                         };
353                                 };
354
355                                 pioA: gpio@fffff400 {
356                                         compatible = "atmel,at91rm9200-gpio";
357                                         reg = <0xfffff400 0x200>;
358                                         interrupts = <2 4 1>;
359                                         #gpio-cells = <2>;
360                                         gpio-controller;
361                                         interrupt-controller;
362                                         #interrupt-cells = <2>;
363                                 };
364
365                                 pioB: gpio@fffff600 {
366                                         compatible = "atmel,at91rm9200-gpio";
367                                         reg = <0xfffff600 0x200>;
368                                         interrupts = <3 4 1>;
369                                         #gpio-cells = <2>;
370                                         gpio-controller;
371                                         interrupt-controller;
372                                         #interrupt-cells = <2>;
373                                 };
374
375                                 pioC: gpio@fffff800 {
376                                         compatible = "atmel,at91rm9200-gpio";
377                                         reg = <0xfffff800 0x200>;
378                                         interrupts = <4 4 1>;
379                                         #gpio-cells = <2>;
380                                         gpio-controller;
381                                         interrupt-controller;
382                                         #interrupt-cells = <2>;
383                                 };
384                         };
385
386                         dbgu: serial@fffff200 {
387                                 compatible = "atmel,at91sam9260-usart";
388                                 reg = <0xfffff200 0x200>;
389                                 interrupts = <1 4 7>;
390                                 pinctrl-names = "default";
391                                 pinctrl-0 = <&pinctrl_dbgu>;
392                                 status = "disabled";
393                         };
394
395                         usart0: serial@fffb0000 {
396                                 compatible = "atmel,at91sam9260-usart";
397                                 reg = <0xfffb0000 0x200>;
398                                 interrupts = <6 4 5>;
399                                 atmel,use-dma-rx;
400                                 atmel,use-dma-tx;
401                                 pinctrl-names = "default";
402                                 pinctrl-0 = <&pinctrl_usart0>;
403                                 status = "disabled";
404                         };
405
406                         usart1: serial@fffb4000 {
407                                 compatible = "atmel,at91sam9260-usart";
408                                 reg = <0xfffb4000 0x200>;
409                                 interrupts = <7 4 5>;
410                                 atmel,use-dma-rx;
411                                 atmel,use-dma-tx;
412                                 pinctrl-names = "default";
413                                 pinctrl-0 = <&pinctrl_usart1>;
414                                 status = "disabled";
415                         };
416
417                         usart2: serial@fffb8000 {
418                                 compatible = "atmel,at91sam9260-usart";
419                                 reg = <0xfffb8000 0x200>;
420                                 interrupts = <8 4 5>;
421                                 atmel,use-dma-rx;
422                                 atmel,use-dma-tx;
423                                 pinctrl-names = "default";
424                                 pinctrl-0 = <&pinctrl_usart2>;
425                                 status = "disabled";
426                         };
427
428                         usart3: serial@fffd0000 {
429                                 compatible = "atmel,at91sam9260-usart";
430                                 reg = <0xfffd0000 0x200>;
431                                 interrupts = <23 4 5>;
432                                 atmel,use-dma-rx;
433                                 atmel,use-dma-tx;
434                                 pinctrl-names = "default";
435                                 pinctrl-0 = <&pinctrl_usart3>;
436                                 status = "disabled";
437                         };
438
439                         uart0: serial@fffd4000 {
440                                 compatible = "atmel,at91sam9260-usart";
441                                 reg = <0xfffd4000 0x200>;
442                                 interrupts = <24 4 5>;
443                                 atmel,use-dma-rx;
444                                 atmel,use-dma-tx;
445                                 pinctrl-names = "default";
446                                 pinctrl-0 = <&pinctrl_uart0>;
447                                 status = "disabled";
448                         };
449
450                         uart1: serial@fffd8000 {
451                                 compatible = "atmel,at91sam9260-usart";
452                                 reg = <0xfffd8000 0x200>;
453                                 interrupts = <25 4 5>;
454                                 atmel,use-dma-rx;
455                                 atmel,use-dma-tx;
456                                 pinctrl-names = "default";
457                                 pinctrl-0 = <&pinctrl_uart1>;
458                                 status = "disabled";
459                         };
460
461                         macb0: ethernet@fffc4000 {
462                                 compatible = "cdns,at32ap7000-macb", "cdns,macb";
463                                 reg = <0xfffc4000 0x100>;
464                                 interrupts = <21 4 3>;
465                                 pinctrl-names = "default";
466                                 pinctrl-0 = <&pinctrl_macb_rmii>;
467                                 status = "disabled";
468                         };
469
470                         usb1: gadget@fffa4000 {
471                                 compatible = "atmel,at91rm9200-udc";
472                                 reg = <0xfffa4000 0x4000>;
473                                 interrupts = <10 4 2>;
474                                 status = "disabled";
475                         };
476
477                         i2c0: i2c@fffac000 {
478                                 compatible = "atmel,at91sam9260-i2c";
479                                 reg = <0xfffac000 0x100>;
480                                 interrupts = <11 4 6>;
481                                 #address-cells = <1>;
482                                 #size-cells = <0>;
483                                 status = "disabled";
484                         };
485
486                         mmc0: mmc@fffa8000 {
487                                 compatible = "atmel,hsmci";
488                                 reg = <0xfffa8000 0x600>;
489                                 interrupts = <9 4 0>;
490                                 #address-cells = <1>;
491                                 #size-cells = <0>;
492                                 status = "disabled";
493                         };
494
495                         ssc0: ssc@fffbc000 {
496                                 compatible = "atmel,at91rm9200-ssc";
497                                 reg = <0xfffbc000 0x4000>;
498                                 interrupts = <14 4 5>;
499                                 pinctrl-names = "default";
500                                 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
501                                 status = "disabled";
502                         };
503
504                         spi0: spi@fffc8000 {
505                                 #address-cells = <1>;
506                                 #size-cells = <0>;
507                                 compatible = "atmel,at91rm9200-spi";
508                                 reg = <0xfffc8000 0x200>;
509                                 interrupts = <12 4 3>;
510                                 pinctrl-names = "default";
511                                 pinctrl-0 = <&pinctrl_spi0>;
512                                 status = "disabled";
513                         };
514
515                         spi1: spi@fffcc000 {
516                                 #address-cells = <1>;
517                                 #size-cells = <0>;
518                                 compatible = "atmel,at91rm9200-spi";
519                                 reg = <0xfffcc000 0x200>;
520                                 interrupts = <13 4 3>;
521                                 pinctrl-names = "default";
522                                 pinctrl-0 = <&pinctrl_spi1>;
523                                 status = "disabled";
524                         };
525
526                         adc0: adc@fffe0000 {
527                                 compatible = "atmel,at91sam9260-adc";
528                                 reg = <0xfffe0000 0x100>;
529                                 interrupts = <5 4 0>;
530                                 atmel,adc-use-external-triggers;
531                                 atmel,adc-channels-used = <0xf>;
532                                 atmel,adc-vref = <3300>;
533                                 atmel,adc-num-channels = <4>;
534                                 atmel,adc-startup-time = <15>;
535                                 atmel,adc-channel-base = <0x30>;
536                                 atmel,adc-drdy-mask = <0x10000>;
537                                 atmel,adc-status-register = <0x1c>;
538                                 atmel,adc-trigger-register = <0x04>;
539                                 atmel,adc-res = <8 10>;
540                                 atmel,adc-res-names = "lowres", "highres";
541                                 atmel,adc-use-res = "highres";
542
543                                 trigger@0 {
544                                         trigger-name = "timer-counter-0";
545                                         trigger-value = <0x1>;
546                                 };
547                                 trigger@1 {
548                                         trigger-name = "timer-counter-1";
549                                         trigger-value = <0x3>;
550                                 };
551
552                                 trigger@2 {
553                                         trigger-name = "timer-counter-2";
554                                         trigger-value = <0x5>;
555                                 };
556
557                                 trigger@3 {
558                                         trigger-name = "external";
559                                         trigger-value = <0x13>;
560                                         trigger-external;
561                                 };
562                         };
563
564                         watchdog@fffffd40 {
565                                 compatible = "atmel,at91sam9260-wdt";
566                                 reg = <0xfffffd40 0x10>;
567                                 status = "disabled";
568                         };
569                 };
570
571                 nand0: nand@40000000 {
572                         compatible = "atmel,at91rm9200-nand";
573                         #address-cells = <1>;
574                         #size-cells = <1>;
575                         reg = <0x40000000 0x10000000
576                                0xffffe800 0x200
577                               >;
578                         atmel,nand-addr-offset = <21>;
579                         atmel,nand-cmd-offset = <22>;
580                         pinctrl-names = "default";
581                         pinctrl-0 = <&pinctrl_nand>;
582                         gpios = <&pioC 13 0
583                                  &pioC 14 0
584                                  0
585                                 >;
586                         status = "disabled";
587                 };
588
589                 usb0: ohci@00500000 {
590                         compatible = "atmel,at91rm9200-ohci", "usb-ohci";
591                         reg = <0x00500000 0x100000>;
592                         interrupts = <20 4 2>;
593                         status = "disabled";
594                 };
595         };
596
597         i2c@0 {
598                 compatible = "i2c-gpio";
599                 gpios = <&pioA 23 0 /* sda */
600                          &pioA 24 0 /* scl */
601                         >;
602                 i2c-gpio,sda-open-drain;
603                 i2c-gpio,scl-open-drain;
604                 i2c-gpio,delay-us = <2>;        /* ~100 kHz */
605                 #address-cells = <1>;
606                 #size-cells = <0>;
607                 pinctrl-names = "default";
608                 pinctrl-0 = <&pinctrl_i2c_gpio0>;
609                 status = "disabled";
610         };
611 };