2 * Copyright 2016 Linaro Ltd
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 #include <dt-bindings/interrupt-controller/irq.h>
24 #include <dt-bindings/gpio/gpio.h>
25 #include "skeleton.dtsi"
28 compatible = "arm,realview-pbx";
41 /* 128 MiB memory @ 0x0 */
42 reg = <0x00000000 0x08000000>;
45 /* The voltage to the MMC card is hardwired at 3.3V */
46 vmmc: regulator-vmmc {
47 compatible = "regulator-fixed";
48 regulator-name = "vmmc";
49 regulator-min-microvolt = <3300000>;
50 regulator-max-microvolt = <3300000>;
54 veth: regulator-veth {
55 compatible = "regulator-fixed";
56 regulator-name = "veth";
57 regulator-min-microvolt = <3300000>;
58 regulator-max-microvolt = <3300000>;
62 xtal24mhz: xtal24mhz@24M {
64 compatible = "fixed-clock";
65 clock-frequency = <24000000>;
68 refclk32khz: refclk32khz {
70 compatible = "fixed-clock";
71 clock-frequency = <32768>;
76 compatible = "fixed-factor-clock";
79 clocks = <&xtal24mhz>;
84 compatible = "fixed-factor-clock";
87 clocks = <&xtal24mhz>;
92 compatible = "fixed-factor-clock";
95 clocks = <&xtal24mhz>;
100 compatible = "fixed-factor-clock";
103 clocks = <&xtal24mhz>;
106 uartclk: uartclk@24M {
108 compatible = "fixed-factor-clock";
111 clocks = <&xtal24mhz>;
114 wdogclk: wdogclk@24M {
116 compatible = "fixed-factor-clock";
119 clocks = <&xtal24mhz>;
122 /* FIXME: this actually hangs off the PLL clocks */
125 compatible = "fixed-clock";
126 clock-frequency = <0>;
130 /* 2 * 32MiB NOR Flash memory */
131 compatible = "arm,versatile-flash", "cfi-flash";
132 reg = <0x40000000 0x04000000>;
137 /* 2 * 32MiB NOR Flash memory */
138 compatible = "arm,versatile-flash", "cfi-flash";
139 reg = <0x44000000 0x04000000>;
143 /* SMSC 9118 ethernet with PHY and EEPROM */
144 ethernet: ethernet@4e000000 {
145 compatible = "smsc,lan9118", "smsc,lan9115";
146 reg = <0x4e000000 0x10000>;
149 smsc,irq-active-high;
151 vdd33a-supply = <&veth>;
152 vddvario-supply = <&veth>;
156 compatible = "nxp,usb-isp1761";
157 reg = <0x4f000000 0x20000>;
162 compatible = "arm,realview-pbx-soc", "simple-bus";
163 #address-cells = <1>;
168 syscon: syscon@10000000 {
169 compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd";
170 reg = <0x10000000 0x1000>;
173 compatible = "register-bit-led";
176 label = "versatile:0";
177 linux,default-trigger = "heartbeat";
178 default-state = "on";
181 compatible = "register-bit-led";
184 label = "versatile:1";
185 linux,default-trigger = "mmc0";
186 default-state = "off";
189 compatible = "register-bit-led";
192 label = "versatile:2";
193 linux,default-trigger = "cpu0";
194 default-state = "off";
197 compatible = "register-bit-led";
200 label = "versatile:3";
201 default-state = "off";
204 compatible = "register-bit-led";
207 label = "versatile:4";
208 default-state = "off";
211 compatible = "register-bit-led";
214 label = "versatile:5";
215 default-state = "off";
218 compatible = "register-bit-led";
221 label = "versatile:6";
222 default-state = "off";
225 compatible = "register-bit-led";
228 label = "versatile:7";
229 default-state = "off";
232 compatible = "arm,syscon-icst307";
234 lock-offset = <0x20>;
236 clocks = <&xtal24mhz>;
239 compatible = "arm,syscon-icst307";
241 lock-offset = <0x20>;
243 clocks = <&xtal24mhz>;
246 compatible = "arm,syscon-icst307";
248 lock-offset = <0x20>;
250 clocks = <&xtal24mhz>;
253 compatible = "arm,syscon-icst307";
255 lock-offset = <0x20>;
257 clocks = <&xtal24mhz>;
260 compatible = "arm,syscon-icst307";
262 lock-offset = <0x20>;
264 clocks = <&xtal24mhz>;
268 sp810_syscon0: sysctl@10001000 {
269 compatible = "arm,sp810", "arm,primecell";
270 reg = <0x10001000 0x1000>;
271 clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
272 clock-names = "refclk", "timclk", "apb_pclk";
274 clock-output-names = "timerclk0",
278 assigned-clocks = <&sp810_syscon0 0>,
282 assigned-clock-parents = <&timclk>,
289 #address-cells = <1>;
291 compatible = "arm,versatile-i2c";
292 reg = <0x10002000 0x1000>;
295 compatible = "dallas,ds1338";
300 serial0: serial@10009000 {
301 compatible = "arm,pl011", "arm,primecell";
302 reg = <0x10009000 0x1000>;
303 clocks = <&uartclk>, <&pclk>;
304 clock-names = "uartclk", "apb_pclk";
307 serial1: serial@1000a000 {
308 compatible = "arm,pl011", "arm,primecell";
309 reg = <0x1000a000 0x1000>;
310 clocks = <&uartclk>, <&pclk>;
311 clock-names = "uartclk", "apb_pclk";
314 serial2: serial@1000b000 {
315 compatible = "arm,pl011", "arm,primecell";
316 reg = <0x1000b000 0x1000>;
317 clocks = <&uartclk>, <&pclk>;
318 clock-names = "uartclk", "apb_pclk";
322 compatible = "arm,pl022", "arm,primecell";
323 reg = <0x1000d000 0x1000>;
324 clocks = <&sspclk>, <&pclk>;
325 clock-names = "SSPCLK", "apb_pclk";
328 wdog0: watchdog@1000f000 {
329 compatible = "arm,sp805", "arm,primecell";
330 reg = <0x1000f000 0x1000>;
331 clocks = <&wdogclk>, <&pclk>;
332 clock-names = "wdogclk", "apb_pclk";
336 wdog1: watchdog@10010000 {
337 compatible = "arm,sp805", "arm,primecell";
338 reg = <0x10010000 0x1000>;
339 clocks = <&wdogclk>, <&pclk>;
340 clock-names = "wdogclk", "apb_pclk";
344 timer01: timer@10011000 {
345 compatible = "arm,sp804", "arm,primecell";
346 reg = <0x10011000 0x1000>;
347 clocks = <&sp810_syscon0 0>,
350 clock-names = "timerclk0",
355 timer23: timer@10012000 {
356 compatible = "arm,sp804", "arm,primecell";
357 reg = <0x10012000 0x1000>;
358 clocks = <&sp810_syscon0 2>,
361 clock-names = "timerclk2",
366 gpio0: gpio@10013000 {
367 compatible = "arm,pl061", "arm,primecell";
368 reg = <0x10013000 0x1000>;
371 interrupt-controller;
372 #interrupt-cells = <2>;
374 clock-names = "apb_pclk";
377 gpio1: gpio@10014000 {
378 compatible = "arm,pl061", "arm,primecell";
379 reg = <0x10014000 0x1000>;
382 interrupt-controller;
383 #interrupt-cells = <2>;
385 clock-names = "apb_pclk";
388 gpio2: gpio@10015000 {
389 compatible = "arm,pl061", "arm,primecell";
390 reg = <0x10015000 0x1000>;
393 interrupt-controller;
394 #interrupt-cells = <2>;
396 clock-names = "apb_pclk";
399 /* DVI serial bus control is at 10016000 */
402 compatible = "arm,pl031", "arm,primecell";
403 reg = <0x10017000 0x1000>;
405 clock-names = "apb_pclk";
408 timer45: timer@10018000 {
409 compatible = "arm,sp804", "arm,primecell";
410 reg = <0x10018000 0x1000>;
411 clocks = <&timclk>, <&timclk>, <&pclk>;
412 clock-names = "timerclk4", "timerclk5", "apb_pclk";
415 timer67: timer@10019000 {
416 compatible = "arm,sp804", "arm,primecell";
417 reg = <0x10019000 0x1000>;
418 clocks = <&timclk>, <&timclk>, <&pclk>;
419 clock-names = "timerclk6", "timerclk7", "apb_pclk";
422 sp810_syscon1: sysctl@1001a000 {
423 compatible = "arm,sp810", "arm,primecell";
424 reg = <0x1001a000 0x1000>;
425 clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
426 clock-names = "refclk", "timclk", "apb_pclk";
428 clock-output-names = "timerclk4",
432 assigned-clocks = <&sp810_syscon1 0>,
436 assigned-clock-parents = <&timclk>,
444 /* These peripherals are inside the FPGA */
446 #address-cells = <1>;
448 compatible = "simple-bus";
451 aaci: aaci@10004000 {
452 compatible = "arm,pl041", "arm,primecell";
453 reg = <0x10004000 0x1000>;
455 clock-names = "apb_pclk";
458 mmc: mmcsd@10005000 {
459 compatible = "arm,pl18x", "arm,primecell";
460 reg = <0x10005000 0x1000>;
462 /* Due to frequent FIFO overruns, use just 500 kHz */
463 max-frequency = <500000>;
467 clocks = <&mclk>, <&pclk>;
468 clock-names = "mclk", "apb_pclk";
469 vmmc-supply = <&vmmc>;
470 cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
471 wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
475 compatible = "arm,pl050", "arm,primecell";
476 reg = <0x10006000 0x1000>;
477 clocks = <&kmiclk>, <&pclk>;
478 clock-names = "KMIREFCLK", "apb_pclk";
482 compatible = "arm,pl050", "arm,primecell";
483 reg = <0x10007000 0x1000>;
484 clocks = <&kmiclk>, <&pclk>;
485 clock-names = "KMIREFCLK", "apb_pclk";
488 serial3: serial@1000c000 {
489 compatible = "arm,pl011", "arm,primecell";
490 reg = <0x1000c000 0x1000>;
491 clocks = <&uartclk>, <&pclk>;
492 clock-names = "uartclk", "apb_pclk";
496 /* These peripherals are inside the NEC ISSP */
498 #address-cells = <1>;
500 compatible = "simple-bus";
503 clcd: clcd@10020000 {
504 compatible = "arm,pl111", "arm,primecell";
505 reg = <0x10020000 0x1000>;
506 interrupt-names = "combined";
507 clocks = <&oscclk4>, <&pclk>;
508 clock-names = "clcdclk", "apb_pclk";
511 clcd_pads: endpoint {
512 remote-endpoint = <&clcd_panel>;
513 arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
518 compatible = "panel-dpi";
521 clcd_panel: endpoint {
522 remote-endpoint = <&clcd_pads>;
526 /* Standard 640x480 VGA timings */
528 clock-frequency = <25175000>;