2 * at91sam9261.dtsi - Device Tree Include file for AT91SAM9261 SoC
4 * Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
6 * Licensed under GPLv2 only.
9 #include <dt-bindings/pinctrl/at91.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/clock/at91.h>
17 model = "Atmel AT91SAM9261 family SoC";
18 compatible = "atmel,at91sam9261";
19 interrupt-parent = <&aic>;
41 compatible = "arm,arm926ej-s";
47 device_type = "memory";
48 reg = <0x20000000 0x08000000>;
52 main_xtal: main_xtal {
53 compatible = "fixed-clock";
55 clock-frequency = <0>;
58 slow_xtal: slow_xtal {
59 compatible = "fixed-clock";
61 clock-frequency = <0>;
66 compatible = "mmio-sram";
67 reg = <0x00300000 0x28000>;
71 compatible = "simple-bus";
77 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
78 reg = <0x00500000 0x100000>;
79 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
80 clocks = <&pmc PMC_TYPE_PERIPHERAL 20>, <&pmc PMC_TYPE_SYSTEM 16>, <&pmc PMC_TYPE_SYSTEM 6>;
81 clock-names = "ohci_clk", "hclk", "uhpck";
86 compatible = "atmel,at91sam9261-lcdc";
87 reg = <0x00600000 0x1000>;
88 interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
89 pinctrl-names = "default";
90 pinctrl-0 = <&pinctrl_fb>;
91 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_SYSTEM 17>;
92 clock-names = "lcdc_clk", "hclk";
97 compatible = "atmel,at91sam9261-ebi";
101 atmel,matrix = <&matrix>;
102 reg = <0x10000000 0x80000000>;
103 ranges = <0x0 0x0 0x10000000 0x10000000
104 0x1 0x0 0x20000000 0x10000000
105 0x2 0x0 0x30000000 0x10000000
106 0x3 0x0 0x40000000 0x10000000
107 0x4 0x0 0x50000000 0x10000000
108 0x5 0x0 0x60000000 0x10000000
109 0x6 0x0 0x70000000 0x10000000
110 0x7 0x0 0x80000000 0x10000000>;
111 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
114 nand_controller: nand-controller {
115 compatible = "atmel,at91sam9261-nand-controller";
116 #address-cells = <2>;
124 compatible = "simple-bus";
125 #address-cells = <1>;
129 tcb0: timer@fffa0000 {
130 compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
131 #address-cells = <1>;
133 reg = <0xfffa0000 0x100>;
134 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
135 <18 IRQ_TYPE_LEVEL_HIGH 0>,
136 <19 IRQ_TYPE_LEVEL_HIGH 0>;
137 clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 19>, <&slow_xtal>;
138 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
141 usb1: gadget@fffa4000 {
142 compatible = "atmel,at91sam9261-udc";
143 reg = <0xfffa4000 0x4000>;
144 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
145 clocks = <&pmc PMC_TYPE_PERIPHERAL 10>, <&pmc PMC_TYPE_SYSTEM 7>;
146 clock-names = "pclk", "hclk";
147 atmel,matrix = <&matrix>;
152 compatible = "atmel,hsmci";
153 reg = <0xfffa8000 0x600>;
154 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
155 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
157 #address-cells = <1>;
159 clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
160 clock-names = "mci_clk";
165 compatible = "atmel,at91sam9261-i2c";
166 pinctrl-names = "default";
167 pinctrl-0 = <&pinctrl_i2c_twi>;
168 reg = <0xfffac000 0x100>;
169 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
170 #address-cells = <1>;
172 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
176 usart0: serial@fffb0000 {
177 compatible = "atmel,at91sam9260-usart";
178 reg = <0xfffb0000 0x200>;
179 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
182 pinctrl-names = "default";
183 pinctrl-0 = <&pinctrl_usart0>;
184 clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
185 clock-names = "usart";
189 usart1: serial@fffb4000 {
190 compatible = "atmel,at91sam9260-usart";
191 reg = <0xfffb4000 0x200>;
192 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
195 pinctrl-names = "default";
196 pinctrl-0 = <&pinctrl_usart1>;
197 clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
198 clock-names = "usart";
202 usart2: serial@fffb8000{
203 compatible = "atmel,at91sam9260-usart";
204 reg = <0xfffb8000 0x200>;
205 interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
208 pinctrl-names = "default";
209 pinctrl-0 = <&pinctrl_usart2>;
210 clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
211 clock-names = "usart";
216 compatible = "atmel,at91rm9200-ssc";
217 reg = <0xfffbc000 0x4000>;
218 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
219 pinctrl-names = "default";
220 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
221 clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
222 clock-names = "pclk";
227 compatible = "atmel,at91rm9200-ssc";
228 reg = <0xfffc0000 0x4000>;
229 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
230 pinctrl-names = "default";
231 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
232 clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
233 clock-names = "pclk";
238 compatible = "atmel,at91rm9200-ssc";
239 reg = <0xfffc4000 0x4000>;
240 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
241 pinctrl-names = "default";
242 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
243 clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
244 clock-names = "pclk";
249 #address-cells = <1>;
251 compatible = "atmel,at91rm9200-spi";
252 reg = <0xfffc8000 0x200>;
253 cs-gpios = <0>, <0>, <0>, <0>;
254 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
255 pinctrl-names = "default";
256 pinctrl-0 = <&pinctrl_spi0>;
257 clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
258 clock-names = "spi_clk";
263 #address-cells = <1>;
265 compatible = "atmel,at91rm9200-spi";
266 reg = <0xfffcc000 0x200>;
267 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
268 pinctrl-names = "default";
269 pinctrl-0 = <&pinctrl_spi1>;
270 clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
271 clock-names = "spi_clk";
275 ramc: ramc@ffffea00 {
276 compatible = "atmel,at91sam9260-sdramc";
277 reg = <0xffffea00 0x200>;
281 compatible = "atmel,at91sam9260-smc", "syscon";
282 reg = <0xffffec00 0x200>;
285 matrix: matrix@ffffee00 {
286 compatible = "atmel,at91sam9261-matrix", "syscon";
287 reg = <0xffffee00 0x200>;
290 aic: interrupt-controller@fffff000 {
291 #interrupt-cells = <3>;
292 compatible = "atmel,at91rm9200-aic";
293 interrupt-controller;
294 reg = <0xfffff000 0x200>;
295 atmel,external-irqs = <29 30 31>;
298 dbgu: serial@fffff200 {
299 compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
300 reg = <0xfffff200 0x200>;
301 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
302 pinctrl-names = "default";
303 pinctrl-0 = <&pinctrl_dbgu>;
304 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
305 clock-names = "usart";
310 #address-cells = <1>;
312 compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
313 ranges = <0xfffff400 0xfffff400 0x600>;
317 <0xffffffff 0xfffffff7>, /* pioA */
318 <0xffffffff 0xfffffff4>, /* pioB */
319 <0xffffffff 0xffffff07>; /* pioC */
321 /* shared pinctrl settings */
323 pinctrl_dbgu: dbgu-0 {
325 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
326 <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
331 pinctrl_usart0: usart0-0 {
333 <AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
334 <AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
337 pinctrl_usart0_rts: usart0_rts-0 {
339 <AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
342 pinctrl_usart0_cts: usart0_cts-0 {
344 <AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
349 pinctrl_usart1: usart1-0 {
351 <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
352 <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
355 pinctrl_usart1_rts: usart1_rts-0 {
357 <AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
360 pinctrl_usart1_cts: usart1_cts-0 {
362 <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
367 pinctrl_usart2: usart2-0 {
369 <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>,
370 <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
373 pinctrl_usart2_rts: usart2_rts-0 {
375 <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
378 pinctrl_usart2_cts: usart2_cts-0 {
380 <AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
385 pinctrl_nand_rb: nand-rb-0 {
387 <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
390 pinctrl_nand_cs: nand-cs-0 {
392 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
397 pinctrl_mmc0_clk: mmc0_clk-0 {
399 <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
402 pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
404 <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
405 <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
408 pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
410 <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
411 <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
412 <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
417 pinctrl_ssc0_tx: ssc0_tx-0 {
419 <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
420 <AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
421 <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
424 pinctrl_ssc0_rx: ssc0_rx-0 {
426 <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
427 <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
428 <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
433 pinctrl_ssc1_tx: ssc1_tx-0 {
435 <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
436 <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
437 <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
440 pinctrl_ssc1_rx: ssc1_rx-0 {
442 <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
443 <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
444 <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
449 pinctrl_ssc2_tx: ssc2_tx-0 {
451 <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
452 <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
453 <AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
456 pinctrl_ssc2_rx: ssc2_rx-0 {
458 <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
459 <AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
460 <AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
465 pinctrl_spi0: spi0-0 {
467 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
468 <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
469 <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
474 pinctrl_spi1: spi1-0 {
476 <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
477 <AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
478 <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
483 pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
484 atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
487 pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
488 atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
491 pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
492 atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
495 pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
496 atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
499 pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
500 atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
503 pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
504 atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
507 pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
508 atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
511 pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
512 atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
515 pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
516 atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
521 pinctrl_i2c_bitbang: i2c-0-bitbang {
523 <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
524 <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
526 pinctrl_i2c_twi: i2c-0-twi {
528 <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
529 <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
536 <AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
537 <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
538 <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
539 <AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
540 <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
541 <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
542 <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
543 <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
544 <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
545 <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
546 <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
547 <AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
548 <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
549 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
550 <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
551 <AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
552 <AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
553 <AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
554 <AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
555 <AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
556 <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
560 pioA: gpio@fffff400 {
561 compatible = "atmel,at91rm9200-gpio";
562 reg = <0xfffff400 0x200>;
563 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
566 interrupt-controller;
567 #interrupt-cells = <2>;
568 clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
571 pioB: gpio@fffff600 {
572 compatible = "atmel,at91rm9200-gpio";
573 reg = <0xfffff600 0x200>;
574 interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
577 interrupt-controller;
578 #interrupt-cells = <2>;
579 clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
582 pioC: gpio@fffff800 {
583 compatible = "atmel,at91rm9200-gpio";
584 reg = <0xfffff800 0x200>;
585 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
588 interrupt-controller;
589 #interrupt-cells = <2>;
590 clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
595 compatible = "atmel,at91sam9261-pmc", "syscon";
596 reg = <0xfffffc00 0x100>;
597 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
599 clocks = <&slow_xtal>, <&main_xtal>;
600 clock-names = "slow_xtal", "main_xtal";
604 compatible = "atmel,at91sam9260-rstc";
605 reg = <0xfffffd00 0x10>;
606 clocks = <&slow_xtal>;
610 compatible = "atmel,at91sam9260-shdwc";
611 reg = <0xfffffd10 0x10>;
612 clocks = <&slow_xtal>;
615 pit: timer@fffffd30 {
616 compatible = "atmel,at91sam9260-pit";
617 reg = <0xfffffd30 0xf>;
618 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
619 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
623 compatible = "atmel,at91sam9260-rtt";
624 reg = <0xfffffd20 0x10>;
625 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
626 clocks = <&slow_xtal>;
631 compatible = "atmel,at91sam9260-wdt";
632 reg = <0xfffffd40 0x10>;
633 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
634 clocks = <&slow_xtal>;
638 gpbr: syscon@fffffd50 {
639 compatible = "atmel,at91sam9260-gpbr", "syscon";
640 reg = <0xfffffd50 0x10>;
647 compatible = "i2c-gpio";
648 pinctrl-names = "default";
649 pinctrl-0 = <&pinctrl_i2c_bitbang>;
650 gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
651 <&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
652 i2c-gpio,sda-open-drain;
653 i2c-gpio,scl-open-drain;
654 i2c-gpio,delay-us = <2>; /* ~100 kHz */
655 #address-cells = <1>;