blob: 16cfc0d01774fe056ec1ef2424239372b16c206c [file] [log] [blame]
Benjamin Herrenschmidt61974032007-12-21 15:39:26 +11001/*
2 * Device Tree Source for EP405
3 *
4 * Copyright 2007 IBM Corp.
5 * Benjamin Herrenschmidt <benh@kernel.crashing.org>
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 = "ep405";
16 compatible = "ep405";
Josh Boyer72fda112007-12-06 13:20:05 -060017 dcr-parent = <&/cpus/cpu@0>;
Benjamin Herrenschmidt61974032007-12-21 15:39:26 +110018
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
Josh Boyer72fda112007-12-06 13:20:05 -060023 cpu@0 {
Benjamin Herrenschmidt61974032007-12-21 15:39:26 +110024 device_type = "cpu";
Josh Boyer72fda112007-12-06 13:20:05 -060025 model = "PowerPC,405GP";
Benjamin Herrenschmidt61974032007-12-21 15:39:26 +110026 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>;
68 num-tx-chans = <1>;
69 num-rx-chans = <1>;
70 interrupt-parent = <&UIC0>;
71 interrupts = <
72 b 4 /* TXEOB */
73 c 4 /* RXEOB */
74 a 4 /* SERR */
75 d 4 /* TXDE */
76 e 4 /* RXDE */>;
77 };
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>;
126 interrupts = <
127 f 4 /* Ethernet */
128 9 4 /* Ethernet Wake Up */>;
129 local-mac-address = [000000000000]; /* Filled in by zImage */
130 reg = <ef600800 70>;
131 mal-device = <&MAL>;
132 mal-tx-channel = <0>;
133 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 = <00000000>;
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>;
149
150
151 /* The ranges property is supplied by the bootwrapper
152 * and is based on the firmware's configuration of the
153 * EBC bridge
154 */
155 clock-frequency = <0>; /* Filled in by zImage */
156
157 /* NVRAM and RTC */
158 nvrtc@4,200000 {
159 compatible = "ds1742";
160 reg = <4 200000 0>; /* size fixed up by zImage */
161 };
162
163 /* "BCSR" CPLD contains a PCI irq controller */
164 bcsr@4,0 {
165 compatible = "ep405-bcsr";
166 reg = <4 0 10>;
167 interrupt-controller;
168 /* Routing table */
169 irq-routing = [ 00 /* SYSERR */
170 01 /* STTM */
171 01 /* RTC */
172 01 /* FENET */
173 02 /* NB PCIIRQ mux ? */
174 03 /* SB Winbond 8259 ? */
175 04 /* Serial Ring */
176 05 /* USB (ep405pc) */
177 06 /* XIRQ 0 */
178 06 /* XIRQ 1 */
179 06 /* XIRQ 2 */
180 06 /* XIRQ 3 */
181 06 /* XIRQ 4 */
182 06 /* XIRQ 5 */
183 06 /* XIRQ 6 */
184 07]; /* Reserved */
185 };
186 };
187
188 PCI0: pci@ec000000 {
189 device_type = "pci";
190 #interrupt-cells = <1>;
191 #size-cells = <2>;
192 #address-cells = <3>;
193 compatible = "ibm,plb405gp-pci", "ibm,plb-pci";
194 primary;
195 reg = <eec00000 8 /* Config space access */
196 eed80000 4 /* IACK */
197 eed80000 4 /* Special cycle */
198 ef480000 40>; /* Internal registers */
199
200 /* Outbound ranges, one memory and one IO,
201 * later cannot be changed. Chip supports a second
202 * IO range but we don't use it for now
203 */
204 ranges = <02000000 0 80000000 80000000 0 20000000
205 01000000 0 00000000 e8000000 0 00010000>;
206
207 /* Inbound 2GB range starting at 0 */
208 dma-ranges = <42000000 0 0 0 0 80000000>;
209
210 /* That's all I know about IRQs on that thing ... */
211 interrupt-map-mask = <f800 0 0 0>;
212 interrupt-map = <
213 /* USB */
214 7000 0 0 0 &UIC0 1e 8 /* IRQ5 */
215 >;
216 };
217 };
218
219 chosen {
220 linux,stdout-path = "/plb/opb/serial@ef600300";
221 };
222};