blob: dcc21b0438e5f4e56d3761f1e2053a5c02ca5554 [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
Stefan Roese8aaed982007-12-15 18:55:16 +110019 aliases {
20 ethernet0 = &EMAC;
21 serial0 = &UART0;
22 serial1 = &UART1;
23 };
24
Josh Boyer8852ab72007-09-07 07:50:50 -050025 cpus {
26 #address-cells = <1>;
27 #size-cells = <0>;
28
Josh Boyer72fda112007-12-06 13:20:05 -060029 cpu@0 {
Josh Boyer8852ab72007-09-07 07:50:50 -050030 device_type = "cpu";
Josh Boyer72fda112007-12-06 13:20:05 -060031 model = "PowerPC,405GP";
Josh Boyer8852ab72007-09-07 07:50:50 -050032 reg = <0>;
33 clock-frequency = <bebc200>; /* Filled in by zImage */
34 timebase-frequency = <0>; /* Filled in by zImage */
35 i-cache-line-size = <20>;
36 d-cache-line-size = <20>;
37 i-cache-size = <4000>;
38 d-cache-size = <4000>;
39 dcr-controller;
40 dcr-access-method = "native";
41 };
42 };
43
44 memory {
45 device_type = "memory";
46 reg = <0 0>; /* Filled in by zImage */
47 };
48
49 UIC0: interrupt-controller {
50 compatible = "ibm,uic";
51 interrupt-controller;
52 cell-index = <0>;
53 dcr-reg = <0c0 9>;
54 #address-cells = <0>;
55 #size-cells = <0>;
56 #interrupt-cells = <2>;
57 };
58
59 plb {
60 compatible = "ibm,plb3";
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64 clock-frequency = <0>; /* Filled in by zImage */
65
66 SDRAM0: memory-controller {
67 compatible = "ibm,sdram-405gp";
68 dcr-reg = <010 2>;
69 };
70
71 MAL: mcmal {
72 compatible = "ibm,mcmal-405gp", "ibm,mcmal";
73 dcr-reg = <180 62>;
Josh Boyerb3af7a52007-10-20 00:53:11 +100074 num-tx-chans = <1>;
Josh Boyer8852ab72007-09-07 07:50:50 -050075 num-rx-chans = <1>;
76 interrupt-parent = <&UIC0>;
Josh Boyerb3af7a52007-10-20 00:53:11 +100077 interrupts = <
78 b 4 /* TXEOB */
79 c 4 /* RXEOB */
80 a 4 /* SERR */
81 d 4 /* TXDE */
82 e 4 /* RXDE */>;
Josh Boyer8852ab72007-09-07 07:50:50 -050083 };
84
85 POB0: opb {
86 compatible = "ibm,opb-405gp", "ibm,opb";
87 #address-cells = <1>;
88 #size-cells = <1>;
89 ranges = <ef600000 ef600000 a00000>;
90 dcr-reg = <0a0 5>;
91 clock-frequency = <0>; /* Filled in by zImage */
92
93 UART0: serial@ef600300 {
94 device_type = "serial";
95 compatible = "ns16550";
96 reg = <ef600300 8>;
97 virtual-reg = <ef600300>;
98 clock-frequency = <0>; /* Filled in by zImage */
99 current-speed = <2580>;
100 interrupt-parent = <&UIC0>;
101 interrupts = <0 4>;
102 };
103
104 UART1: serial@ef600400 {
105 device_type = "serial";
106 compatible = "ns16550";
107 reg = <ef600400 8>;
108 virtual-reg = <ef600400>;
109 clock-frequency = <0>; /* Filled in by zImage */
110 current-speed = <2580>;
111 interrupt-parent = <&UIC0>;
112 interrupts = <1 4>;
113 };
114
115 IIC: i2c@ef600500 {
116 compatible = "ibm,iic-405gp", "ibm,iic";
117 reg = <ef600500 11>;
118 interrupt-parent = <&UIC0>;
119 interrupts = <2 4>;
120 };
121
122 GPIO: gpio@ef600700 {
123 compatible = "ibm,gpio-405gp";
124 reg = <ef600700 20>;
125 };
126
127 EMAC: ethernet@ef600800 {
128 linux,network-index = <0>;
129 device_type = "network";
130 compatible = "ibm,emac-405gp", "ibm,emac";
131 interrupt-parent = <&UIC0>;
Steven A. Falco29273152007-11-01 04:52:53 +1100132 interrupts = <
133 f 4 /* Ethernet */
134 9 4 /* Ethernet Wake Up */>;
Josh Boyerb3af7a52007-10-20 00:53:11 +1000135 local-mac-address = [000000000000]; /* Filled in by zImage */
Josh Boyer8852ab72007-09-07 07:50:50 -0500136 reg = <ef600800 70>;
137 mal-device = <&MAL>;
Josh Boyerb3af7a52007-10-20 00:53:11 +1000138 mal-tx-channel = <0>;
Josh Boyer8852ab72007-09-07 07:50:50 -0500139 mal-rx-channel = <0>;
140 cell-index = <0>;
141 max-frame-size = <5dc>;
142 rx-fifo-size = <1000>;
143 tx-fifo-size = <800>;
144 phy-mode = "rmii";
145 phy-map = <00000001>;
146 };
147
148 };
149
150 EBC0: ebc {
151 compatible = "ibm,ebc-405gp", "ibm,ebc";
152 dcr-reg = <012 2>;
153 #address-cells = <2>;
154 #size-cells = <1>;
Josh Boyerbf07f322007-09-15 04:54:13 +1000155 /* The ranges property is supplied by the bootwrapper
156 * and is based on the firmware's configuration of the
157 * EBC bridge
158 */
Josh Boyer8852ab72007-09-07 07:50:50 -0500159 clock-frequency = <0>; /* Filled in by zImage */
160
161 sram@0,0 {
162 reg = <0 0 80000>;
163 };
164
165 flash@0,80000 {
Josh Boyerbf07f322007-09-15 04:54:13 +1000166 compatible = "jedec-flash";
Josh Boyer8852ab72007-09-07 07:50:50 -0500167 bank-width = <1>;
Josh Boyer8852ab72007-09-07 07:50:50 -0500168 reg = <0 80000 80000>;
Josh Boyerbf07f322007-09-15 04:54:13 +1000169 #address-cells = <1>;
170 #size-cells = <1>;
171 partition@0 {
172 label = "OpenBIOS";
173 reg = <0 80000>;
174 read-only;
175 };
Josh Boyer8852ab72007-09-07 07:50:50 -0500176 };
177
David Gibson22258fa2008-01-11 14:25:34 +1100178 nvram@1,0 {
Josh Boyer8852ab72007-09-07 07:50:50 -0500179 /* NVRAM and RTC */
David Gibson22258fa2008-01-11 14:25:34 +1100180 compatible = "ds1743-nvram";
181 #bytes = <2000>;
Josh Boyer8852ab72007-09-07 07:50:50 -0500182 reg = <1 0 2000>;
183 };
184
185 keyboard@2,0 {
186 compatible = "intel,82C42PC";
187 reg = <2 0 2>;
188 };
189
190 ir@3,0 {
191 compatible = "ti,TIR2000PAG";
192 reg = <3 0 10>;
193 };
194
195 fpga@7,0 {
196 compatible = "Walnut-FPGA";
197 reg = <7 0 10>;
198 virtual-reg = <f0300005>;
199 };
200 };
Benjamin Herrenschmidt379865d2007-12-21 15:39:28 +1100201
202 PCI0: pci@ec000000 {
203 device_type = "pci";
204 #interrupt-cells = <1>;
205 #size-cells = <2>;
206 #address-cells = <3>;
207 compatible = "ibm,plb405gp-pci", "ibm,plb-pci";
208 primary;
209 reg = <eec00000 8 /* Config space access */
210 eed80000 4 /* IACK */
211 eed80000 4 /* Special cycle */
212 ef480000 40>; /* Internal registers */
213
214 /* Outbound ranges, one memory and one IO,
215 * later cannot be changed. Chip supports a second
216 * IO range but we don't use it for now
217 */
218 ranges = <02000000 0 80000000 80000000 0 20000000
219 01000000 0 00000000 e8000000 0 00010000>;
220
221 /* Inbound 2GB range starting at 0 */
222 dma-ranges = <42000000 0 0 0 0 80000000>;
223
224 /* Walnut has all 4 IRQ pins tied together per slot */
225 interrupt-map-mask = <f800 0 0 0>;
226 interrupt-map = <
227 /* IDSEL 1 */
228 0800 0 0 0 &UIC0 1c 8
229
230 /* IDSEL 2 */
231 1000 0 0 0 &UIC0 1d 8
232
233 /* IDSEL 3 */
234 1800 0 0 0 &UIC0 1e 8
235
236 /* IDSEL 4 */
237 2000 0 0 0 &UIC0 1f 8
238 >;
239 };
Josh Boyer8852ab72007-09-07 07:50:50 -0500240 };
241
242 chosen {
243 linux,stdout-path = "/plb/opb/serial@ef600300";
244 };
245};