blob: 8fcf6aa17113fcfc01cdde1ae6a79310eb2e4c85 [file] [log] [blame]
Josh Boyer8852ab72007-09-07 07:50:50 -05001/*
2 * Device Tree Source for IBM Walnut
3 *
4 * Copyright 2007 IBM Corp.
5 * Josh Boyer <jwboyer@linux.vnet.ibm.com>
6 *
7 * This file is licensed under the terms of the GNU General Public
8 * License version 2. This program is licensed "as is" without
9 * any warranty of any kind, whether express or implied.
10 */
11
12/ {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 model = "ibm,walnut";
16 compatible = "ibm,walnut";
Josh Boyer72fda112007-12-06 13:20:05 -060017 dcr-parent = <&/cpus/cpu@0>;
Josh Boyer8852ab72007-09-07 07:50:50 -050018
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
Josh Boyer72fda112007-12-06 13:20:05 -060023 cpu@0 {
Josh Boyer8852ab72007-09-07 07:50:50 -050024 device_type = "cpu";
Josh Boyer72fda112007-12-06 13:20:05 -060025 model = "PowerPC,405GP";
Josh Boyer8852ab72007-09-07 07:50:50 -050026 reg = <0>;
27 clock-frequency = <bebc200>; /* Filled in by zImage */
28 timebase-frequency = <0>; /* Filled in by zImage */
29 i-cache-line-size = <20>;
30 d-cache-line-size = <20>;
31 i-cache-size = <4000>;
32 d-cache-size = <4000>;
33 dcr-controller;
34 dcr-access-method = "native";
35 };
36 };
37
38 memory {
39 device_type = "memory";
40 reg = <0 0>; /* Filled in by zImage */
41 };
42
43 UIC0: interrupt-controller {
44 compatible = "ibm,uic";
45 interrupt-controller;
46 cell-index = <0>;
47 dcr-reg = <0c0 9>;
48 #address-cells = <0>;
49 #size-cells = <0>;
50 #interrupt-cells = <2>;
51 };
52
53 plb {
54 compatible = "ibm,plb3";
55 #address-cells = <1>;
56 #size-cells = <1>;
57 ranges;
58 clock-frequency = <0>; /* Filled in by zImage */
59
60 SDRAM0: memory-controller {
61 compatible = "ibm,sdram-405gp";
62 dcr-reg = <010 2>;
63 };
64
65 MAL: mcmal {
66 compatible = "ibm,mcmal-405gp", "ibm,mcmal";
67 dcr-reg = <180 62>;
Josh Boyerb3af7a52007-10-20 00:53:11 +100068 num-tx-chans = <1>;
Josh Boyer8852ab72007-09-07 07:50:50 -050069 num-rx-chans = <1>;
70 interrupt-parent = <&UIC0>;
Josh Boyerb3af7a52007-10-20 00:53:11 +100071 interrupts = <
72 b 4 /* TXEOB */
73 c 4 /* RXEOB */
74 a 4 /* SERR */
75 d 4 /* TXDE */
76 e 4 /* RXDE */>;
Josh Boyer8852ab72007-09-07 07:50:50 -050077 };
78
79 POB0: opb {
80 compatible = "ibm,opb-405gp", "ibm,opb";
81 #address-cells = <1>;
82 #size-cells = <1>;
83 ranges = <ef600000 ef600000 a00000>;
84 dcr-reg = <0a0 5>;
85 clock-frequency = <0>; /* Filled in by zImage */
86
87 UART0: serial@ef600300 {
88 device_type = "serial";
89 compatible = "ns16550";
90 reg = <ef600300 8>;
91 virtual-reg = <ef600300>;
92 clock-frequency = <0>; /* Filled in by zImage */
93 current-speed = <2580>;
94 interrupt-parent = <&UIC0>;
95 interrupts = <0 4>;
96 };
97
98 UART1: serial@ef600400 {
99 device_type = "serial";
100 compatible = "ns16550";
101 reg = <ef600400 8>;
102 virtual-reg = <ef600400>;
103 clock-frequency = <0>; /* Filled in by zImage */
104 current-speed = <2580>;
105 interrupt-parent = <&UIC0>;
106 interrupts = <1 4>;
107 };
108
109 IIC: i2c@ef600500 {
110 compatible = "ibm,iic-405gp", "ibm,iic";
111 reg = <ef600500 11>;
112 interrupt-parent = <&UIC0>;
113 interrupts = <2 4>;
114 };
115
116 GPIO: gpio@ef600700 {
117 compatible = "ibm,gpio-405gp";
118 reg = <ef600700 20>;
119 };
120
121 EMAC: ethernet@ef600800 {
122 linux,network-index = <0>;
123 device_type = "network";
124 compatible = "ibm,emac-405gp", "ibm,emac";
125 interrupt-parent = <&UIC0>;
Steven A. Falco29273152007-11-01 04:52:53 +1100126 interrupts = <
127 f 4 /* Ethernet */
128 9 4 /* Ethernet Wake Up */>;
Josh Boyerb3af7a52007-10-20 00:53:11 +1000129 local-mac-address = [000000000000]; /* Filled in by zImage */
Josh Boyer8852ab72007-09-07 07:50:50 -0500130 reg = <ef600800 70>;
131 mal-device = <&MAL>;
Josh Boyerb3af7a52007-10-20 00:53:11 +1000132 mal-tx-channel = <0>;
Josh Boyer8852ab72007-09-07 07:50:50 -0500133 mal-rx-channel = <0>;
134 cell-index = <0>;
135 max-frame-size = <5dc>;
136 rx-fifo-size = <1000>;
137 tx-fifo-size = <800>;
138 phy-mode = "rmii";
139 phy-map = <00000001>;
140 };
141
142 };
143
144 EBC0: ebc {
145 compatible = "ibm,ebc-405gp", "ibm,ebc";
146 dcr-reg = <012 2>;
147 #address-cells = <2>;
148 #size-cells = <1>;
Josh Boyerbf07f322007-09-15 04:54:13 +1000149 /* The ranges property is supplied by the bootwrapper
150 * and is based on the firmware's configuration of the
151 * EBC bridge
152 */
Josh Boyer8852ab72007-09-07 07:50:50 -0500153 clock-frequency = <0>; /* Filled in by zImage */
154
155 sram@0,0 {
156 reg = <0 0 80000>;
157 };
158
159 flash@0,80000 {
Josh Boyerbf07f322007-09-15 04:54:13 +1000160 compatible = "jedec-flash";
Josh Boyer8852ab72007-09-07 07:50:50 -0500161 bank-width = <1>;
Josh Boyer8852ab72007-09-07 07:50:50 -0500162 reg = <0 80000 80000>;
Josh Boyerbf07f322007-09-15 04:54:13 +1000163 #address-cells = <1>;
164 #size-cells = <1>;
165 partition@0 {
166 label = "OpenBIOS";
167 reg = <0 80000>;
168 read-only;
169 };
Josh Boyer8852ab72007-09-07 07:50:50 -0500170 };
171
172 ds1743@1,0 {
173 /* NVRAM and RTC */
174 compatible = "ds1743";
175 reg = <1 0 2000>;
176 };
177
178 keyboard@2,0 {
179 compatible = "intel,82C42PC";
180 reg = <2 0 2>;
181 };
182
183 ir@3,0 {
184 compatible = "ti,TIR2000PAG";
185 reg = <3 0 10>;
186 };
187
188 fpga@7,0 {
189 compatible = "Walnut-FPGA";
190 reg = <7 0 10>;
191 virtual-reg = <f0300005>;
192 };
193 };
Benjamin Herrenschmidt379865d2007-12-21 15:39:28 +1100194
195 PCI0: pci@ec000000 {
196 device_type = "pci";
197 #interrupt-cells = <1>;
198 #size-cells = <2>;
199 #address-cells = <3>;
200 compatible = "ibm,plb405gp-pci", "ibm,plb-pci";
201 primary;
202 reg = <eec00000 8 /* Config space access */
203 eed80000 4 /* IACK */
204 eed80000 4 /* Special cycle */
205 ef480000 40>; /* Internal registers */
206
207 /* Outbound ranges, one memory and one IO,
208 * later cannot be changed. Chip supports a second
209 * IO range but we don't use it for now
210 */
211 ranges = <02000000 0 80000000 80000000 0 20000000
212 01000000 0 00000000 e8000000 0 00010000>;
213
214 /* Inbound 2GB range starting at 0 */
215 dma-ranges = <42000000 0 0 0 0 80000000>;
216
217 /* Walnut has all 4 IRQ pins tied together per slot */
218 interrupt-map-mask = <f800 0 0 0>;
219 interrupt-map = <
220 /* IDSEL 1 */
221 0800 0 0 0 &UIC0 1c 8
222
223 /* IDSEL 2 */
224 1000 0 0 0 &UIC0 1d 8
225
226 /* IDSEL 3 */
227 1800 0 0 0 &UIC0 1e 8
228
229 /* IDSEL 4 */
230 2000 0 0 0 &UIC0 1f 8
231 >;
232 };
Josh Boyer8852ab72007-09-07 07:50:50 -0500233 };
234
235 chosen {
236 linux,stdout-path = "/plb/opb/serial@ef600300";
237 };
238};