17a09116cSAlbert Herranz/*
27a09116cSAlbert Herranz * arch/powerpc/boot/dts/wii.dts
37a09116cSAlbert Herranz *
47a09116cSAlbert Herranz * Nintendo Wii platform device tree source
57a09116cSAlbert Herranz * Copyright (C) 2008-2009 The GameCube Linux Team
67a09116cSAlbert Herranz * Copyright (C) 2008,2009 Albert Herranz
77a09116cSAlbert Herranz *
87a09116cSAlbert Herranz * This program is free software; you can redistribute it and/or
97a09116cSAlbert Herranz * modify it under the terms of the GNU General Public License
107a09116cSAlbert Herranz * as published by the Free Software Foundation; either version 2
117a09116cSAlbert Herranz * of the License, or (at your option) any later version.
127a09116cSAlbert Herranz *
137a09116cSAlbert Herranz */
147a09116cSAlbert Herranz
157a09116cSAlbert Herranz/dts-v1/;
16041413b8SJonathan Neuschäfer#include <dt-bindings/gpio/gpio.h>
178de7547eSJonathan Neuschäfer#include <dt-bindings/input/input.h>
187a09116cSAlbert Herranz
197a09116cSAlbert Herranz/*
207a09116cSAlbert Herranz * This is commented-out for now.
217a09116cSAlbert Herranz * Until a later patch is merged, the kernel can use only the first
227a09116cSAlbert Herranz * contiguous RAM range and will BUG() if the memreserve is outside
237a09116cSAlbert Herranz * that range.
247a09116cSAlbert Herranz */
257a09116cSAlbert Herranz/*/memreserve/ 0x10000000 0x0004000;*/	/* DSP RAM */
267a09116cSAlbert Herranz
277a09116cSAlbert Herranz/ {
287a09116cSAlbert Herranz	model = "nintendo,wii";
297a09116cSAlbert Herranz	compatible = "nintendo,wii";
307a09116cSAlbert Herranz	#address-cells = <1>;
317a09116cSAlbert Herranz	#size-cells = <1>;
327a09116cSAlbert Herranz
337a09116cSAlbert Herranz	chosen {
347a09116cSAlbert Herranz		bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal";
357a09116cSAlbert Herranz	};
367a09116cSAlbert Herranz
377a09116cSAlbert Herranz	memory {
387a09116cSAlbert Herranz		device_type = "memory";
397a09116cSAlbert Herranz		reg = <0x00000000 0x01800000	/* MEM1 24MB 1T-SRAM */
407a09116cSAlbert Herranz		       0x10000000 0x04000000>;	/* MEM2 64MB GDDR3 */
417a09116cSAlbert Herranz	};
427a09116cSAlbert Herranz
437a09116cSAlbert Herranz	cpus {
447a09116cSAlbert Herranz		#address-cells = <1>;
457a09116cSAlbert Herranz		#size-cells = <0>;
467a09116cSAlbert Herranz
477a09116cSAlbert Herranz		PowerPC,broadway@0 {
487a09116cSAlbert Herranz			device_type = "cpu";
497a09116cSAlbert Herranz			reg = <0>;
507a09116cSAlbert Herranz			clock-frequency = <729000000>; /* 729MHz */
517a09116cSAlbert Herranz			bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */
527a09116cSAlbert Herranz			timebase-frequency = <60750000>; /* 243MHz / 4 */
537a09116cSAlbert Herranz			i-cache-line-size = <32>;
547a09116cSAlbert Herranz			d-cache-line-size = <32>;
557a09116cSAlbert Herranz			i-cache-size = <32768>;
567a09116cSAlbert Herranz			d-cache-size = <32768>;
577a09116cSAlbert Herranz		};
587a09116cSAlbert Herranz	};
597a09116cSAlbert Herranz
607a09116cSAlbert Herranz	/* devices contained in the hollywood chipset */
617a09116cSAlbert Herranz	hollywood {
627a09116cSAlbert Herranz		#address-cells = <1>;
637a09116cSAlbert Herranz		#size-cells = <1>;
647a09116cSAlbert Herranz		compatible = "nintendo,hollywood";
657a09116cSAlbert Herranz                ranges = <0x0c000000 0x0c000000 0x01000000
667a09116cSAlbert Herranz			  0x0d000000 0x0d000000 0x00800000
677a09116cSAlbert Herranz			  0x0d800000 0x0d800000 0x00800000>;
687a09116cSAlbert Herranz		interrupt-parent = <&PIC0>;
697a09116cSAlbert Herranz
70600ecc19SMathieu Malaterre		video@c002000 {
717a09116cSAlbert Herranz			compatible = "nintendo,hollywood-vi",
727a09116cSAlbert Herranz					"nintendo,flipper-vi";
737a09116cSAlbert Herranz			reg = <0x0c002000 0x100>;
747a09116cSAlbert Herranz			interrupts = <8>;
757a09116cSAlbert Herranz		};
767a09116cSAlbert Herranz
77600ecc19SMathieu Malaterre		processor-interface@c003000 {
787a09116cSAlbert Herranz			compatible = "nintendo,hollywood-pi",
797a09116cSAlbert Herranz					"nintendo,flipper-pi";
807a09116cSAlbert Herranz			reg = <0x0c003000 0x100>;
817a09116cSAlbert Herranz
827a09116cSAlbert Herranz			PIC0: pic0 {
837a09116cSAlbert Herranz				#interrupt-cells = <1>;
847a09116cSAlbert Herranz				compatible = "nintendo,flipper-pic";
857a09116cSAlbert Herranz				interrupt-controller;
867a09116cSAlbert Herranz			};
877a09116cSAlbert Herranz		};
887a09116cSAlbert Herranz
89600ecc19SMathieu Malaterre		dsp@c005000 {
907a09116cSAlbert Herranz			#address-cells = <1>;
917a09116cSAlbert Herranz			#size-cells = <1>;
927a09116cSAlbert Herranz			compatible = "nintendo,hollywood-dsp",
937a09116cSAlbert Herranz					"nintendo,flipper-dsp";
947a09116cSAlbert Herranz			reg = <0x0c005000 0x200>;
957a09116cSAlbert Herranz			interrupts = <6>;
967a09116cSAlbert Herranz		};
977a09116cSAlbert Herranz
98600ecc19SMathieu Malaterre		gamepad-controller@d006400 {
997a09116cSAlbert Herranz			compatible = "nintendo,hollywood-si",
1007a09116cSAlbert Herranz					"nintendo,flipper-si";
1017a09116cSAlbert Herranz			reg = <0x0d006400 0x100>;
1027a09116cSAlbert Herranz			interrupts = <3>;
1037a09116cSAlbert Herranz		};
1047a09116cSAlbert Herranz
105600ecc19SMathieu Malaterre		audio@c006c00 {
1067a09116cSAlbert Herranz			compatible = "nintendo,hollywood-ai",
1077a09116cSAlbert Herranz					"nintendo,flipper-ai";
1087a09116cSAlbert Herranz			reg = <0x0d006c00 0x20>;
1097a09116cSAlbert Herranz			interrupts = <6>;
1107a09116cSAlbert Herranz		};
1117a09116cSAlbert Herranz
1127a09116cSAlbert Herranz		/* External Interface bus */
113600ecc19SMathieu Malaterre		exi@d006800 {
1147a09116cSAlbert Herranz			compatible = "nintendo,hollywood-exi",
1157a09116cSAlbert Herranz					"nintendo,flipper-exi";
1167a09116cSAlbert Herranz			reg = <0x0d006800 0x40>;
1177a09116cSAlbert Herranz			virtual-reg = <0x0d006800>;
1187a09116cSAlbert Herranz			interrupts = <4>;
1197a09116cSAlbert Herranz		};
1207a09116cSAlbert Herranz
121600ecc19SMathieu Malaterre		usb@d040000 {
1227a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ehci",
1237a09116cSAlbert Herranz					"usb-ehci";
1247a09116cSAlbert Herranz			reg = <0x0d040000 0x100>;
1257a09116cSAlbert Herranz			interrupts = <4>;
1267a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1277a09116cSAlbert Herranz		};
1287a09116cSAlbert Herranz
129600ecc19SMathieu Malaterre		usb@d050000 {
1307a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ohci",
1317a09116cSAlbert Herranz					"usb-ohci";
1327a09116cSAlbert Herranz			reg = <0x0d050000 0x100>;
1337a09116cSAlbert Herranz			interrupts = <5>;
1347a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1357a09116cSAlbert Herranz		};
1367a09116cSAlbert Herranz
137600ecc19SMathieu Malaterre		usb@d060000 {
1387a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ohci",
1397a09116cSAlbert Herranz					"usb-ohci";
1407a09116cSAlbert Herranz			reg = <0x0d060000 0x100>;
1417a09116cSAlbert Herranz			interrupts = <6>;
1427a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1437a09116cSAlbert Herranz		};
1447a09116cSAlbert Herranz
145600ecc19SMathieu Malaterre		sd@d070000 {
1467a09116cSAlbert Herranz			compatible = "nintendo,hollywood-sdhci",
1477a09116cSAlbert Herranz					"sdhci";
1487a09116cSAlbert Herranz			reg = <0x0d070000 0x200>;
1497a09116cSAlbert Herranz			interrupts = <7>;
1507a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1517a09116cSAlbert Herranz		};
1527a09116cSAlbert Herranz
153600ecc19SMathieu Malaterre		sdio@d080000 {
1547a09116cSAlbert Herranz			compatible = "nintendo,hollywood-sdhci",
1557a09116cSAlbert Herranz					"sdhci";
1567a09116cSAlbert Herranz			reg = <0x0d080000 0x200>;
1577a09116cSAlbert Herranz			interrupts = <8>;
1587a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1597a09116cSAlbert Herranz		};
1607a09116cSAlbert Herranz
161600ecc19SMathieu Malaterre		ipc@d000000 {
1627a09116cSAlbert Herranz			compatible = "nintendo,hollywood-ipc";
1637a09116cSAlbert Herranz			reg = <0x0d000000 0x10>;
1647a09116cSAlbert Herranz			interrupts = <30>;
1657a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1667a09116cSAlbert Herranz		};
1677a09116cSAlbert Herranz
168600ecc19SMathieu Malaterre		PIC1: pic1@d800030 {
1697a09116cSAlbert Herranz			#interrupt-cells = <1>;
1707a09116cSAlbert Herranz			compatible = "nintendo,hollywood-pic";
1717a09116cSAlbert Herranz			reg = <0x0d800030 0x10>;
1727a09116cSAlbert Herranz			interrupt-controller;
1737a09116cSAlbert Herranz			interrupts = <14>;
1747a09116cSAlbert Herranz		};
1757a09116cSAlbert Herranz
176600ecc19SMathieu Malaterre		GPIO: gpio@d8000c0 {
1777a09116cSAlbert Herranz			#gpio-cells = <2>;
1787a09116cSAlbert Herranz			compatible = "nintendo,hollywood-gpio";
1797a09116cSAlbert Herranz			reg = <0x0d8000c0 0x40>;
1807a09116cSAlbert Herranz			gpio-controller;
1819693d570SJonathan Neuschäfer			ngpios = <24>;
1827a09116cSAlbert Herranz
18380873a0bSJonathan Neuschäfer			gpio-line-names =
18480873a0bSJonathan Neuschäfer				"POWER", "SHUTDOWN", "FAN", "DC_DC",
18580873a0bSJonathan Neuschäfer				"DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN",
18680873a0bSJonathan Neuschäfer				"SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK",
18780873a0bSJonathan Neuschäfer				"EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA",
18880873a0bSJonathan Neuschäfer				"DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3",
18980873a0bSJonathan Neuschäfer				"DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7";
19080873a0bSJonathan Neuschäfer
191f4ddc19aSJonathan Neuschäfer			interrupt-controller;
192f4ddc19aSJonathan Neuschäfer			#interrupt-cells = <2>;
193f4ddc19aSJonathan Neuschäfer			interrupts = <10>;
194f4ddc19aSJonathan Neuschäfer			interrupt-parent = <&PIC1>;
195f4ddc19aSJonathan Neuschäfer
1967a09116cSAlbert Herranz			/*
1977a09116cSAlbert Herranz			 * This is commented out while a standard binding
1987a09116cSAlbert Herranz			 * for i2c over gpio is defined.
1997a09116cSAlbert Herranz			 */
2007a09116cSAlbert Herranz			/*
2017a09116cSAlbert Herranz			i2c-video {
2027a09116cSAlbert Herranz				#address-cells = <1>;
2037a09116cSAlbert Herranz				#size-cells = <0>;
2047a09116cSAlbert Herranz			        compatible = "i2c-gpio";
2057a09116cSAlbert Herranz
2067a09116cSAlbert Herranz			        gpios = <&GPIO 15 0
2077a09116cSAlbert Herranz			                 &GPIO 14 0>;
2087a09116cSAlbert Herranz			        clock-frequency = <250000>;
2097a09116cSAlbert Herranz				no-clock-stretching;
2107a09116cSAlbert Herranz			        scl-is-open-drain;
2117a09116cSAlbert Herranz			        sda-is-open-drain;
2127a09116cSAlbert Herranz			        sda-enforce-dir;
2137a09116cSAlbert Herranz
2147a09116cSAlbert Herranz			        AVE: audio-video-encoder@70 {
2157a09116cSAlbert Herranz			                compatible = "nintendo,wii-audio-video-encoder";
2167a09116cSAlbert Herranz			                reg = <0x70>;
2177a09116cSAlbert Herranz			        };
2187a09116cSAlbert Herranz			};
2197a09116cSAlbert Herranz			*/
2207a09116cSAlbert Herranz		};
2217a09116cSAlbert Herranz
222600ecc19SMathieu Malaterre		control@d800100 {
2237a09116cSAlbert Herranz			compatible = "nintendo,hollywood-control";
2247a09116cSAlbert Herranz			reg = <0x0d800100 0x300>;
2257a09116cSAlbert Herranz		};
2267a09116cSAlbert Herranz
227600ecc19SMathieu Malaterre		disk@d806000 {
2287a09116cSAlbert Herranz			compatible = "nintendo,hollywood-di";
2297a09116cSAlbert Herranz			reg = <0x0d806000 0x40>;
2307a09116cSAlbert Herranz			interrupts = <2>;
2317a09116cSAlbert Herranz		};
2327a09116cSAlbert Herranz	};
233041413b8SJonathan Neuschäfer
234041413b8SJonathan Neuschäfer	gpio-leds {
235041413b8SJonathan Neuschäfer		compatible = "gpio-leds";
236041413b8SJonathan Neuschäfer
237041413b8SJonathan Neuschäfer		/* This is the blue LED in the disk drive slot */
238041413b8SJonathan Neuschäfer		drive-slot {
239041413b8SJonathan Neuschäfer			label = "wii:blue:drive_slot";
240041413b8SJonathan Neuschäfer			gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>;
241041413b8SJonathan Neuschäfer			panic-indicator;
242041413b8SJonathan Neuschäfer		};
243041413b8SJonathan Neuschäfer	};
2448de7547eSJonathan Neuschäfer
2458de7547eSJonathan Neuschäfer	gpio-keys {
2468de7547eSJonathan Neuschäfer		compatible = "gpio-keys";
2478de7547eSJonathan Neuschäfer
2488de7547eSJonathan Neuschäfer		power {
2498de7547eSJonathan Neuschäfer			label = "Power Button";
2508de7547eSJonathan Neuschäfer			gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>;
2518de7547eSJonathan Neuschäfer			linux,code = <KEY_POWER>;
2528de7547eSJonathan Neuschäfer		};
2538de7547eSJonathan Neuschäfer
2548de7547eSJonathan Neuschäfer		eject {
2558de7547eSJonathan Neuschäfer			label = "Eject Button";
2568de7547eSJonathan Neuschäfer			gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>;
2578de7547eSJonathan Neuschäfer			linux,code = <KEY_EJECTCD>;
2588de7547eSJonathan Neuschäfer		};
2598de7547eSJonathan Neuschäfer	};
2607a09116cSAlbert Herranz};
2617a09116cSAlbert Herranz
262