1 // SPDX-License-Identifier: GPL-2.0
3 /include/ "skeleton.dtsi"
6 model = "ARM Versatile AB";
7 compatible = "arm,versatile-ab";
10 interrupt-parent = <&vic>;
24 reg = <0x0 0x08000000>;
27 xtal24mhz: xtal24mhz@24M {
29 compatible = "fixed-clock";
30 clock-frequency = <24000000>;
33 core-module@10000000 {
34 compatible = "arm,core-module-versatile", "syscon", "simple-mfd";
35 reg = <0x10000000 0x200>;
38 compatible = "register-bit-led";
41 label = "versatile:0";
42 linux,default-trigger = "heartbeat";
46 compatible = "register-bit-led";
49 label = "versatile:1";
50 linux,default-trigger = "mmc0";
51 default-state = "off";
54 compatible = "register-bit-led";
57 label = "versatile:2";
58 linux,default-trigger = "cpu0";
59 default-state = "off";
62 compatible = "register-bit-led";
65 label = "versatile:3";
66 default-state = "off";
69 compatible = "register-bit-led";
72 label = "versatile:4";
73 default-state = "off";
76 compatible = "register-bit-led";
79 label = "versatile:5";
80 default-state = "off";
83 compatible = "register-bit-led";
86 label = "versatile:6";
87 default-state = "off";
90 compatible = "register-bit-led";
93 label = "versatile:7";
94 default-state = "off";
97 /* OSC1 on AB, OSC4 on PB */
98 osc1: cm_aux_osc@24M {
100 compatible = "arm,versatile-cm-auxosc";
101 clocks = <&xtal24mhz>;
104 /* The timer clock is the 24 MHz oscillator divided to 1MHz */
107 compatible = "fixed-factor-clock";
110 clocks = <&xtal24mhz>;
115 compatible = "fixed-factor-clock";
118 clocks = <&xtal24mhz>;
123 /* 64 MiB NOR flash in non-interleaved chips */
124 compatible = "arm,versatile-flash", "cfi-flash";
125 reg = <0x34000000 0x04000000>;
130 #address-cells = <1>;
132 compatible = "arm,versatile-i2c";
133 reg = <0x10002000 0x1000>;
136 compatible = "dallas,ds1338";
142 compatible = "smsc,lan91c111";
143 reg = <0x10010000 0x10000>;
148 compatible = "arm,versatile-lcd";
149 reg = <0x10008000 0x1000>;
153 compatible = "simple-bus";
154 #address-cells = <1>;
159 compatible = "arm,versatile-vic";
160 interrupt-controller;
161 #interrupt-cells = <1>;
162 reg = <0x10140000 0x1000>;
163 clear-mask = <0xffffffff>;
164 valid-mask = <0xffffffff>;
168 compatible = "arm,versatile-sic";
169 interrupt-controller;
170 #interrupt-cells = <1>;
171 reg = <0x10003000 0x1000>;
172 interrupt-parent = <&vic>;
173 interrupts = <31>; /* Cascaded to vic */
174 clear-mask = <0xffffffff>;
176 * Valid interrupt lines mask according to
177 * table 4-36 page 4-50 of ARM DUI 0225D
179 valid-mask = <0x0760031b>;
183 compatible = "arm,pl081", "arm,primecell";
184 reg = <0x10130000 0x1000>;
187 clock-names = "apb_pclk";
190 uart0: uart@101f1000 {
191 compatible = "arm,pl011", "arm,primecell";
192 reg = <0x101f1000 0x1000>;
194 clocks = <&xtal24mhz>, <&pclk>;
195 clock-names = "uartclk", "apb_pclk";
198 uart1: uart@101f2000 {
199 compatible = "arm,pl011", "arm,primecell";
200 reg = <0x101f2000 0x1000>;
202 clocks = <&xtal24mhz>, <&pclk>;
203 clock-names = "uartclk", "apb_pclk";
206 uart2: uart@101f3000 {
207 compatible = "arm,pl011", "arm,primecell";
208 reg = <0x101f3000 0x1000>;
210 clocks = <&xtal24mhz>, <&pclk>;
211 clock-names = "uartclk", "apb_pclk";
215 compatible = "arm,primecell";
216 reg = <0x10100000 0x1000>;
218 clock-names = "apb_pclk";
222 compatible = "arm,primecell";
223 reg = <0x10110000 0x1000>;
225 clock-names = "apb_pclk";
229 compatible = "arm,pl110", "arm,primecell";
230 reg = <0x10120000 0x1000>;
232 clocks = <&osc1>, <&pclk>;
233 clock-names = "clcd", "apb_pclk";
237 compatible = "arm,primecell";
238 reg = <0x101e0000 0x1000>;
240 clock-names = "apb_pclk";
244 compatible = "arm,primecell";
245 reg = <0x101e1000 0x1000>;
248 clock-names = "apb_pclk";
252 compatible = "arm,sp804", "arm,primecell";
253 reg = <0x101e2000 0x1000>;
255 clocks = <&timclk>, <&timclk>, <&pclk>;
256 clock-names = "timer0", "timer1", "apb_pclk";
260 compatible = "arm,sp804", "arm,primecell";
261 reg = <0x101e3000 0x1000>;
263 clocks = <&timclk>, <&timclk>, <&pclk>;
264 clock-names = "timer0", "timer1", "apb_pclk";
267 gpio0: gpio@101e4000 {
268 compatible = "arm,pl061", "arm,primecell";
269 reg = <0x101e4000 0x1000>;
273 interrupt-controller;
274 #interrupt-cells = <2>;
276 clock-names = "apb_pclk";
279 gpio1: gpio@101e5000 {
280 compatible = "arm,pl061", "arm,primecell";
281 reg = <0x101e5000 0x1000>;
285 interrupt-controller;
286 #interrupt-cells = <2>;
288 clock-names = "apb_pclk";
292 compatible = "arm,pl030", "arm,primecell";
293 reg = <0x101e8000 0x1000>;
296 clock-names = "apb_pclk";
300 compatible = "arm,primecell";
301 reg = <0x101f0000 0x1000>;
304 clock-names = "apb_pclk";
308 compatible = "arm,pl022", "arm,primecell";
309 reg = <0x101f4000 0x1000>;
311 clocks = <&xtal24mhz>, <&pclk>;
312 clock-names = "SSPCLK", "apb_pclk";
316 compatible = "arm,versatile-fpga", "simple-bus";
317 #address-cells = <1>;
319 ranges = <0 0x10000000 0x10000>;
322 compatible = "arm,versatile-sysreg", "syscon";
323 reg = <0x00000 0x1000>;
327 compatible = "arm,primecell";
328 reg = <0x4000 0x1000>;
331 clock-names = "apb_pclk";
334 compatible = "arm,pl180", "arm,primecell";
335 reg = <0x5000 0x1000>;
336 interrupts-extended = <&vic 22 &sic 1>;
337 clocks = <&xtal24mhz>, <&pclk>;
338 clock-names = "mclk", "apb_pclk";
341 compatible = "arm,pl050", "arm,primecell";
342 reg = <0x6000 0x1000>;
343 interrupt-parent = <&sic>;
345 clocks = <&xtal24mhz>, <&pclk>;
346 clock-names = "KMIREFCLK", "apb_pclk";
349 compatible = "arm,pl050", "arm,primecell";
350 reg = <0x7000 0x1000>;
351 interrupt-parent = <&sic>;
353 clocks = <&xtal24mhz>, <&pclk>;
354 clock-names = "KMIREFCLK", "apb_pclk";