1 // SPDX-License-Identifier: GPL-2.0-only
3 * at91sam9261.dtsi - Device Tree Include file for AT91SAM9261 SoC
5 * Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
8 #include <dt-bindings/pinctrl/at91.h>
9 #include <dt-bindings/interrupt-controller/irq.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/clock/at91.h>
16 model = "Atmel AT91SAM9261 family SoC";
17 compatible = "atmel,at91sam9261";
18 interrupt-parent = <&aic>;
40 compatible = "arm,arm926ej-s";
46 device_type = "memory";
47 reg = <0x20000000 0x08000000>;
51 main_xtal: main_xtal {
52 compatible = "fixed-clock";
54 clock-frequency = <0>;
57 slow_xtal: slow_xtal {
58 compatible = "fixed-clock";
60 clock-frequency = <0>;
65 compatible = "mmio-sram";
66 reg = <0x00300000 0x28000>;
70 compatible = "simple-bus";
76 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
77 reg = <0x00500000 0x100000>;
78 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
79 clocks = <&pmc PMC_TYPE_PERIPHERAL 20>, <&pmc PMC_TYPE_SYSTEM 16>, <&pmc PMC_TYPE_SYSTEM 6>;
80 clock-names = "ohci_clk", "hclk", "uhpck";
85 compatible = "atmel,at91sam9261-lcdc";
86 reg = <0x00600000 0x1000>;
87 interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
88 pinctrl-names = "default";
89 pinctrl-0 = <&pinctrl_fb>;
90 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_SYSTEM 17>;
91 clock-names = "lcdc_clk", "hclk";
96 compatible = "atmel,at91sam9261-ebi";
100 atmel,matrix = <&matrix>;
101 reg = <0x10000000 0x80000000>;
102 ranges = <0x0 0x0 0x10000000 0x10000000
103 0x1 0x0 0x20000000 0x10000000
104 0x2 0x0 0x30000000 0x10000000
105 0x3 0x0 0x40000000 0x10000000
106 0x4 0x0 0x50000000 0x10000000
107 0x5 0x0 0x60000000 0x10000000
108 0x6 0x0 0x70000000 0x10000000
109 0x7 0x0 0x80000000 0x10000000>;
110 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
113 nand_controller: nand-controller {
114 compatible = "atmel,at91sam9261-nand-controller";
115 #address-cells = <2>;
123 compatible = "simple-bus";
124 #address-cells = <1>;
128 tcb0: timer@fffa0000 {
129 compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
130 #address-cells = <1>;
132 reg = <0xfffa0000 0x100>;
133 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
134 <18 IRQ_TYPE_LEVEL_HIGH 0>,
135 <19 IRQ_TYPE_LEVEL_HIGH 0>;
136 clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 19>, <&slow_xtal>;
137 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
140 usb1: gadget@fffa4000 {
141 compatible = "atmel,at91sam9261-udc";
142 reg = <0xfffa4000 0x4000>;
143 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
144 clocks = <&pmc PMC_TYPE_PERIPHERAL 10>, <&pmc PMC_TYPE_SYSTEM 7>;
145 clock-names = "pclk", "hclk";
146 atmel,matrix = <&matrix>;
151 compatible = "atmel,hsmci";
152 reg = <0xfffa8000 0x600>;
153 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
156 #address-cells = <1>;
158 clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
159 clock-names = "mci_clk";
164 compatible = "atmel,at91sam9261-i2c";
165 pinctrl-names = "default";
166 pinctrl-0 = <&pinctrl_i2c_twi>;
167 reg = <0xfffac000 0x100>;
168 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
169 #address-cells = <1>;
171 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
175 usart0: serial@fffb0000 {
176 compatible = "atmel,at91sam9260-usart";
177 reg = <0xfffb0000 0x200>;
178 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
181 pinctrl-names = "default";
182 pinctrl-0 = <&pinctrl_usart0>;
183 clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
184 clock-names = "usart";
188 usart1: serial@fffb4000 {
189 compatible = "atmel,at91sam9260-usart";
190 reg = <0xfffb4000 0x200>;
191 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
194 pinctrl-names = "default";
195 pinctrl-0 = <&pinctrl_usart1>;
196 clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
197 clock-names = "usart";
201 usart2: serial@fffb8000{
202 compatible = "atmel,at91sam9260-usart";
203 reg = <0xfffb8000 0x200>;
204 interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
207 pinctrl-names = "default";
208 pinctrl-0 = <&pinctrl_usart2>;
209 clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
210 clock-names = "usart";
215 compatible = "atmel,at91rm9200-ssc";
216 reg = <0xfffbc000 0x4000>;
217 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
220 clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
221 clock-names = "pclk";
226 compatible = "atmel,at91rm9200-ssc";
227 reg = <0xfffc0000 0x4000>;
228 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
229 pinctrl-names = "default";
230 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
231 clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
232 clock-names = "pclk";
237 compatible = "atmel,at91rm9200-ssc";
238 reg = <0xfffc4000 0x4000>;
239 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
242 clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
243 clock-names = "pclk";
248 #address-cells = <1>;
250 compatible = "atmel,at91rm9200-spi";
251 reg = <0xfffc8000 0x200>;
252 cs-gpios = <0>, <0>, <0>, <0>;
253 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
254 pinctrl-names = "default";
255 pinctrl-0 = <&pinctrl_spi0>;
256 clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
257 clock-names = "spi_clk";
262 #address-cells = <1>;
264 compatible = "atmel,at91rm9200-spi";
265 reg = <0xfffcc000 0x200>;
266 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
267 pinctrl-names = "default";
268 pinctrl-0 = <&pinctrl_spi1>;
269 clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
270 clock-names = "spi_clk";
274 ramc: ramc@ffffea00 {
275 compatible = "atmel,at91sam9260-sdramc";
276 reg = <0xffffea00 0x200>;
280 compatible = "atmel,at91sam9260-smc", "syscon";
281 reg = <0xffffec00 0x200>;
284 matrix: matrix@ffffee00 {
285 compatible = "atmel,at91sam9261-matrix", "syscon";
286 reg = <0xffffee00 0x200>;
289 aic: interrupt-controller@fffff000 {
290 #interrupt-cells = <3>;
291 compatible = "atmel,at91rm9200-aic";
292 interrupt-controller;
293 reg = <0xfffff000 0x200>;
294 atmel,external-irqs = <29 30 31>;
297 dbgu: serial@fffff200 {
298 compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
299 reg = <0xfffff200 0x200>;
300 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
301 pinctrl-names = "default";
302 pinctrl-0 = <&pinctrl_dbgu>;
303 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
304 clock-names = "usart";
309 #address-cells = <1>;
311 compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
312 ranges = <0xfffff400 0xfffff400 0x600>;
316 <0xffffffff 0xfffffff7>, /* pioA */
317 <0xffffffff 0xfffffff4>, /* pioB */
318 <0xffffffff 0xffffff07>; /* pioC */
320 /* shared pinctrl settings */
322 pinctrl_dbgu: dbgu-0 {
324 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
325 <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
330 pinctrl_usart0: usart0-0 {
332 <AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
333 <AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
336 pinctrl_usart0_rts: usart0_rts-0 {
338 <AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
341 pinctrl_usart0_cts: usart0_cts-0 {
343 <AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
348 pinctrl_usart1: usart1-0 {
350 <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
351 <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
354 pinctrl_usart1_rts: usart1_rts-0 {
356 <AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
359 pinctrl_usart1_cts: usart1_cts-0 {
361 <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
366 pinctrl_usart2: usart2-0 {
368 <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>,
369 <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
372 pinctrl_usart2_rts: usart2_rts-0 {
374 <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
377 pinctrl_usart2_cts: usart2_cts-0 {
379 <AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
384 pinctrl_nand_rb: nand-rb-0 {
386 <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
389 pinctrl_nand_cs: nand-cs-0 {
391 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
396 pinctrl_mmc0_clk: mmc0_clk-0 {
398 <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
401 pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
403 <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
404 <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
407 pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
409 <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
410 <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
411 <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
416 pinctrl_ssc0_tx: ssc0_tx-0 {
418 <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
419 <AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
420 <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
423 pinctrl_ssc0_rx: ssc0_rx-0 {
425 <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
426 <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
427 <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
432 pinctrl_ssc1_tx: ssc1_tx-0 {
434 <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
435 <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
436 <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
439 pinctrl_ssc1_rx: ssc1_rx-0 {
441 <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
442 <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
443 <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
448 pinctrl_ssc2_tx: ssc2_tx-0 {
450 <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
451 <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
452 <AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
455 pinctrl_ssc2_rx: ssc2_rx-0 {
457 <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
458 <AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
459 <AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
464 pinctrl_spi0: spi0-0 {
466 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
467 <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
468 <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
473 pinctrl_spi1: spi1-0 {
475 <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
476 <AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
477 <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
482 pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
483 atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
486 pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
487 atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
490 pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
491 atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
494 pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
495 atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
498 pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
499 atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
502 pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
503 atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
506 pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
507 atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
510 pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
511 atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
514 pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
515 atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
520 pinctrl_i2c_bitbang: i2c-0-bitbang {
522 <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
523 <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
525 pinctrl_i2c_twi: i2c-0-twi {
527 <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
528 <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
535 <AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
536 <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
537 <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
538 <AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
539 <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
540 <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
541 <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
542 <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
543 <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
544 <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
545 <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
546 <AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
547 <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
548 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
549 <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
550 <AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
551 <AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
552 <AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
553 <AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
554 <AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
555 <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
559 pioA: gpio@fffff400 {
560 compatible = "atmel,at91rm9200-gpio";
561 reg = <0xfffff400 0x200>;
562 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
565 interrupt-controller;
566 #interrupt-cells = <2>;
567 clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
570 pioB: gpio@fffff600 {
571 compatible = "atmel,at91rm9200-gpio";
572 reg = <0xfffff600 0x200>;
573 interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
576 interrupt-controller;
577 #interrupt-cells = <2>;
578 clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
581 pioC: gpio@fffff800 {
582 compatible = "atmel,at91rm9200-gpio";
583 reg = <0xfffff800 0x200>;
584 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
587 interrupt-controller;
588 #interrupt-cells = <2>;
589 clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
594 compatible = "atmel,at91sam9261-pmc", "syscon";
595 reg = <0xfffffc00 0x100>;
596 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
598 clocks = <&slow_xtal>, <&main_xtal>;
599 clock-names = "slow_xtal", "main_xtal";
603 compatible = "atmel,at91sam9260-rstc";
604 reg = <0xfffffd00 0x10>;
605 clocks = <&slow_xtal>;
609 compatible = "atmel,at91sam9260-shdwc";
610 reg = <0xfffffd10 0x10>;
611 clocks = <&slow_xtal>;
614 pit: timer@fffffd30 {
615 compatible = "atmel,at91sam9260-pit";
616 reg = <0xfffffd30 0xf>;
617 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
618 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
622 compatible = "atmel,at91sam9260-rtt";
623 reg = <0xfffffd20 0x10>;
624 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
625 clocks = <&slow_xtal>;
630 compatible = "atmel,at91sam9260-wdt";
631 reg = <0xfffffd40 0x10>;
632 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
633 clocks = <&slow_xtal>;
637 gpbr: syscon@fffffd50 {
638 compatible = "atmel,at91sam9260-gpbr", "syscon";
639 reg = <0xfffffd50 0x10>;
646 compatible = "i2c-gpio";
647 pinctrl-names = "default";
648 pinctrl-0 = <&pinctrl_i2c_bitbang>;
649 gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
650 <&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
651 i2c-gpio,sda-open-drain;
652 i2c-gpio,scl-open-drain;
653 i2c-gpio,delay-us = <2>; /* ~100 kHz */
654 #address-cells = <1>;