aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts/at91rm9200.dtsi
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boot/dts/at91rm9200.dtsi')
-rw-r--r--arch/arm/boot/dts/at91rm9200.dtsi304
1 files changed, 304 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi
index c61b16fba79b..65ccf564b9a5 100644
--- a/arch/arm/boot/dts/at91rm9200.dtsi
+++ b/arch/arm/boot/dts/at91rm9200.dtsi
@@ -14,6 +14,7 @@
14#include <dt-bindings/pinctrl/at91.h> 14#include <dt-bindings/pinctrl/at91.h>
15#include <dt-bindings/interrupt-controller/irq.h> 15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/clock/at91.h>
17 18
18/ { 19/ {
19 model = "Atmel AT91RM9200 family SoC"; 20 model = "Atmel AT91RM9200 family SoC";
@@ -51,6 +52,20 @@
51 reg = <0x20000000 0x04000000>; 52 reg = <0x20000000 0x04000000>;
52 }; 53 };
53 54
55 clocks {
56 slow_xtal: slow_xtal {
57 compatible = "fixed-clock";
58 #clock-cells = <0>;
59 clock-frequency = <0>;
60 };
61
62 main_xtal: main_xtal {
63 compatible = "fixed-clock";
64 #clock-cells = <0>;
65 clock-frequency = <0>;
66 };
67 };
68
54 ahb { 69 ahb {
55 compatible = "simple-bus"; 70 compatible = "simple-bus";
56 #address-cells = <1>; 71 #address-cells = <1>;
@@ -79,6 +94,260 @@
79 pmc: pmc@fffffc00 { 94 pmc: pmc@fffffc00 {
80 compatible = "atmel,at91rm9200-pmc"; 95 compatible = "atmel,at91rm9200-pmc";
81 reg = <0xfffffc00 0x100>; 96 reg = <0xfffffc00 0x100>;
97 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
98 interrupt-controller;
99 #address-cells = <1>;
100 #size-cells = <0>;
101 #interrupt-cells = <1>;
102
103 main_osc: main_osc {
104 compatible = "atmel,at91rm9200-clk-main-osc";
105 #clock-cells = <0>;
106 interrupts-extended = <&pmc AT91_PMC_MOSCS>;
107 clocks = <&main_xtal>;
108 };
109
110 main: mainck {
111 compatible = "atmel,at91rm9200-clk-main";
112 #clock-cells = <0>;
113 clocks = <&main_osc>;
114 };
115
116 plla: pllack {
117 compatible = "atmel,at91rm9200-clk-pll";
118 #clock-cells = <0>;
119 interrupts-extended = <&pmc AT91_PMC_LOCKA>;
120 clocks = <&main>;
121 reg = <0>;
122 atmel,clk-input-range = <1000000 32000000>;
123 #atmel,pll-clk-output-range-cells = <3>;
124 atmel,pll-clk-output-ranges = <80000000 160000000 0>,
125 <150000000 180000000 2>;
126 };
127
128 pllb: pllbck {
129 compatible = "atmel,at91rm9200-clk-pll";
130 #clock-cells = <0>;
131 interrupts-extended = <&pmc AT91_PMC_LOCKB>;
132 clocks = <&main>;
133 reg = <1>;
134 atmel,clk-input-range = <1000000 32000000>;
135 #atmel,pll-clk-output-range-cells = <3>;
136 atmel,pll-clk-output-ranges = <80000000 160000000 0>,
137 <150000000 180000000 2>;
138 };
139
140 mck: masterck {
141 compatible = "atmel,at91rm9200-clk-master";
142 #clock-cells = <0>;
143 interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
144 clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
145 atmel,clk-output-range = <0 80000000>;
146 atmel,clk-divisors = <1 2 3 4>;
147 };
148
149 usb: usbck {
150 compatible = "atmel,at91rm9200-clk-usb";
151 #clock-cells = <0>;
152 atmel,clk-divisors = <1 2>;
153 clocks = <&pllb>;
154 };
155
156 prog: progck {
157 compatible = "atmel,at91rm9200-clk-programmable";
158 #address-cells = <1>;
159 #size-cells = <0>;
160 interrupt-parent = <&pmc>;
161 clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
162
163 prog0: prog0 {
164 #clock-cells = <0>;
165 reg = <0>;
166 interrupts = <AT91_PMC_PCKRDY(0)>;
167 };
168
169 prog1: prog1 {
170 #clock-cells = <0>;
171 reg = <1>;
172 interrupts = <AT91_PMC_PCKRDY(1)>;
173 };
174
175 prog2: prog2 {
176 #clock-cells = <0>;
177 reg = <2>;
178 interrupts = <AT91_PMC_PCKRDY(2)>;
179 };
180
181 prog3: prog3 {
182 #clock-cells = <0>;
183 reg = <3>;
184 interrupts = <AT91_PMC_PCKRDY(3)>;
185 };
186 };
187
188 systemck {
189 compatible = "atmel,at91rm9200-clk-system";
190 #address-cells = <1>;
191 #size-cells = <0>;
192
193 udpck: udpck {
194 #clock-cells = <0>;
195 reg = <2>;
196 clocks = <&usb>;
197 };
198
199 uhpck: uhpck {
200 #clock-cells = <0>;
201 reg = <4>;
202 clocks = <&usb>;
203 };
204
205 pck0: pck0 {
206 #clock-cells = <0>;
207 reg = <8>;
208 clocks = <&prog0>;
209 };
210
211 pck1: pck1 {
212 #clock-cells = <0>;
213 reg = <9>;
214 clocks = <&prog1>;
215 };
216
217 pck2: pck2 {
218 #clock-cells = <0>;
219 reg = <10>;
220 clocks = <&prog2>;
221 };
222
223 pck3: pck3 {
224 #clock-cells = <0>;
225 reg = <11>;
226 clocks = <&prog3>;
227 };
228 };
229
230 periphck {
231 compatible = "atmel,at91rm9200-clk-peripheral";
232 #address-cells = <1>;
233 #size-cells = <0>;
234 clocks = <&mck>;
235
236 pioA_clk: pioA_clk {
237 #clock-cells = <0>;
238 reg = <2>;
239 };
240
241 pioB_clk: pioB_clk {
242 #clock-cells = <0>;
243 reg = <3>;
244 };
245
246 pioC_clk: pioC_clk {
247 #clock-cells = <0>;
248 reg = <4>;
249 };
250
251 pioD_clk: pioD_clk {
252 #clock-cells = <0>;
253 reg = <5>;
254 };
255
256 usart0_clk: usart0_clk {
257 #clock-cells = <0>;
258 reg = <6>;
259 };
260
261 usart1_clk: usart1_clk {
262 #clock-cells = <0>;
263 reg = <7>;
264 };
265
266 usart2_clk: usart2_clk {
267 #clock-cells = <0>;
268 reg = <8>;
269 };
270
271 usart3_clk: usart3_clk {
272 #clock-cells = <0>;
273 reg = <9>;
274 };
275
276 mci0_clk: mci0_clk {
277 #clock-cells = <0>;
278 reg = <10>;
279 };
280
281 udc_clk: udc_clk {
282 #clock-cells = <0>;
283 reg = <11>;
284 };
285
286 twi0_clk: twi0_clk {
287 reg = <12>;
288 #clock-cells = <0>;
289 };
290
291 spi0_clk: spi0_clk {
292 #clock-cells = <0>;
293 reg = <13>;
294 };
295
296 ssc0_clk: ssc0_clk {
297 #clock-cells = <0>;
298 reg = <14>;
299 };
300
301 ssc1_clk: ssc1_clk {
302 #clock-cells = <0>;
303 reg = <15>;
304 };
305
306 ssc2_clk: ssc2_clk {
307 #clock-cells = <0>;
308 reg = <16>;
309 };
310
311 tc0_clk: tc0_clk {
312 #clock-cells = <0>;
313 reg = <17>;
314 };
315
316 tc1_clk: tc1_clk {
317 #clock-cells = <0>;
318 reg = <18>;
319 };
320
321 tc2_clk: tc2_clk {
322 #clock-cells = <0>;
323 reg = <19>;
324 };
325
326 tc3_clk: tc3_clk {
327 #clock-cells = <0>;
328 reg = <20>;
329 };
330
331 tc4_clk: tc4_clk {
332 #clock-cells = <0>;
333 reg = <21>;
334 };
335
336 tc5_clk: tc5_clk {
337 #clock-cells = <0>;
338 reg = <22>;
339 };
340
341 ohci_clk: ohci_clk {
342 #clock-cells = <0>;
343 reg = <23>;
344 };
345
346 macb0_clk: macb0_clk {
347 #clock-cells = <0>;
348 reg = <24>;
349 };
350 };
82 }; 351 };
83 352
84 st: timer@fffffd00 { 353 st: timer@fffffd00 {
@@ -93,6 +362,8 @@
93 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0 362 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
94 18 IRQ_TYPE_LEVEL_HIGH 0 363 18 IRQ_TYPE_LEVEL_HIGH 0
95 19 IRQ_TYPE_LEVEL_HIGH 0>; 364 19 IRQ_TYPE_LEVEL_HIGH 0>;
365 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>;
366 clock-names = "t0_clk", "t1_clk", "t2_clk";
96 }; 367 };
97 368
98 tcb1: timer@fffa4000 { 369 tcb1: timer@fffa4000 {
@@ -101,6 +372,8 @@
101 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0 372 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0
102 21 IRQ_TYPE_LEVEL_HIGH 0 373 21 IRQ_TYPE_LEVEL_HIGH 0
103 22 IRQ_TYPE_LEVEL_HIGH 0>; 374 22 IRQ_TYPE_LEVEL_HIGH 0>;
375 clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>;
376 clock-names = "t0_clk", "t1_clk", "t2_clk";
104 }; 377 };
105 378
106 i2c0: i2c@fffb8000 { 379 i2c0: i2c@fffb8000 {
@@ -109,6 +382,7 @@
109 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>; 382 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>;
110 pinctrl-names = "default"; 383 pinctrl-names = "default";
111 pinctrl-0 = <&pinctrl_twi>; 384 pinctrl-0 = <&pinctrl_twi>;
385 clocks = <&twi0_clk>;
112 #address-cells = <1>; 386 #address-cells = <1>;
113 #size-cells = <0>; 387 #size-cells = <0>;
114 status = "disabled"; 388 status = "disabled";
@@ -118,6 +392,8 @@
118 compatible = "atmel,hsmci"; 392 compatible = "atmel,hsmci";
119 reg = <0xfffb4000 0x4000>; 393 reg = <0xfffb4000 0x4000>;
120 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>; 394 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
395 clocks = <&mci0_clk>;
396 clock-names = "mci_clk";
121 #address-cells = <1>; 397 #address-cells = <1>;
122 #size-cells = <0>; 398 #size-cells = <0>;
123 pinctrl-names = "default"; 399 pinctrl-names = "default";
@@ -130,6 +406,8 @@
130 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>; 406 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
131 pinctrl-names = "default"; 407 pinctrl-names = "default";
132 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; 408 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
409 clocks = <&ssc0_clk>;
410 clock-names = "pclk";
133 status = "disable"; 411 status = "disable";
134 }; 412 };
135 413
@@ -139,6 +417,8 @@
139 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>; 417 interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
140 pinctrl-names = "default"; 418 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>; 419 pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
420 clocks = <&ssc1_clk>;
421 clock-names = "pclk";
142 status = "disable"; 422 status = "disable";
143 }; 423 };
144 424
@@ -148,6 +428,8 @@
148 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>; 428 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
149 pinctrl-names = "default"; 429 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>; 430 pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
431 clocks = <&ssc2_clk>;
432 clock-names = "pclk";
151 status = "disable"; 433 status = "disable";
152 }; 434 };
153 435
@@ -158,6 +440,8 @@
158 phy-mode = "rmii"; 440 phy-mode = "rmii";
159 pinctrl-names = "default"; 441 pinctrl-names = "default";
160 pinctrl-0 = <&pinctrl_macb_rmii>; 442 pinctrl-0 = <&pinctrl_macb_rmii>;
443 clocks = <&macb0_clk>;
444 clock-names = "ether_clk";
161 status = "disabled"; 445 status = "disabled";
162 }; 446 };
163 447
@@ -496,6 +780,7 @@
496 gpio-controller; 780 gpio-controller;
497 interrupt-controller; 781 interrupt-controller;
498 #interrupt-cells = <2>; 782 #interrupt-cells = <2>;
783 clocks = <&pioA_clk>;
499 }; 784 };
500 785
501 pioB: gpio@fffff600 { 786 pioB: gpio@fffff600 {
@@ -506,6 +791,7 @@
506 gpio-controller; 791 gpio-controller;
507 interrupt-controller; 792 interrupt-controller;
508 #interrupt-cells = <2>; 793 #interrupt-cells = <2>;
794 clocks = <&pioB_clk>;
509 }; 795 };
510 796
511 pioC: gpio@fffff800 { 797 pioC: gpio@fffff800 {
@@ -516,6 +802,7 @@
516 gpio-controller; 802 gpio-controller;
517 interrupt-controller; 803 interrupt-controller;
518 #interrupt-cells = <2>; 804 #interrupt-cells = <2>;
805 clocks = <&pioC_clk>;
519 }; 806 };
520 807
521 pioD: gpio@fffffa00 { 808 pioD: gpio@fffffa00 {
@@ -526,6 +813,7 @@
526 gpio-controller; 813 gpio-controller;
527 interrupt-controller; 814 interrupt-controller;
528 #interrupt-cells = <2>; 815 #interrupt-cells = <2>;
816 clocks = <&pioD_clk>;
529 }; 817 };
530 }; 818 };
531 819
@@ -535,6 +823,8 @@
535 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 823 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
536 pinctrl-names = "default"; 824 pinctrl-names = "default";
537 pinctrl-0 = <&pinctrl_dbgu>; 825 pinctrl-0 = <&pinctrl_dbgu>;
826 clocks = <&mck>;
827 clock-names = "usart";
538 status = "disabled"; 828 status = "disabled";
539 }; 829 };
540 830
@@ -546,6 +836,8 @@
546 atmel,use-dma-tx; 836 atmel,use-dma-tx;
547 pinctrl-names = "default"; 837 pinctrl-names = "default";
548 pinctrl-0 = <&pinctrl_uart0>; 838 pinctrl-0 = <&pinctrl_uart0>;
839 clocks = <&usart0_clk>;
840 clock-names = "usart";
549 status = "disabled"; 841 status = "disabled";
550 }; 842 };
551 843
@@ -557,6 +849,8 @@
557 atmel,use-dma-tx; 849 atmel,use-dma-tx;
558 pinctrl-names = "default"; 850 pinctrl-names = "default";
559 pinctrl-0 = <&pinctrl_uart1>; 851 pinctrl-0 = <&pinctrl_uart1>;
852 clocks = <&usart1_clk>;
853 clock-names = "usart";
560 status = "disabled"; 854 status = "disabled";
561 }; 855 };
562 856
@@ -568,6 +862,8 @@
568 atmel,use-dma-tx; 862 atmel,use-dma-tx;
569 pinctrl-names = "default"; 863 pinctrl-names = "default";
570 pinctrl-0 = <&pinctrl_uart2>; 864 pinctrl-0 = <&pinctrl_uart2>;
865 clocks = <&usart2_clk>;
866 clock-names = "usart";
571 status = "disabled"; 867 status = "disabled";
572 }; 868 };
573 869
@@ -579,6 +875,8 @@
579 atmel,use-dma-tx; 875 atmel,use-dma-tx;
580 pinctrl-names = "default"; 876 pinctrl-names = "default";
581 pinctrl-0 = <&pinctrl_uart3>; 877 pinctrl-0 = <&pinctrl_uart3>;
878 clocks = <&usart3_clk>;
879 clock-names = "usart";
582 status = "disabled"; 880 status = "disabled";
583 }; 881 };
584 882
@@ -586,6 +884,8 @@
586 compatible = "atmel,at91rm9200-udc"; 884 compatible = "atmel,at91rm9200-udc";
587 reg = <0xfffb0000 0x4000>; 885 reg = <0xfffb0000 0x4000>;
588 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>; 886 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>;
887 clocks = <&udc_clk>, <&udpck>;
888 clock-names = "pclk", "hclk";
589 status = "disabled"; 889 status = "disabled";
590 }; 890 };
591 891
@@ -597,6 +897,8 @@
597 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>; 897 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
598 pinctrl-names = "default"; 898 pinctrl-names = "default";
599 pinctrl-0 = <&pinctrl_spi0>; 899 pinctrl-0 = <&pinctrl_spi0>;
900 clocks = <&spi0_clk>;
901 clock-names = "spi_clk";
600 status = "disabled"; 902 status = "disabled";
601 }; 903 };
602 }; 904 };
@@ -622,6 +924,8 @@
622 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 924 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
623 reg = <0x00300000 0x100000>; 925 reg = <0x00300000 0x100000>;
624 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>; 926 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
927 clocks = <&usb>, <&ohci_clk>, <&ohci_clk>, <&uhpck>;
928 clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck";
625 status = "disabled"; 929 status = "disabled";
626 }; 930 };
627 }; 931 };