xref: /OK3568_Linux_fs/kernel/arch/powerpc/boot/dts/klondike.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Device Tree for Klondike (APM8018X) board.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (c) 2010, Applied Micro Circuits Corporation
6*4882a593Smuzhiyun * Author: Tanmay Inamdar <tinamdar@apm.com>
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/dts-v1/;
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	#address-cells = <1>;
13*4882a593Smuzhiyun	#size-cells = <1>;
14*4882a593Smuzhiyun	model = "apm,klondike";
15*4882a593Smuzhiyun	compatible = "apm,klondike";
16*4882a593Smuzhiyun	dcr-parent = <&{/cpus/cpu@0}>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	aliases {
19*4882a593Smuzhiyun		ethernet0 = &EMAC0;
20*4882a593Smuzhiyun		ethernet1 = &EMAC1;
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	cpus {
24*4882a593Smuzhiyun		#address-cells = <1>;
25*4882a593Smuzhiyun		#size-cells = <0>;
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun		cpu@0 {
28*4882a593Smuzhiyun			device_type = "cpu";
29*4882a593Smuzhiyun			model = "PowerPC,apm8018x";
30*4882a593Smuzhiyun			reg = <0x00000000>;
31*4882a593Smuzhiyun			clock-frequency = <300000000>; /* Filled in by U-Boot */
32*4882a593Smuzhiyun			timebase-frequency = <300000000>; /* Filled in by U-Boot */
33*4882a593Smuzhiyun			i-cache-line-size = <32>;
34*4882a593Smuzhiyun			d-cache-line-size = <32>;
35*4882a593Smuzhiyun			i-cache-size = <16384>; /* 16 kB */
36*4882a593Smuzhiyun			d-cache-size = <16384>; /* 16 kB */
37*4882a593Smuzhiyun			dcr-controller;
38*4882a593Smuzhiyun			dcr-access-method = "native";
39*4882a593Smuzhiyun		};
40*4882a593Smuzhiyun	};
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	memory {
43*4882a593Smuzhiyun		device_type = "memory";
44*4882a593Smuzhiyun		reg = <0x00000000 0x20000000>; /* Filled in by U-Boot */
45*4882a593Smuzhiyun	};
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	UIC0: interrupt-controller {
48*4882a593Smuzhiyun		compatible = "ibm,uic";
49*4882a593Smuzhiyun		interrupt-controller;
50*4882a593Smuzhiyun		cell-index = <0>;
51*4882a593Smuzhiyun		dcr-reg = <0x0c0 0x010>;
52*4882a593Smuzhiyun		#address-cells = <0>;
53*4882a593Smuzhiyun		#size-cells = <0>;
54*4882a593Smuzhiyun		#interrupt-cells = <2>;
55*4882a593Smuzhiyun	};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun	UIC1: interrupt-controller1 {
58*4882a593Smuzhiyun		compatible = "ibm,uic";
59*4882a593Smuzhiyun		interrupt-controller;
60*4882a593Smuzhiyun		cell-index = <1>;
61*4882a593Smuzhiyun		dcr-reg = <0x0d0 0x010>;
62*4882a593Smuzhiyun		#address-cells = <0>;
63*4882a593Smuzhiyun		#size-cells = <0>;
64*4882a593Smuzhiyun		#interrupt-cells = <2>;
65*4882a593Smuzhiyun		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
66*4882a593Smuzhiyun		interrupt-parent = <&UIC0>;
67*4882a593Smuzhiyun	};
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun	UIC2: interrupt-controller2 {
70*4882a593Smuzhiyun		compatible = "ibm,uic";
71*4882a593Smuzhiyun		interrupt-controller;
72*4882a593Smuzhiyun		cell-index = <2>;
73*4882a593Smuzhiyun		dcr-reg = <0x0e0 0x010>;
74*4882a593Smuzhiyun		#address-cells = <0>;
75*4882a593Smuzhiyun		#size-cells = <0>;
76*4882a593Smuzhiyun		#interrupt-cells = <2>;
77*4882a593Smuzhiyun		interrupts = <0x0a 0x4 0x0b 0x4>; /* cascade */
78*4882a593Smuzhiyun		interrupt-parent = <&UIC0>;
79*4882a593Smuzhiyun	};
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun	UIC3: interrupt-controller3 {
82*4882a593Smuzhiyun		compatible = "ibm,uic";
83*4882a593Smuzhiyun		interrupt-controller;
84*4882a593Smuzhiyun		cell-index = <3>;
85*4882a593Smuzhiyun		dcr-reg = <0x0f0 0x010>;
86*4882a593Smuzhiyun		#address-cells = <0>;
87*4882a593Smuzhiyun		#size-cells = <0>;
88*4882a593Smuzhiyun		#interrupt-cells = <2>;
89*4882a593Smuzhiyun		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
90*4882a593Smuzhiyun		interrupt-parent = <&UIC0>;
91*4882a593Smuzhiyun	};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun	plb {
94*4882a593Smuzhiyun		compatible = "ibm,plb4";
95*4882a593Smuzhiyun		#address-cells = <1>;
96*4882a593Smuzhiyun		#size-cells = <1>;
97*4882a593Smuzhiyun		ranges;
98*4882a593Smuzhiyun		clock-frequency = <0>; /* Filled in by U-Boot */
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun		SDRAM0: memory-controller {
101*4882a593Smuzhiyun			compatible = "ibm,sdram-apm8018x";
102*4882a593Smuzhiyun			dcr-reg = <0x010 0x002>;
103*4882a593Smuzhiyun		};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun		MAL0: mcmal {
106*4882a593Smuzhiyun			compatible = "ibm,mcmal2";
107*4882a593Smuzhiyun			dcr-reg = <0x180 0x062>;
108*4882a593Smuzhiyun			num-tx-chans = <2>;
109*4882a593Smuzhiyun			num-rx-chans = <16>;
110*4882a593Smuzhiyun			#address-cells = <0>;
111*4882a593Smuzhiyun			#size-cells = <0>;
112*4882a593Smuzhiyun			interrupt-parent = <&UIC1>;
113*4882a593Smuzhiyun			interrupts = </*TXEOB*/   0x6 0x4
114*4882a593Smuzhiyun					/*RXEOB*/ 0x7 0x4
115*4882a593Smuzhiyun					/*SERR*/  0x1 0x4
116*4882a593Smuzhiyun					/*TXDE*/  0x2 0x4
117*4882a593Smuzhiyun					/*RXDE*/  0x3 0x4>;
118*4882a593Smuzhiyun		};
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun		POB0: opb {
121*4882a593Smuzhiyun			compatible = "ibm,opb";
122*4882a593Smuzhiyun			#address-cells = <1>;
123*4882a593Smuzhiyun			#size-cells = <1>;
124*4882a593Smuzhiyun			ranges = <0x20000000 0x20000000 0x30000000
125*4882a593Smuzhiyun				  0x50000000 0x50000000 0x10000000
126*4882a593Smuzhiyun				  0x60000000 0x60000000 0x10000000
127*4882a593Smuzhiyun				  0xFE000000 0xFE000000 0x00010000>;
128*4882a593Smuzhiyun			dcr-reg = <0x100 0x020>;
129*4882a593Smuzhiyun			clock-frequency = <300000000>; /* Filled in by U-Boot */
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun			RGMII0: emac-rgmii@400a2000 {
132*4882a593Smuzhiyun				compatible = "ibm,rgmii";
133*4882a593Smuzhiyun				reg = <0x400a2000 0x00000010>;
134*4882a593Smuzhiyun				has-mdio;
135*4882a593Smuzhiyun			};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun			TAH0: emac-tah@400a3000 {
138*4882a593Smuzhiyun				compatible = "ibm,tah";
139*4882a593Smuzhiyun				reg = <0x400a3000 0x100>;
140*4882a593Smuzhiyun			};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun			TAH1: emac-tah@400a4000 {
143*4882a593Smuzhiyun				compatible = "ibm,tah";
144*4882a593Smuzhiyun				reg = <0x400a4000 0x100>;
145*4882a593Smuzhiyun			};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun			EMAC0: ethernet@400a0000 {
148*4882a593Smuzhiyun				compatible = "ibm,emac4", "ibm-emac4sync";
149*4882a593Smuzhiyun				interrupt-parent = <&EMAC0>;
150*4882a593Smuzhiyun				interrupts = <0x0>;
151*4882a593Smuzhiyun				#interrupt-cells = <1>;
152*4882a593Smuzhiyun				#address-cells = <0>;
153*4882a593Smuzhiyun				#size-cells = <0>;
154*4882a593Smuzhiyun				interrupt-map = </*Status*/ 0x0 &UIC0 0x13 0x4>;
155*4882a593Smuzhiyun				reg = <0x400a0000 0x00000100>;
156*4882a593Smuzhiyun				local-mac-address = [000000000000]; /* Filled in by U-Boot */
157*4882a593Smuzhiyun				mal-device = <&MAL0>;
158*4882a593Smuzhiyun				mal-tx-channel = <0x0>;
159*4882a593Smuzhiyun				mal-rx-channel = <0x0>;
160*4882a593Smuzhiyun				cell-index = <0>;
161*4882a593Smuzhiyun				max-frame-size = <9000>;
162*4882a593Smuzhiyun				rx-fifo-size = <4096>;
163*4882a593Smuzhiyun				tx-fifo-size = <2048>;
164*4882a593Smuzhiyun				phy-mode = "rgmii";
165*4882a593Smuzhiyun				phy-address = <0x2>;
166*4882a593Smuzhiyun				turbo = "no";
167*4882a593Smuzhiyun				phy-map = <0x00000000>;
168*4882a593Smuzhiyun				rgmii-device = <&RGMII0>;
169*4882a593Smuzhiyun				rgmii-channel = <0>;
170*4882a593Smuzhiyun				tah-device = <&TAH0>;
171*4882a593Smuzhiyun				tah-channel = <0>;
172*4882a593Smuzhiyun				has-inverted-stacr-oc;
173*4882a593Smuzhiyun				has-new-stacr-staopc;
174*4882a593Smuzhiyun			};
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun			EMAC1: ethernet@400a1000 {
177*4882a593Smuzhiyun				compatible = "ibm,emac4", "ibm-emac4sync";
178*4882a593Smuzhiyun				status = "disabled";
179*4882a593Smuzhiyun				interrupt-parent = <&EMAC1>;
180*4882a593Smuzhiyun				interrupts = <0x0>;
181*4882a593Smuzhiyun				#interrupt-cells = <1>;
182*4882a593Smuzhiyun				#address-cells = <0>;
183*4882a593Smuzhiyun				#size-cells = <0>;
184*4882a593Smuzhiyun				interrupt-map = </*Status*/ 0x0 &UIC0 0x14 0x4>;
185*4882a593Smuzhiyun				reg = <0x400a1000 0x00000100>;
186*4882a593Smuzhiyun				local-mac-address = [000000000000]; /* Filled in by U-Boot */
187*4882a593Smuzhiyun				mal-device = <&MAL0>;
188*4882a593Smuzhiyun				mal-tx-channel = <1>;
189*4882a593Smuzhiyun				mal-rx-channel = <8>;
190*4882a593Smuzhiyun				cell-index = <1>;
191*4882a593Smuzhiyun				max-frame-size = <9000>;
192*4882a593Smuzhiyun				rx-fifo-size = <4096>;
193*4882a593Smuzhiyun				tx-fifo-size = <2048>;
194*4882a593Smuzhiyun				phy-mode = "rgmii";
195*4882a593Smuzhiyun				phy-address = <0x3>;
196*4882a593Smuzhiyun				turbo = "no";
197*4882a593Smuzhiyun				phy-map = <0x00000000>;
198*4882a593Smuzhiyun				rgmii-device = <&RGMII0>;
199*4882a593Smuzhiyun				rgmii-channel = <1>;
200*4882a593Smuzhiyun				tah-device = <&TAH1>;
201*4882a593Smuzhiyun				tah-channel = <0>;
202*4882a593Smuzhiyun				has-inverted-stacr-oc;
203*4882a593Smuzhiyun				has-new-stacr-staopc;
204*4882a593Smuzhiyun				mdio-device = <&EMAC0>;
205*4882a593Smuzhiyun			};
206*4882a593Smuzhiyun		};
207*4882a593Smuzhiyun	};
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun	chosen {
210*4882a593Smuzhiyun		stdout-path = "/plb/opb/serial@50001000";
211*4882a593Smuzhiyun	};
212*4882a593Smuzhiyun};
213