blob: 65e0e4f0de0bd18875ed2a5ee03223e403797c96 [file] [log] [blame]
Heiko Schocherefe04192016-05-25 07:23:46 +02001/*
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;
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +080033 spi0 = &spi0;
Heiko Schocherefe04192016-05-25 07:23:46 +020034 };
35
36 cpus {
Heiko Schocherefe04192016-05-25 07:23:46 +020037 cpu {
38 compatible = "arm,arm926ej-s";
39 device_type = "cpu";
40 };
41 };
42
43 memory {
44 reg = <0x20000000 0x08000000>;
45 };
46
47 clocks {
48 main_xtal: main_xtal {
49 compatible = "fixed-clock";
50 #clock-cells = <0>;
51 clock-frequency = <0>;
52 };
53
54 slow_xtal: slow_xtal {
55 compatible = "fixed-clock";
56 #clock-cells = <0>;
57 clock-frequency = <0>;
58 };
59 };
60
61 sram: sram@00300000 {
62 compatible = "mmio-sram";
63 reg = <0x00300000 0x28000>;
64 };
65
66 ahb {
67 compatible = "simple-bus";
68 #address-cells = <1>;
69 #size-cells = <1>;
70 ranges;
Simon Glassd3a98cb2023-02-13 08:56:33 -070071 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +020072
73 usb0: ohci@00500000 {
74 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
75 reg = <0x00500000 0x100000>;
76 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
77 clocks = <&ohci_clk>, <&hclk0>, <&uhpck>;
78 clock-names = "ohci_clk", "hclk", "uhpck";
79 status = "disabled";
80 };
81
82 fb0: fb@0x00600000 {
83 compatible = "atmel,at91sam9261-lcdc";
84 reg = <0x00600000 0x1000>;
85 interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_fb>;
88 clocks = <&lcd_clk>, <&hclk1>;
89 clock-names = "lcdc_clk", "hclk";
90 status = "disabled";
91 };
92
93 nand0: nand@40000000 {
94 compatible = "atmel,at91rm9200-nand";
95 #address-cells = <1>;
96 #size-cells = <1>;
97 reg = <0x40000000 0x10000000>;
98 atmel,nand-addr-offset = <22>;
99 atmel,nand-cmd-offset = <21>;
100 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_nand>;
102
103 gpios = <&pioC 15 GPIO_ACTIVE_HIGH>,
104 <&pioC 14 GPIO_ACTIVE_HIGH>,
105 <0>;
106 status = "disabled";
107 };
108
109 apb {
110 compatible = "simple-bus";
111 #address-cells = <1>;
112 #size-cells = <1>;
113 ranges;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700114 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200115
116 tcb0: timer@fffa0000 {
117 compatible = "atmel,at91rm9200-tcb";
118 reg = <0xfffa0000 0x100>;
119 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
120 <18 IRQ_TYPE_LEVEL_HIGH 0>,
121 <19 IRQ_TYPE_LEVEL_HIGH 0>;
122 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&slow_xtal>;
123 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
124 };
125
126 usb1: gadget@fffa4000 {
127 compatible = "atmel,at91sam9261-udc";
128 reg = <0xfffa4000 0x4000>;
129 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
130 clocks = <&udc_clk>, <&udpck>;
131 clock-names = "pclk", "hclk";
132 atmel,matrix = <&matrix>;
133 status = "disabled";
134 };
135
136 mmc0: mmc@fffa8000 {
137 compatible = "atmel,hsmci";
138 reg = <0xfffa8000 0x600>;
139 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
140 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
142 #address-cells = <1>;
143 #size-cells = <0>;
144 clocks = <&mci0_clk>;
145 clock-names = "mci_clk";
146 status = "disabled";
147 };
148
149 i2c0: i2c@fffac000 {
150 compatible = "atmel,at91sam9261-i2c";
151 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_i2c_twi>;
153 reg = <0xfffac000 0x100>;
154 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
155 #address-cells = <1>;
156 #size-cells = <0>;
157 clocks = <&twi0_clk>;
158 status = "disabled";
159 };
160
161 usart0: serial@fffb0000 {
162 compatible = "atmel,at91sam9260-usart";
163 reg = <0xfffb0000 0x200>;
164 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
165 atmel,use-dma-rx;
166 atmel,use-dma-tx;
167 pinctrl-names = "default";
168 pinctrl-0 = <&pinctrl_usart0>;
169 clocks = <&usart0_clk>;
170 clock-names = "usart";
171 status = "disabled";
172 };
173
174 usart1: serial@fffb4000 {
175 compatible = "atmel,at91sam9260-usart";
176 reg = <0xfffb4000 0x200>;
177 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
178 atmel,use-dma-rx;
179 atmel,use-dma-tx;
180 pinctrl-names = "default";
181 pinctrl-0 = <&pinctrl_usart1>;
182 clocks = <&usart1_clk>;
183 clock-names = "usart";
184 status = "disabled";
185 };
186
187 usart2: serial@fffb8000{
188 compatible = "atmel,at91sam9260-usart";
189 reg = <0xfffb8000 0x200>;
190 interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
191 atmel,use-dma-rx;
192 atmel,use-dma-tx;
193 pinctrl-names = "default";
194 pinctrl-0 = <&pinctrl_usart2>;
195 clocks = <&usart2_clk>;
196 clock-names = "usart";
197 status = "disabled";
198 };
199
200 ssc0: ssc@fffbc000 {
201 compatible = "atmel,at91rm9200-ssc";
202 reg = <0xfffbc000 0x4000>;
203 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
204 pinctrl-names = "default";
205 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
206 clocks = <&ssc0_clk>;
207 clock-names = "pclk";
208 status = "disabled";
209 };
210
211 ssc1: ssc@fffc0000 {
212 compatible = "atmel,at91rm9200-ssc";
213 reg = <0xfffc0000 0x4000>;
214 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
215 pinctrl-names = "default";
216 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
217 clocks = <&ssc1_clk>;
218 clock-names = "pclk";
219 status = "disabled";
220 };
221
222 ssc2: ssc@fffc4000 {
223 compatible = "atmel,at91rm9200-ssc";
224 reg = <0xfffc4000 0x4000>;
225 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
226 pinctrl-names = "default";
227 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
228 clocks = <&ssc2_clk>;
229 clock-names = "pclk";
230 status = "disabled";
231 };
232
233 spi0: spi@fffc8000 {
234 #address-cells = <1>;
235 #size-cells = <0>;
236 compatible = "atmel,at91rm9200-spi";
237 reg = <0xfffc8000 0x200>;
238 cs-gpios = <0>, <0>, <0>, <0>;
239 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_spi0>;
242 clocks = <&spi0_clk>;
243 clock-names = "spi_clk";
244 status = "disabled";
245 };
246
247 spi1: spi@fffcc000 {
248 #address-cells = <1>;
249 #size-cells = <0>;
250 compatible = "atmel,at91rm9200-spi";
251 reg = <0xfffcc000 0x200>;
252 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_spi1>;
255 clocks = <&spi1_clk>;
256 clock-names = "spi_clk";
257 status = "disabled";
258 };
259
260 ramc: ramc@ffffea00 {
261 compatible = "atmel,at91sam9260-sdramc";
262 reg = <0xffffea00 0x200>;
263 };
264
265 matrix: matrix@ffffee00 {
266 compatible = "atmel,at91sam9260-bus-matrix", "syscon";
267 reg = <0xffffee00 0x200>;
268 };
269
270 aic: interrupt-controller@fffff000 {
271 #interrupt-cells = <3>;
272 compatible = "atmel,at91rm9200-aic";
273 interrupt-controller;
274 reg = <0xfffff000 0x200>;
275 atmel,external-irqs = <29 30 31>;
276 };
277
278 dbgu: serial@fffff200 {
279 compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
280 reg = <0xfffff200 0x200>;
281 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
282 pinctrl-names = "default";
283 pinctrl-0 = <&pinctrl_dbgu>;
284 clocks = <&mck>;
285 clock-names = "usart";
286 status = "disabled";
287 };
288
289 pinctrl@fffff400 {
290 #address-cells = <1>;
291 #size-cells = <1>;
292 compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
293 ranges = <0xfffff400 0xfffff400 0x600>;
Manikandan Muralidharan7cff76b2025-02-10 12:21:43 +0530294
Heiko Schocherefe04192016-05-25 07:23:46 +0200295 atmel,mux-mask =
296 /* A B */
297 <0xffffffff 0xfffffff7>, /* pioA */
298 <0xffffffff 0xfffffff4>, /* pioB */
299 <0xffffffff 0xffffff07>; /* pioC */
Simon Glassd3a98cb2023-02-13 08:56:33 -0700300 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200301
302 /* shared pinctrl settings */
303 dbgu {
Simon Glassd3a98cb2023-02-13 08:56:33 -0700304 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200305 pinctrl_dbgu: dbgu-0 {
306 atmel,pins =
307 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
308 <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
309 };
310 };
311
312 usart0 {
313 pinctrl_usart0: usart0-0 {
314 atmel,pins =
315 <AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
316 <AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;
317 };
318
319 pinctrl_usart0_rts: usart0_rts-0 {
320 atmel,pins =
321 <AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
322 };
323
324 pinctrl_usart0_cts: usart0_cts-0 {
325 atmel,pins =
326 <AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
327 };
328 };
329
330 usart1 {
331 pinctrl_usart1: usart1-0 {
332 atmel,pins =
333 <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
334 <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
335 };
336
337 pinctrl_usart1_rts: usart1_rts-0 {
338 atmel,pins =
339 <AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
340 };
341
342 pinctrl_usart1_cts: usart1_cts-0 {
343 atmel,pins =
344 <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
345 };
346 };
347
348 usart2 {
349 pinctrl_usart2: usart2-0 {
350 atmel,pins =
351 <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
352 <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
353 };
354
355 pinctrl_usart2_rts: usart2_rts-0 {
356 atmel,pins =
357 <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
358 };
359
360 pinctrl_usart2_cts: usart2_cts-0 {
361 atmel,pins =
362 <AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
363 };
364 };
365
366 nand {
367 pinctrl_nand: nand-0 {
368 atmel,pins =
369 <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>,
370 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
371 };
372 };
373
374 mmc0 {
375 pinctrl_mmc0_clk: mmc0_clk-0 {
376 atmel,pins =
377 <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
378 };
379
380 pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
381 atmel,pins =
382 <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
383 <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
384 };
385
386 pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
387 atmel,pins =
388 <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
389 <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
390 <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
391 };
392 };
393
394 ssc0 {
395 pinctrl_ssc0_tx: ssc0_tx-0 {
396 atmel,pins =
397 <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
398 <AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
399 <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
400 };
401
402 pinctrl_ssc0_rx: ssc0_rx-0 {
403 atmel,pins =
404 <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
405 <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
406 <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
407 };
408 };
409
410 ssc1 {
411 pinctrl_ssc1_tx: ssc1_tx-0 {
412 atmel,pins =
413 <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
414 <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
415 <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
416 };
417
418 pinctrl_ssc1_rx: ssc1_rx-0 {
419 atmel,pins =
420 <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
421 <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
422 <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
423 };
424 };
425
426 ssc2 {
427 pinctrl_ssc2_tx: ssc2_tx-0 {
428 atmel,pins =
429 <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
430 <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
431 <AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
432 };
433
434 pinctrl_ssc2_rx: ssc2_rx-0 {
435 atmel,pins =
436 <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
437 <AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
438 <AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
439 };
440 };
441
442 spi0 {
443 pinctrl_spi0: spi0-0 {
444 atmel,pins =
445 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
446 <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
447 <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
448 };
449 };
450
451 spi1 {
452 pinctrl_spi1: spi1-0 {
453 atmel,pins =
454 <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
455 <AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
456 <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
457 };
458 };
459
460 tcb0 {
461 pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
462 atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
463 };
464
465 pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
466 atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
467 };
468
469 pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
470 atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
471 };
472
473 pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
474 atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
475 };
476
477 pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
478 atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
479 };
480
481 pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
482 atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
483 };
484
485 pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
486 atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
487 };
488
489 pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
490 atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
491 };
492
493 pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
494 atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
495 };
496 };
497
498 i2c0 {
499 pinctrl_i2c_bitbang: i2c-0-bitbang {
500 atmel,pins =
501 <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
502 <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
503 };
504 pinctrl_i2c_twi: i2c-0-twi {
505 atmel,pins =
506 <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
507 <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
508 };
509 };
510
511 fb {
512 pinctrl_fb: fb-0 {
513 atmel,pins =
514 <AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
515 <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
516 <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
517 <AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
518 <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
519 <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
520 <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
521 <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
522 <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
523 <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
524 <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
525 <AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
526 <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
527 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
528 <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
529 <AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
530 <AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
531 <AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
532 <AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
533 <AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
534 <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
535 };
536 };
Manikandan Muralidharan7cff76b2025-02-10 12:21:43 +0530537
538 pioA: gpio@fffff400 {
539 compatible = "atmel,at91rm9200-gpio";
540 reg = <0xfffff400 0x200>;
541 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
542 #gpio-cells = <2>;
543 gpio-controller;
544 interrupt-controller;
545 #interrupt-cells = <2>;
546 clocks = <&pioA_clk>;
547 bootph-all;
548 };
549
550 pioB: gpio@fffff600 {
551 compatible = "atmel,at91rm9200-gpio";
552 reg = <0xfffff600 0x200>;
553 interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
554 #gpio-cells = <2>;
555 gpio-controller;
556 interrupt-controller;
557 #interrupt-cells = <2>;
558 clocks = <&pioB_clk>;
559 bootph-all;
560 };
561
562 pioC: gpio@fffff800 {
563 compatible = "atmel,at91rm9200-gpio";
564 reg = <0xfffff800 0x200>;
565 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
566 #gpio-cells = <2>;
567 gpio-controller;
568 interrupt-controller;
569 #interrupt-cells = <2>;
570 clocks = <&pioC_clk>;
571 bootph-all;
572 };
Heiko Schocherefe04192016-05-25 07:23:46 +0200573 };
574
575 pmc: pmc@fffffc00 {
576 compatible = "atmel,at91rm9200-pmc", "syscon";
577 reg = <0xfffffc00 0x100>;
578 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
579 interrupt-controller;
580 #address-cells = <1>;
581 #size-cells = <0>;
582 #interrupt-cells = <1>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700583 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200584
585 main_osc: main_osc {
586 compatible = "atmel,at91rm9200-clk-main-osc";
587 #clock-cells = <0>;
588 interrupts-extended = <&pmc AT91_PMC_MOSCS>;
589 clocks = <&main_xtal>;
590 };
591
592 main: mainck {
593 compatible = "atmel,at91rm9200-clk-main";
594 #clock-cells = <0>;
595 clocks = <&main_osc>;
596 };
597
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800598 plla: pllack@0 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200599 compatible = "atmel,at91rm9200-clk-pll";
600 #clock-cells = <0>;
601 interrupts-extended = <&pmc AT91_PMC_LOCKA>;
602 clocks = <&main>;
603 reg = <0>;
604 atmel,clk-input-range = <1000000 32000000>;
605 #atmel,pll-clk-output-range-cells = <4>;
606 atmel,pll-clk-output-ranges = <80000000 200000000 0 1>,
607 <190000000 240000000 2 1>;
608 };
609
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800610 pllb: pllbck@1 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200611 compatible = "atmel,at91rm9200-clk-pll";
612 #clock-cells = <0>;
613 interrupts-extended = <&pmc AT91_PMC_LOCKB>;
614 clocks = <&main>;
615 reg = <1>;
616 atmel,clk-input-range = <1000000 5000000>;
617 #atmel,pll-clk-output-range-cells = <4>;
618 atmel,pll-clk-output-ranges = <70000000 130000000 1 1>;
619 };
620
621 mck: masterck {
622 compatible = "atmel,at91rm9200-clk-master";
623 #clock-cells = <0>;
624 interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
625 clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
626 atmel,clk-output-range = <0 94000000>;
627 atmel,clk-divisors = <1 2 4 0>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700628 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200629 };
630
631 usb: usbck {
632 compatible = "atmel,at91rm9200-clk-usb";
633 #clock-cells = <0>;
634 atmel,clk-divisors = <1 2 4 0>;
635 clocks = <&pllb>;
636 };
637
638 prog: progck {
639 compatible = "atmel,at91rm9200-clk-programmable";
640 #address-cells = <1>;
641 #size-cells = <0>;
642 interrupt-parent = <&pmc>;
643 clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
644
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800645 prog0: progi@0 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200646 #clock-cells = <0>;
647 reg = <0>;
648 interrupts = <AT91_PMC_PCKRDY(0)>;
649 };
650
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800651 prog1: prog@1 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200652 #clock-cells = <0>;
653 reg = <1>;
654 interrupts = <AT91_PMC_PCKRDY(1)>;
655 };
656
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800657 prog2: prog@2 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200658 #clock-cells = <0>;
659 reg = <2>;
660 interrupts = <AT91_PMC_PCKRDY(2)>;
661 };
662
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800663 prog3: prog@3 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200664 #clock-cells = <0>;
665 reg = <3>;
666 interrupts = <AT91_PMC_PCKRDY(3)>;
667 };
668 };
669
670 systemck {
671 compatible = "atmel,at91rm9200-clk-system";
672 #address-cells = <1>;
673 #size-cells = <0>;
674
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800675 uhpck: uhpck@6 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200676 #clock-cells = <0>;
677 reg = <6>;
678 clocks = <&usb>;
679 };
680
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800681 udpck: udpck@7 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200682 #clock-cells = <0>;
683 reg = <7>;
684 clocks = <&usb>;
685 };
686
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800687 pck0: pck@8 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200688 #clock-cells = <0>;
689 reg = <8>;
690 clocks = <&prog0>;
691 };
692
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800693 pck1: pck@9 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200694 #clock-cells = <0>;
695 reg = <9>;
696 clocks = <&prog1>;
697 };
698
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800699 pck2: pck@10 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200700 #clock-cells = <0>;
701 reg = <10>;
702 clocks = <&prog2>;
703 };
704
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800705 pck3: pck@11 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200706 #clock-cells = <0>;
707 reg = <11>;
708 clocks = <&prog3>;
709 };
710
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800711 hclk0: hclk@16 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200712 #clock-cells = <0>;
713 reg = <16>;
714 clocks = <&mck>;
715 };
716
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800717 hclk1: hclk@17 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200718 #clock-cells = <0>;
719 reg = <17>;
720 clocks = <&mck>;
721 };
722 };
723
724 periphck {
725 compatible = "atmel,at91rm9200-clk-peripheral";
726 #address-cells = <1>;
727 #size-cells = <0>;
728 clocks = <&mck>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700729 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200730
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800731 pioA_clk: pioA_clk@2 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200732 #clock-cells = <0>;
733 reg = <2>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700734 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200735 };
736
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800737 pioB_clk: pioB_clk@3 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200738 #clock-cells = <0>;
739 reg = <3>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700740 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200741 };
742
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800743 pioC_clk: pioC_clk@4 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200744 #clock-cells = <0>;
745 reg = <4>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700746 bootph-all;
Heiko Schocherefe04192016-05-25 07:23:46 +0200747 };
748
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800749 usart0_clk: usart0_clk@6 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200750 #clock-cells = <0>;
751 reg = <6>;
752 };
753
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800754 usart1_clk: usart1_clk@7 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200755 #clock-cells = <0>;
756 reg = <7>;
757 };
758
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800759 usart2_clk: usart2_clk@8 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200760 #clock-cells = <0>;
761 reg = <8>;
762 };
763
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800764 mci0_clk: mci0_clk@9 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200765 #clock-cells = <0>;
766 reg = <9>;
767 };
768
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800769 udc_clk: udc_clk@10 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200770 #clock-cells = <0>;
771 reg = <10>;
772 };
773
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800774 twi0_clk: twi0_clk@11 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200775 reg = <11>;
776 #clock-cells = <0>;
777 };
778
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800779 spi0_clk: spi0_clk@12 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200780 #clock-cells = <0>;
781 reg = <12>;
782 };
783
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800784 spi1_clk: spi1_clk@13 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200785 #clock-cells = <0>;
786 reg = <13>;
787 };
788
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800789 ssc0_clk: ssc0_clk@14 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200790 #clock-cells = <0>;
791 reg = <14>;
792 };
793
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800794 ssc1_clk: ssc1_clk@15 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200795 #clock-cells = <0>;
796 reg = <15>;
797 };
798
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800799 ssc2_clk: ssc2_clk@16 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200800 #clock-cells = <0>;
801 reg = <16>;
802 };
803
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800804 tc0_clk: tc0_clk@17 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200805 #clock-cells = <0>;
806 reg = <17>;
807 };
808
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800809 tc1_clk: tc1_clk@18 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200810 #clock-cells = <0>;
811 reg = <18>;
812 };
813
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800814 tc2_clk: tc2_clk@19 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200815 #clock-cells = <0>;
816 reg = <19>;
817 };
818
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800819 ohci_clk: ohci_clk@20 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200820 #clock-cells = <0>;
821 reg = <20>;
822 };
823
Wenyou.Yang@microchip.comb59fe682017-07-21 13:28:40 +0800824 lcd_clk: lcd_clk@21 {
Heiko Schocherefe04192016-05-25 07:23:46 +0200825 #clock-cells = <0>;
826 reg = <21>;
827 };
828 };
829 };
830
831 rstc@fffffd00 {
832 compatible = "atmel,at91sam9260-rstc";
833 reg = <0xfffffd00 0x10>;
834 clocks = <&slow_xtal>;
835 };
836
837 shdwc@fffffd10 {
838 compatible = "atmel,at91sam9260-shdwc";
839 reg = <0xfffffd10 0x10>;
840 clocks = <&slow_xtal>;
841 };
842
843 pit: timer@fffffd30 {
844 compatible = "atmel,at91sam9260-pit";
845 reg = <0xfffffd30 0xf>;
846 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
847 clocks = <&mck>;
848 };
849
850 rtc@fffffd20 {
851 compatible = "atmel,at91sam9260-rtt";
852 reg = <0xfffffd20 0x10>;
853 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
854 clocks = <&slow_xtal>;
855 status = "disabled";
856 };
857
858 watchdog@fffffd40 {
859 compatible = "atmel,at91sam9260-wdt";
860 reg = <0xfffffd40 0x10>;
861 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
862 clocks = <&slow_xtal>;
863 status = "disabled";
864 };
865
866 gpbr: syscon@fffffd50 {
867 compatible = "atmel,at91sam9260-gpbr", "syscon";
868 reg = <0xfffffd50 0x10>;
869 status = "disabled";
870 };
871 };
872 };
873
874 i2c@0 {
875 compatible = "i2c-gpio";
876 pinctrl-names = "default";
877 pinctrl-0 = <&pinctrl_i2c_bitbang>;
878 gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
879 <&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
880 i2c-gpio,sda-open-drain;
881 i2c-gpio,scl-open-drain;
882 i2c-gpio,delay-us = <2>; /* ~100 kHz */
883 #address-cells = <1>;
884 #size-cells = <0>;
885 status = "disabled";
886 };
887};