1/*
2 * arch/powerpc/boot/dts/wii.dts
3 *
4 * Nintendo Wii platform device tree source
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15/dts-v1/;
16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/input/input.h>
18
19/*
20 * This is commented-out for now.
21 * Until a later patch is merged, the kernel can use only the first
22 * contiguous RAM range and will BUG() if the memreserve is outside
23 * that range.
24 */
25/*/memreserve/ 0x10000000 0x0004000;*/	/* DSP RAM */
26
27/ {
28	model = "nintendo,wii";
29	compatible = "nintendo,wii";
30	#address-cells = <1>;
31	#size-cells = <1>;
32
33	chosen {
34		bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal";
35	};
36
37	memory {
38		device_type = "memory";
39		reg = <0x00000000 0x01800000	/* MEM1 24MB 1T-SRAM */
40		       0x10000000 0x04000000>;	/* MEM2 64MB GDDR3 */
41	};
42
43	cpus {
44		#address-cells = <1>;
45		#size-cells = <0>;
46
47		PowerPC,broadway@0 {
48			device_type = "cpu";
49			reg = <0>;
50			clock-frequency = <729000000>; /* 729MHz */
51			bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */
52			timebase-frequency = <60750000>; /* 243MHz / 4 */
53			i-cache-line-size = <32>;
54			d-cache-line-size = <32>;
55			i-cache-size = <32768>;
56			d-cache-size = <32768>;
57		};
58	};
59
60	/* devices contained in the hollywood chipset */
61	hollywood {
62		#address-cells = <1>;
63		#size-cells = <1>;
64		compatible = "nintendo,hollywood";
65                ranges = <0x0c000000 0x0c000000 0x01000000
66			  0x0d000000 0x0d000000 0x00800000
67			  0x0d800000 0x0d800000 0x00800000>;
68		interrupt-parent = <&PIC0>;
69
70		video@c002000 {
71			compatible = "nintendo,hollywood-vi",
72					"nintendo,flipper-vi";
73			reg = <0x0c002000 0x100>;
74			interrupts = <8>;
75		};
76
77		processor-interface@c003000 {
78			compatible = "nintendo,hollywood-pi",
79					"nintendo,flipper-pi";
80			reg = <0x0c003000 0x100>;
81
82			PIC0: pic0 {
83				#interrupt-cells = <1>;
84				compatible = "nintendo,flipper-pic";
85				interrupt-controller;
86			};
87		};
88
89		dsp@c005000 {
90			#address-cells = <1>;
91			#size-cells = <1>;
92			compatible = "nintendo,hollywood-dsp",
93					"nintendo,flipper-dsp";
94			reg = <0x0c005000 0x200>;
95			interrupts = <6>;
96		};
97
98		gamepad-controller@d006400 {
99			compatible = "nintendo,hollywood-si",
100					"nintendo,flipper-si";
101			reg = <0x0d006400 0x100>;
102			interrupts = <3>;
103		};
104
105		audio@c006c00 {
106			compatible = "nintendo,hollywood-ai",
107					"nintendo,flipper-ai";
108			reg = <0x0d006c00 0x20>;
109			interrupts = <6>;
110		};
111
112		/* External Interface bus */
113		exi@d006800 {
114			compatible = "nintendo,hollywood-exi",
115					"nintendo,flipper-exi";
116			reg = <0x0d006800 0x40>;
117			virtual-reg = <0x0d006800>;
118			interrupts = <4>;
119		};
120
121		usb@d040000 {
122			compatible = "nintendo,hollywood-usb-ehci",
123					"usb-ehci";
124			reg = <0x0d040000 0x100>;
125			interrupts = <4>;
126			interrupt-parent = <&PIC1>;
127		};
128
129		usb@d050000 {
130			compatible = "nintendo,hollywood-usb-ohci",
131					"usb-ohci";
132			reg = <0x0d050000 0x100>;
133			interrupts = <5>;
134			interrupt-parent = <&PIC1>;
135		};
136
137		usb@d060000 {
138			compatible = "nintendo,hollywood-usb-ohci",
139					"usb-ohci";
140			reg = <0x0d060000 0x100>;
141			interrupts = <6>;
142			interrupt-parent = <&PIC1>;
143		};
144
145		sd@d070000 {
146			compatible = "nintendo,hollywood-sdhci",
147					"sdhci";
148			reg = <0x0d070000 0x200>;
149			interrupts = <7>;
150			interrupt-parent = <&PIC1>;
151		};
152
153		sdio@d080000 {
154			compatible = "nintendo,hollywood-sdhci",
155					"sdhci";
156			reg = <0x0d080000 0x200>;
157			interrupts = <8>;
158			interrupt-parent = <&PIC1>;
159		};
160
161		ipc@d000000 {
162			compatible = "nintendo,hollywood-ipc";
163			reg = <0x0d000000 0x10>;
164			interrupts = <30>;
165			interrupt-parent = <&PIC1>;
166		};
167
168		PIC1: pic1@d800030 {
169			#interrupt-cells = <1>;
170			compatible = "nintendo,hollywood-pic";
171			reg = <0x0d800030 0x10>;
172			interrupt-controller;
173			interrupts = <14>;
174		};
175
176		GPIO: gpio@d8000c0 {
177			#gpio-cells = <2>;
178			compatible = "nintendo,hollywood-gpio";
179			reg = <0x0d8000c0 0x40>;
180			gpio-controller;
181			ngpios = <24>;
182
183			gpio-line-names =
184				"POWER", "SHUTDOWN", "FAN", "DC_DC",
185				"DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN",
186				"SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK",
187				"EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA",
188				"DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3",
189				"DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7";
190
191			interrupt-controller;
192			#interrupt-cells = <2>;
193			interrupts = <10>;
194			interrupt-parent = <&PIC1>;
195
196			/*
197			 * This is commented out while a standard binding
198			 * for i2c over gpio is defined.
199			 */
200			/*
201			i2c-video {
202				#address-cells = <1>;
203				#size-cells = <0>;
204			        compatible = "i2c-gpio";
205
206			        gpios = <&GPIO 15 0
207			                 &GPIO 14 0>;
208			        clock-frequency = <250000>;
209				no-clock-stretching;
210			        scl-is-open-drain;
211			        sda-is-open-drain;
212			        sda-enforce-dir;
213
214			        AVE: audio-video-encoder@70 {
215			                compatible = "nintendo,wii-audio-video-encoder";
216			                reg = <0x70>;
217			        };
218			};
219			*/
220		};
221
222		control@d800100 {
223			compatible = "nintendo,hollywood-control";
224			reg = <0x0d800100 0x300>;
225		};
226
227		disk@d806000 {
228			compatible = "nintendo,hollywood-di";
229			reg = <0x0d806000 0x40>;
230			interrupts = <2>;
231		};
232	};
233
234	gpio-leds {
235		compatible = "gpio-leds";
236
237		/* This is the blue LED in the disk drive slot */
238		drive-slot {
239			label = "wii:blue:drive_slot";
240			gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>;
241			panic-indicator;
242		};
243	};
244
245	gpio-keys {
246		compatible = "gpio-keys";
247
248		power {
249			label = "Power Button";
250			gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>;
251			linux,code = <KEY_POWER>;
252		};
253
254		eject {
255			label = "Eject Button";
256			gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>;
257			linux,code = <KEY_EJECTCD>;
258		};
259	};
260};
261
262