1/*
2 * Device Tree Source for IBM Embedded PPC 476 Platform
3 *
4 * Copyright 2010 Torez Smith, IBM Corporation.
5 *
6 * Based on earlier code:
7 *    Copyright (c) 2006, 2007 IBM Corp.
8 *    Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
9 *
10 * This file is licensed under the terms of the GNU General Public
11 * License version 2.  This program is licensed "as is" without
12 * any warranty of any kind, whether express or implied.
13 */
14
15/dts-v1/;
16
17/ {
18	#address-cells = <2>;
19	#size-cells = <1>;
20	model = "ibm,iss-4xx";
21	compatible = "ibm,iss-4xx";
22	dcr-parent = <&{/cpus/cpu@0}>;
23
24	aliases {
25		serial0 = &UART0;
26	};
27
28	cpus {
29		#address-cells = <1>;
30		#size-cells = <0>;
31
32		cpu@0 {
33			device_type = "cpu";
34			model = "PowerPC,4xx"; // real CPU changed in sim
35			reg = <0x00000000>;
36			clock-frequency = <100000000>; // 100Mhz :-)
37			timebase-frequency = <100000000>;
38			i-cache-line-size = <32>; // may need fixup in sim
39			d-cache-line-size = <32>; // may need fixup in sim
40			i-cache-size = <32768>; /* may need fixup in sim */
41			d-cache-size = <32768>; /* may need fixup in sim */
42			dcr-controller;
43			dcr-access-method = "native";
44		};
45	};
46
47	memory {
48		device_type = "memory";
49		reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
50	};
51
52	UIC0: interrupt-controller0 {
53		compatible = "ibm,uic-4xx", "ibm,uic";
54		interrupt-controller;
55		cell-index = <0>;
56		dcr-reg = <0x0c0 0x009>;
57		#address-cells = <0>;
58		#size-cells = <0>;
59		#interrupt-cells = <2>;
60
61	};
62
63	UIC1: interrupt-controller1 {
64		compatible = "ibm,uic-4xx", "ibm,uic";
65		interrupt-controller;
66		cell-index = <1>;
67		dcr-reg = <0x0d0 0x009>;
68		#address-cells = <0>;
69		#size-cells = <0>;
70		#interrupt-cells = <2>;
71		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
72		interrupt-parent = <&UIC0>;
73	};
74
75	plb {
76		compatible = "ibm,plb-4xx", "ibm,plb4"; /* Could be PLB6, doesn't matter */
77		#address-cells = <2>;
78		#size-cells = <1>;
79		ranges;
80		clock-frequency = <0>; // Filled in by zImage
81
82		POB0: opb {
83			compatible = "ibm,opb-4xx", "ibm,opb";
84			#address-cells = <1>;
85			#size-cells = <1>;
86			/* Wish there was a nicer way of specifying a full 32-bit
87			   range */
88			ranges = <0x00000000 0x00000001 0x00000000 0x80000000
89				  0x80000000 0x00000001 0x80000000 0x80000000>;
90			clock-frequency = <0>; // Filled in by zImage
91			UART0: serial@40000200 {
92				device_type = "serial";
93				compatible = "ns16550a";
94				reg = <0x40000200 0x00000008>;
95				virtual-reg = <0xe0000200>;
96				clock-frequency = <11059200>;
97				current-speed = <115200>;
98				interrupt-parent = <&UIC0>;
99				interrupts = <0x0 0x4>;
100			};
101		};
102	};
103
104	nvrtc {
105		compatible = "ds1743-nvram", "ds1743", "rtc-ds1743";
106		reg = <0 0xEF703000 0x2000>;
107	};
108	iss-block {
109		compatible = "ibm,iss-sim-block-device";
110		reg = <0 0xEF701000 0x1000>;
111	};
112
113	chosen {
114		stdout-path = "/plb/opb/serial@40000200";
115	};
116};
117