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";
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>;
70 ranges = <0 0x00300000 0x28000>;
74 compatible = "simple-bus";
80 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
81 reg = <0x00500000 0x100000>;
82 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
83 clocks = <&pmc PMC_TYPE_PERIPHERAL 20>, <&pmc PMC_TYPE_SYSTEM 16>, <&pmc PMC_TYPE_SYSTEM 6>;
84 clock-names = "ohci_clk", "hclk", "uhpck";
89 compatible = "atmel,at91sam9261-lcdc";
90 reg = <0x00600000 0x1000>;
91 interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
92 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_fb>;
94 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_SYSTEM 17>;
95 clock-names = "lcdc_clk", "hclk";
100 compatible = "atmel,at91sam9261-ebi";
101 #address-cells = <2>;
104 atmel,matrix = <&matrix>;
105 reg = <0x10000000 0x80000000>;
106 ranges = <0x0 0x0 0x10000000 0x10000000
107 0x1 0x0 0x20000000 0x10000000
108 0x2 0x0 0x30000000 0x10000000
109 0x3 0x0 0x40000000 0x10000000
110 0x4 0x0 0x50000000 0x10000000
111 0x5 0x0 0x60000000 0x10000000
112 0x6 0x0 0x70000000 0x10000000
113 0x7 0x0 0x80000000 0x10000000>;
114 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
117 nand_controller: nand-controller {
118 compatible = "atmel,at91sam9261-nand-controller";
119 #address-cells = <2>;
127 compatible = "simple-bus";
128 #address-cells = <1>;
132 tcb0: timer@fffa0000 {
133 compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
134 #address-cells = <1>;
136 reg = <0xfffa0000 0x100>;
137 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
138 <18 IRQ_TYPE_LEVEL_HIGH 0>,
139 <19 IRQ_TYPE_LEVEL_HIGH 0>;
140 clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 19>, <&slow_xtal>;
141 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
144 usb1: gadget@fffa4000 {
145 compatible = "atmel,at91sam9261-udc";
146 reg = <0xfffa4000 0x4000>;
147 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
148 clocks = <&pmc PMC_TYPE_PERIPHERAL 10>, <&pmc PMC_TYPE_SYSTEM 7>;
149 clock-names = "pclk", "hclk";
150 atmel,matrix = <&matrix>;
155 compatible = "atmel,hsmci";
156 reg = <0xfffa8000 0x600>;
157 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
158 pinctrl-names = "default";
159 pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
160 #address-cells = <1>;
162 clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
163 clock-names = "mci_clk";
168 compatible = "atmel,at91sam9261-i2c";
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_i2c_twi>;
171 reg = <0xfffac000 0x100>;
172 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
173 #address-cells = <1>;
175 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
179 usart0: serial@fffb0000 {
180 compatible = "atmel,at91sam9260-usart";
181 reg = <0xfffb0000 0x200>;
182 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_usart0>;
187 clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
188 clock-names = "usart";
192 usart1: serial@fffb4000 {
193 compatible = "atmel,at91sam9260-usart";
194 reg = <0xfffb4000 0x200>;
195 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
198 pinctrl-names = "default";
199 pinctrl-0 = <&pinctrl_usart1>;
200 clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
201 clock-names = "usart";
205 usart2: serial@fffb8000{
206 compatible = "atmel,at91sam9260-usart";
207 reg = <0xfffb8000 0x200>;
208 interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
211 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_usart2>;
213 clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
214 clock-names = "usart";
219 compatible = "atmel,at91rm9200-ssc";
220 reg = <0xfffbc000 0x4000>;
221 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
224 clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
225 clock-names = "pclk";
230 compatible = "atmel,at91rm9200-ssc";
231 reg = <0xfffc0000 0x4000>;
232 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
235 clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
236 clock-names = "pclk";
241 compatible = "atmel,at91rm9200-ssc";
242 reg = <0xfffc4000 0x4000>;
243 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
244 pinctrl-names = "default";
245 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
246 clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
247 clock-names = "pclk";
252 #address-cells = <1>;
254 compatible = "atmel,at91rm9200-spi";
255 reg = <0xfffc8000 0x200>;
256 cs-gpios = <0>, <0>, <0>, <0>;
257 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_spi0>;
260 clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
261 clock-names = "spi_clk";
266 #address-cells = <1>;
268 compatible = "atmel,at91rm9200-spi";
269 reg = <0xfffcc000 0x200>;
270 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
271 pinctrl-names = "default";
272 pinctrl-0 = <&pinctrl_spi1>;
273 clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
274 clock-names = "spi_clk";
278 ramc: ramc@ffffea00 {
279 compatible = "atmel,at91sam9260-sdramc";
280 reg = <0xffffea00 0x200>;
284 compatible = "atmel,at91sam9260-smc", "syscon";
285 reg = <0xffffec00 0x200>;
288 matrix: matrix@ffffee00 {
289 compatible = "atmel,at91sam9261-matrix", "syscon";
290 reg = <0xffffee00 0x200>;
293 aic: interrupt-controller@fffff000 {
294 #interrupt-cells = <3>;
295 compatible = "atmel,at91rm9200-aic";
296 interrupt-controller;
297 reg = <0xfffff000 0x200>;
298 atmel,external-irqs = <29 30 31>;
301 dbgu: serial@fffff200 {
302 compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
303 reg = <0xfffff200 0x200>;
304 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
305 pinctrl-names = "default";
306 pinctrl-0 = <&pinctrl_dbgu>;
307 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
308 clock-names = "usart";
313 #address-cells = <1>;
315 compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
316 ranges = <0xfffff400 0xfffff400 0x600>;
320 <0xffffffff 0xfffffff7>, /* pioA */
321 <0xffffffff 0xfffffff4>, /* pioB */
322 <0xffffffff 0xffffff07>; /* pioC */
324 /* shared pinctrl settings */
326 pinctrl_dbgu: dbgu-0 {
328 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
329 <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
334 pinctrl_usart0: usart0-0 {
336 <AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
337 <AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
340 pinctrl_usart0_rts: usart0_rts-0 {
342 <AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
345 pinctrl_usart0_cts: usart0_cts-0 {
347 <AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
352 pinctrl_usart1: usart1-0 {
354 <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
355 <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
358 pinctrl_usart1_rts: usart1_rts-0 {
360 <AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
363 pinctrl_usart1_cts: usart1_cts-0 {
365 <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
370 pinctrl_usart2: usart2-0 {
372 <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
373 <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
376 pinctrl_usart2_rts: usart2_rts-0 {
378 <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
381 pinctrl_usart2_cts: usart2_cts-0 {
383 <AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
388 pinctrl_nand_rb: nand-rb-0 {
390 <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
393 pinctrl_nand_cs: nand-cs-0 {
395 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
400 pinctrl_mmc0_clk: mmc0_clk-0 {
402 <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
405 pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
407 <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
408 <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
411 pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
413 <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
414 <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
415 <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
420 pinctrl_ssc0_tx: ssc0_tx-0 {
422 <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
423 <AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
424 <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
427 pinctrl_ssc0_rx: ssc0_rx-0 {
429 <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
430 <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
431 <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
436 pinctrl_ssc1_tx: ssc1_tx-0 {
438 <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
439 <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
440 <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
443 pinctrl_ssc1_rx: ssc1_rx-0 {
445 <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
446 <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
447 <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
452 pinctrl_ssc2_tx: ssc2_tx-0 {
454 <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
455 <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
456 <AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
459 pinctrl_ssc2_rx: ssc2_rx-0 {
461 <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
462 <AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
463 <AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
468 pinctrl_spi0: spi0-0 {
470 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
471 <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
472 <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
477 pinctrl_spi1: spi1-0 {
479 <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
480 <AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
481 <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
486 pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
487 atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
490 pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
491 atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
494 pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
495 atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
498 pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
499 atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
502 pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
503 atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
506 pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
507 atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
510 pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
511 atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
514 pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
515 atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
518 pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
519 atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
524 pinctrl_i2c_bitbang: i2c-0-bitbang {
526 <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
527 <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
529 pinctrl_i2c_twi: i2c-0-twi {
531 <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
532 <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
539 <AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
540 <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
541 <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
542 <AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
543 <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
544 <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
545 <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
546 <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
547 <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
548 <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
549 <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
550 <AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
551 <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
552 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
553 <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
554 <AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
555 <AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
556 <AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
557 <AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
558 <AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
559 <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
563 pioA: gpio@fffff400 {
564 compatible = "atmel,at91rm9200-gpio";
565 reg = <0xfffff400 0x200>;
566 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
569 interrupt-controller;
570 #interrupt-cells = <2>;
571 clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
574 pioB: gpio@fffff600 {
575 compatible = "atmel,at91rm9200-gpio";
576 reg = <0xfffff600 0x200>;
577 interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
580 interrupt-controller;
581 #interrupt-cells = <2>;
582 clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
585 pioC: gpio@fffff800 {
586 compatible = "atmel,at91rm9200-gpio";
587 reg = <0xfffff800 0x200>;
588 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
591 interrupt-controller;
592 #interrupt-cells = <2>;
593 clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
598 compatible = "atmel,at91sam9261-pmc", "syscon";
599 reg = <0xfffffc00 0x100>;
600 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
602 clocks = <&slow_xtal>, <&main_xtal>;
603 clock-names = "slow_xtal", "main_xtal";
607 compatible = "atmel,at91sam9260-rstc";
608 reg = <0xfffffd00 0x10>;
609 clocks = <&slow_xtal>;
613 compatible = "atmel,at91sam9260-shdwc";
614 reg = <0xfffffd10 0x10>;
615 clocks = <&slow_xtal>;
618 pit: timer@fffffd30 {
619 compatible = "atmel,at91sam9260-pit";
620 reg = <0xfffffd30 0xf>;
621 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
622 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
626 compatible = "atmel,at91sam9260-rtt";
627 reg = <0xfffffd20 0x10>;
628 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
629 clocks = <&slow_xtal>;
634 compatible = "atmel,at91sam9260-wdt";
635 reg = <0xfffffd40 0x10>;
636 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
637 clocks = <&slow_xtal>;
641 gpbr: syscon@fffffd50 {
642 compatible = "atmel,at91sam9260-gpbr", "syscon";
643 reg = <0xfffffd50 0x10>;
650 compatible = "i2c-gpio";
651 pinctrl-names = "default";
652 pinctrl-0 = <&pinctrl_i2c_bitbang>;
653 gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
654 <&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
655 i2c-gpio,sda-open-drain;
656 i2c-gpio,scl-open-drain;
657 i2c-gpio,delay-us = <2>; /* ~100 kHz */
658 #address-cells = <1>;