1d5b9ee7bSTanmay Inamdar/*
2d5b9ee7bSTanmay Inamdar * Device Tree for Klondike (APM8018X) board.
3d5b9ee7bSTanmay Inamdar *
4d5b9ee7bSTanmay Inamdar * Copyright (c) 2010, Applied Micro Circuits Corporation
5d5b9ee7bSTanmay Inamdar * Author: Tanmay Inamdar <tinamdar@apm.com>
6d5b9ee7bSTanmay Inamdar *
7d5b9ee7bSTanmay Inamdar * This program is free software; you can redistribute it and/or
8d5b9ee7bSTanmay Inamdar * modify it under the terms of the GNU General Public License as
9d5b9ee7bSTanmay Inamdar * published by the Free Software Foundation; either version 2 of
10d5b9ee7bSTanmay Inamdar * the License, or (at your option) any later version.
11d5b9ee7bSTanmay Inamdar *
12d5b9ee7bSTanmay Inamdar * This program is distributed in the hope that it will be useful,
13d5b9ee7bSTanmay Inamdar * but WITHOUT ANY WARRANTY; without even the implied warranty of
14d5b9ee7bSTanmay Inamdar * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15d5b9ee7bSTanmay Inamdar * GNU General Public License for more details.
16d5b9ee7bSTanmay Inamdar *
17d5b9ee7bSTanmay Inamdar * You should have received a copy of the GNU General Public License
18d5b9ee7bSTanmay Inamdar * along with this program; if not, write to the Free Software
19d5b9ee7bSTanmay Inamdar * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20d5b9ee7bSTanmay Inamdar * MA 02111-1307 USA
21d5b9ee7bSTanmay Inamdar *
22d5b9ee7bSTanmay Inamdar */
23d5b9ee7bSTanmay Inamdar
24d5b9ee7bSTanmay Inamdar/dts-v1/;
25d5b9ee7bSTanmay Inamdar
26d5b9ee7bSTanmay Inamdar/ {
27d5b9ee7bSTanmay Inamdar	#address-cells = <1>;
28d5b9ee7bSTanmay Inamdar	#size-cells = <1>;
29d5b9ee7bSTanmay Inamdar	model = "apm,klondike";
30d5b9ee7bSTanmay Inamdar	compatible = "apm,klondike";
31d5b9ee7bSTanmay Inamdar	dcr-parent = <&{/cpus/cpu@0}>;
32d5b9ee7bSTanmay Inamdar
33d5b9ee7bSTanmay Inamdar	aliases {
34d5b9ee7bSTanmay Inamdar		ethernet0 = &EMAC0;
35d5b9ee7bSTanmay Inamdar		ethernet1 = &EMAC1;
36d5b9ee7bSTanmay Inamdar	};
37d5b9ee7bSTanmay Inamdar
38d5b9ee7bSTanmay Inamdar	cpus {
39d5b9ee7bSTanmay Inamdar		#address-cells = <1>;
40d5b9ee7bSTanmay Inamdar		#size-cells = <0>;
41d5b9ee7bSTanmay Inamdar
42d5b9ee7bSTanmay Inamdar		cpu@0 {
43d5b9ee7bSTanmay Inamdar			device_type = "cpu";
44d5b9ee7bSTanmay Inamdar			model = "PowerPC,apm8018x";
45d5b9ee7bSTanmay Inamdar			reg = <0x00000000>;
46d5b9ee7bSTanmay Inamdar			clock-frequency = <300000000>; /* Filled in by U-Boot */
47d5b9ee7bSTanmay Inamdar			timebase-frequency = <300000000>; /* Filled in by U-Boot */
48d5b9ee7bSTanmay Inamdar			i-cache-line-size = <32>;
49d5b9ee7bSTanmay Inamdar			d-cache-line-size = <32>;
50d5b9ee7bSTanmay Inamdar			i-cache-size = <16384>; /* 16 kB */
51d5b9ee7bSTanmay Inamdar			d-cache-size = <16384>; /* 16 kB */
52d5b9ee7bSTanmay Inamdar			dcr-controller;
53d5b9ee7bSTanmay Inamdar			dcr-access-method = "native";
54d5b9ee7bSTanmay Inamdar		};
55d5b9ee7bSTanmay Inamdar	};
56d5b9ee7bSTanmay Inamdar
57d5b9ee7bSTanmay Inamdar	memory {
58d5b9ee7bSTanmay Inamdar		device_type = "memory";
59d5b9ee7bSTanmay Inamdar		reg = <0x00000000 0x20000000>; /* Filled in by U-Boot */
60d5b9ee7bSTanmay Inamdar	};
61d5b9ee7bSTanmay Inamdar
62d5b9ee7bSTanmay Inamdar	UIC0: interrupt-controller {
63d5b9ee7bSTanmay Inamdar		compatible = "ibm,uic";
64d5b9ee7bSTanmay Inamdar		interrupt-controller;
65d5b9ee7bSTanmay Inamdar		cell-index = <0>;
66d5b9ee7bSTanmay Inamdar		dcr-reg = <0x0c0 0x010>;
67d5b9ee7bSTanmay Inamdar		#address-cells = <0>;
68d5b9ee7bSTanmay Inamdar		#size-cells = <0>;
69d5b9ee7bSTanmay Inamdar		#interrupt-cells = <2>;
70d5b9ee7bSTanmay Inamdar	};
71d5b9ee7bSTanmay Inamdar
72d5b9ee7bSTanmay Inamdar	UIC1: interrupt-controller1 {
73d5b9ee7bSTanmay Inamdar		compatible = "ibm,uic";
74d5b9ee7bSTanmay Inamdar		interrupt-controller;
75d5b9ee7bSTanmay Inamdar		cell-index = <1>;
76d5b9ee7bSTanmay Inamdar		dcr-reg = <0x0d0 0x010>;
77d5b9ee7bSTanmay Inamdar		#address-cells = <0>;
78d5b9ee7bSTanmay Inamdar		#size-cells = <0>;
79d5b9ee7bSTanmay Inamdar		#interrupt-cells = <2>;
80d5b9ee7bSTanmay Inamdar		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
81d5b9ee7bSTanmay Inamdar		interrupt-parent = <&UIC0>;
82d5b9ee7bSTanmay Inamdar	};
83d5b9ee7bSTanmay Inamdar
84d5b9ee7bSTanmay Inamdar	UIC2: interrupt-controller2 {
85d5b9ee7bSTanmay Inamdar		compatible = "ibm,uic";
86d5b9ee7bSTanmay Inamdar		interrupt-controller;
87d5b9ee7bSTanmay Inamdar		cell-index = <2>;
88d5b9ee7bSTanmay Inamdar		dcr-reg = <0x0e0 0x010>;
89d5b9ee7bSTanmay Inamdar		#address-cells = <0>;
90d5b9ee7bSTanmay Inamdar		#size-cells = <0>;
91d5b9ee7bSTanmay Inamdar		#interrupt-cells = <2>;
92d5b9ee7bSTanmay Inamdar		interrupts = <0x0a 0x4 0x0b 0x4>; /* cascade */
93d5b9ee7bSTanmay Inamdar		interrupt-parent = <&UIC0>;
94d5b9ee7bSTanmay Inamdar	};
95d5b9ee7bSTanmay Inamdar
96d5b9ee7bSTanmay Inamdar	UIC3: interrupt-controller3 {
97d5b9ee7bSTanmay Inamdar		compatible = "ibm,uic";
98d5b9ee7bSTanmay Inamdar		interrupt-controller;
99d5b9ee7bSTanmay Inamdar		cell-index = <3>;
100d5b9ee7bSTanmay Inamdar		dcr-reg = <0x0f0 0x010>;
101d5b9ee7bSTanmay Inamdar		#address-cells = <0>;
102d5b9ee7bSTanmay Inamdar		#size-cells = <0>;
103d5b9ee7bSTanmay Inamdar		#interrupt-cells = <2>;
104d5b9ee7bSTanmay Inamdar		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
105d5b9ee7bSTanmay Inamdar		interrupt-parent = <&UIC0>;
106d5b9ee7bSTanmay Inamdar	};
107d5b9ee7bSTanmay Inamdar
108d5b9ee7bSTanmay Inamdar	plb {
109d5b9ee7bSTanmay Inamdar		compatible = "ibm,plb4";
110d5b9ee7bSTanmay Inamdar		#address-cells = <1>;
111d5b9ee7bSTanmay Inamdar		#size-cells = <1>;
112d5b9ee7bSTanmay Inamdar		ranges;
113d5b9ee7bSTanmay Inamdar		clock-frequency = <0>; /* Filled in by U-Boot */
114d5b9ee7bSTanmay Inamdar
115d5b9ee7bSTanmay Inamdar		SDRAM0: memory-controller {
116d5b9ee7bSTanmay Inamdar			compatible = "ibm,sdram-apm8018x";
117d5b9ee7bSTanmay Inamdar			dcr-reg = <0x010 0x002>;
118d5b9ee7bSTanmay Inamdar		};
119d5b9ee7bSTanmay Inamdar
120d5b9ee7bSTanmay Inamdar		MAL0: mcmal {
121d5b9ee7bSTanmay Inamdar			compatible = "ibm,mcmal2";
122d5b9ee7bSTanmay Inamdar			dcr-reg = <0x180 0x062>;
123d5b9ee7bSTanmay Inamdar			num-tx-chans = <2>;
124d5b9ee7bSTanmay Inamdar			num-rx-chans = <16>;
125d5b9ee7bSTanmay Inamdar			#address-cells = <0>;
126d5b9ee7bSTanmay Inamdar			#size-cells = <0>;
127d5b9ee7bSTanmay Inamdar			interrupt-parent = <&UIC1>;
128d5b9ee7bSTanmay Inamdar			interrupts = </*TXEOB*/   0x6 0x4
129d5b9ee7bSTanmay Inamdar					/*RXEOB*/ 0x7 0x4
130d5b9ee7bSTanmay Inamdar					/*SERR*/  0x1 0x4
131d5b9ee7bSTanmay Inamdar					/*TXDE*/  0x2 0x4
132d5b9ee7bSTanmay Inamdar					/*RXDE*/  0x3 0x4>;
133d5b9ee7bSTanmay Inamdar		};
134d5b9ee7bSTanmay Inamdar
135d5b9ee7bSTanmay Inamdar		POB0: opb {
136d5b9ee7bSTanmay Inamdar			compatible = "ibm,opb";
137d5b9ee7bSTanmay Inamdar			#address-cells = <1>;
138d5b9ee7bSTanmay Inamdar			#size-cells = <1>;
139d5b9ee7bSTanmay Inamdar			ranges = <0x20000000 0x20000000 0x30000000
140d5b9ee7bSTanmay Inamdar				  0x50000000 0x50000000 0x10000000
141d5b9ee7bSTanmay Inamdar				  0x60000000 0x60000000 0x10000000
142d5b9ee7bSTanmay Inamdar				  0xFE000000 0xFE000000 0x00010000>;
143d5b9ee7bSTanmay Inamdar			dcr-reg = <0x100 0x020>;
144d5b9ee7bSTanmay Inamdar			clock-frequency = <300000000>; /* Filled in by U-Boot */
145d5b9ee7bSTanmay Inamdar
146d5b9ee7bSTanmay Inamdar			RGMII0: emac-rgmii@400a2000 {
147d5b9ee7bSTanmay Inamdar				compatible = "ibm,rgmii";
148d5b9ee7bSTanmay Inamdar				reg = <0x400a2000 0x00000010>;
149d5b9ee7bSTanmay Inamdar				has-mdio;
150d5b9ee7bSTanmay Inamdar			};
151d5b9ee7bSTanmay Inamdar
152d5b9ee7bSTanmay Inamdar			TAH0: emac-tah@400a3000 {
153d5b9ee7bSTanmay Inamdar				compatible = "ibm,tah";
154d5b9ee7bSTanmay Inamdar				reg = <0x400a3000 0x100>;
155d5b9ee7bSTanmay Inamdar			};
156d5b9ee7bSTanmay Inamdar
157d5b9ee7bSTanmay Inamdar			TAH1: emac-tah@400a4000 {
158d5b9ee7bSTanmay Inamdar				compatible = "ibm,tah";
159d5b9ee7bSTanmay Inamdar				reg = <0x400a4000 0x100>;
160d5b9ee7bSTanmay Inamdar			};
161d5b9ee7bSTanmay Inamdar
162d5b9ee7bSTanmay Inamdar			EMAC0: ethernet@400a0000 {
163d5b9ee7bSTanmay Inamdar				compatible = "ibm,emac4", "ibm-emac4sync";
164d5b9ee7bSTanmay Inamdar				interrupt-parent = <&EMAC0>;
165d5b9ee7bSTanmay Inamdar				interrupts = <0x0>;
166d5b9ee7bSTanmay Inamdar				#interrupt-cells = <1>;
167d5b9ee7bSTanmay Inamdar				#address-cells = <0>;
168d5b9ee7bSTanmay Inamdar				#size-cells = <0>;
169d5b9ee7bSTanmay Inamdar				interrupt-map = </*Status*/ 0x0 &UIC0 0x13 0x4>;
170d5b9ee7bSTanmay Inamdar				reg = <0x400a0000 0x00000100>;
171d5b9ee7bSTanmay Inamdar				local-mac-address = [000000000000]; /* Filled in by U-Boot */
172d5b9ee7bSTanmay Inamdar				mal-device = <&MAL0>;
173d5b9ee7bSTanmay Inamdar				mal-tx-channel = <0x0>;
174d5b9ee7bSTanmay Inamdar				mal-rx-channel = <0x0>;
175d5b9ee7bSTanmay Inamdar				cell-index = <0>;
176d5b9ee7bSTanmay Inamdar				max-frame-size = <9000>;
177d5b9ee7bSTanmay Inamdar				rx-fifo-size = <4096>;
178d5b9ee7bSTanmay Inamdar				tx-fifo-size = <2048>;
179d5b9ee7bSTanmay Inamdar				phy-mode = "rgmii";
180d5b9ee7bSTanmay Inamdar				phy-address = <0x2>;
181d5b9ee7bSTanmay Inamdar				turbo = "no";
182d5b9ee7bSTanmay Inamdar				phy-map = <0x00000000>;
183d5b9ee7bSTanmay Inamdar				rgmii-device = <&RGMII0>;
184d5b9ee7bSTanmay Inamdar				rgmii-channel = <0>;
185d5b9ee7bSTanmay Inamdar				tah-device = <&TAH0>;
186d5b9ee7bSTanmay Inamdar				tah-channel = <0>;
187d5b9ee7bSTanmay Inamdar				has-inverted-stacr-oc;
188d5b9ee7bSTanmay Inamdar				has-new-stacr-staopc;
189d5b9ee7bSTanmay Inamdar			};
190d5b9ee7bSTanmay Inamdar
191d5b9ee7bSTanmay Inamdar			EMAC1: ethernet@400a1000 {
192d5b9ee7bSTanmay Inamdar				compatible = "ibm,emac4", "ibm-emac4sync";
193d5b9ee7bSTanmay Inamdar				status = "disabled";
194d5b9ee7bSTanmay Inamdar				interrupt-parent = <&EMAC1>;
195d5b9ee7bSTanmay Inamdar				interrupts = <0x0>;
196d5b9ee7bSTanmay Inamdar				#interrupt-cells = <1>;
197d5b9ee7bSTanmay Inamdar				#address-cells = <0>;
198d5b9ee7bSTanmay Inamdar				#size-cells = <0>;
199d5b9ee7bSTanmay Inamdar				interrupt-map = </*Status*/ 0x0 &UIC0 0x14 0x4>;
200d5b9ee7bSTanmay Inamdar				reg = <0x400a1000 0x00000100>;
201d5b9ee7bSTanmay Inamdar				local-mac-address = [000000000000]; /* Filled in by U-Boot */
202d5b9ee7bSTanmay Inamdar				mal-device = <&MAL0>;
203d5b9ee7bSTanmay Inamdar				mal-tx-channel = <1>;
204d5b9ee7bSTanmay Inamdar				mal-rx-channel = <8>;
205d5b9ee7bSTanmay Inamdar				cell-index = <1>;
206d5b9ee7bSTanmay Inamdar				max-frame-size = <9000>;
207d5b9ee7bSTanmay Inamdar				rx-fifo-size = <4096>;
208d5b9ee7bSTanmay Inamdar				tx-fifo-size = <2048>;
209d5b9ee7bSTanmay Inamdar				phy-mode = "rgmii";
210d5b9ee7bSTanmay Inamdar				phy-address = <0x3>;
211d5b9ee7bSTanmay Inamdar				turbo = "no";
212d5b9ee7bSTanmay Inamdar				phy-map = <0x00000000>;
213d5b9ee7bSTanmay Inamdar				rgmii-device = <&RGMII0>;
214d5b9ee7bSTanmay Inamdar				rgmii-channel = <1>;
215d5b9ee7bSTanmay Inamdar				tah-device = <&TAH1>;
216d5b9ee7bSTanmay Inamdar				tah-channel = <0>;
217d5b9ee7bSTanmay Inamdar				has-inverted-stacr-oc;
218d5b9ee7bSTanmay Inamdar				has-new-stacr-staopc;
219d5b9ee7bSTanmay Inamdar				mdio-device = <&EMAC0>;
220d5b9ee7bSTanmay Inamdar			};
221d5b9ee7bSTanmay Inamdar		};
222d5b9ee7bSTanmay Inamdar	};
223d5b9ee7bSTanmay Inamdar
224d5b9ee7bSTanmay Inamdar	chosen {
22578e5dfeaSRob Herring		stdout-path = "/plb/opb/serial@50001000";
226d5b9ee7bSTanmay Inamdar	};
227d5b9ee7bSTanmay Inamdar};
228