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/;
167a09116cSAlbert Herranz
177a09116cSAlbert Herranz/*
187a09116cSAlbert Herranz * This is commented-out for now.
197a09116cSAlbert Herranz * Until a later patch is merged, the kernel can use only the first
207a09116cSAlbert Herranz * contiguous RAM range and will BUG() if the memreserve is outside
217a09116cSAlbert Herranz * that range.
227a09116cSAlbert Herranz */
237a09116cSAlbert Herranz/*/memreserve/ 0x10000000 0x0004000;*/	/* DSP RAM */
247a09116cSAlbert Herranz
257a09116cSAlbert Herranz/ {
267a09116cSAlbert Herranz	model = "nintendo,wii";
277a09116cSAlbert Herranz	compatible = "nintendo,wii";
287a09116cSAlbert Herranz	#address-cells = <1>;
297a09116cSAlbert Herranz	#size-cells = <1>;
307a09116cSAlbert Herranz
317a09116cSAlbert Herranz	chosen {
327a09116cSAlbert Herranz		bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal";
337a09116cSAlbert Herranz	};
347a09116cSAlbert Herranz
357a09116cSAlbert Herranz	memory {
367a09116cSAlbert Herranz		device_type = "memory";
377a09116cSAlbert Herranz		reg = <0x00000000 0x01800000	/* MEM1 24MB 1T-SRAM */
387a09116cSAlbert Herranz		       0x10000000 0x04000000>;	/* MEM2 64MB GDDR3 */
397a09116cSAlbert Herranz	};
407a09116cSAlbert Herranz
417a09116cSAlbert Herranz	cpus {
427a09116cSAlbert Herranz		#address-cells = <1>;
437a09116cSAlbert Herranz		#size-cells = <0>;
447a09116cSAlbert Herranz
457a09116cSAlbert Herranz		PowerPC,broadway@0 {
467a09116cSAlbert Herranz			device_type = "cpu";
477a09116cSAlbert Herranz			reg = <0>;
487a09116cSAlbert Herranz			clock-frequency = <729000000>; /* 729MHz */
497a09116cSAlbert Herranz			bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */
507a09116cSAlbert Herranz			timebase-frequency = <60750000>; /* 243MHz / 4 */
517a09116cSAlbert Herranz			i-cache-line-size = <32>;
527a09116cSAlbert Herranz			d-cache-line-size = <32>;
537a09116cSAlbert Herranz			i-cache-size = <32768>;
547a09116cSAlbert Herranz			d-cache-size = <32768>;
557a09116cSAlbert Herranz		};
567a09116cSAlbert Herranz	};
577a09116cSAlbert Herranz
587a09116cSAlbert Herranz	/* devices contained in the hollywood chipset */
597a09116cSAlbert Herranz	hollywood {
607a09116cSAlbert Herranz		#address-cells = <1>;
617a09116cSAlbert Herranz		#size-cells = <1>;
627a09116cSAlbert Herranz		compatible = "nintendo,hollywood";
637a09116cSAlbert Herranz                ranges = <0x0c000000 0x0c000000 0x01000000
647a09116cSAlbert Herranz			  0x0d000000 0x0d000000 0x00800000
657a09116cSAlbert Herranz			  0x0d800000 0x0d800000 0x00800000>;
667a09116cSAlbert Herranz		interrupt-parent = <&PIC0>;
677a09116cSAlbert Herranz
68600ecc19SMathieu Malaterre		video@c002000 {
697a09116cSAlbert Herranz			compatible = "nintendo,hollywood-vi",
707a09116cSAlbert Herranz					"nintendo,flipper-vi";
717a09116cSAlbert Herranz			reg = <0x0c002000 0x100>;
727a09116cSAlbert Herranz			interrupts = <8>;
737a09116cSAlbert Herranz		};
747a09116cSAlbert Herranz
75600ecc19SMathieu Malaterre		processor-interface@c003000 {
767a09116cSAlbert Herranz			compatible = "nintendo,hollywood-pi",
777a09116cSAlbert Herranz					"nintendo,flipper-pi";
787a09116cSAlbert Herranz			reg = <0x0c003000 0x100>;
797a09116cSAlbert Herranz
807a09116cSAlbert Herranz			PIC0: pic0 {
817a09116cSAlbert Herranz				#interrupt-cells = <1>;
827a09116cSAlbert Herranz				compatible = "nintendo,flipper-pic";
837a09116cSAlbert Herranz				interrupt-controller;
847a09116cSAlbert Herranz			};
857a09116cSAlbert Herranz		};
867a09116cSAlbert Herranz
87600ecc19SMathieu Malaterre		dsp@c005000 {
887a09116cSAlbert Herranz			#address-cells = <1>;
897a09116cSAlbert Herranz			#size-cells = <1>;
907a09116cSAlbert Herranz			compatible = "nintendo,hollywood-dsp",
917a09116cSAlbert Herranz					"nintendo,flipper-dsp";
927a09116cSAlbert Herranz			reg = <0x0c005000 0x200>;
937a09116cSAlbert Herranz			interrupts = <6>;
947a09116cSAlbert Herranz		};
957a09116cSAlbert Herranz
96600ecc19SMathieu Malaterre		gamepad-controller@d006400 {
977a09116cSAlbert Herranz			compatible = "nintendo,hollywood-si",
987a09116cSAlbert Herranz					"nintendo,flipper-si";
997a09116cSAlbert Herranz			reg = <0x0d006400 0x100>;
1007a09116cSAlbert Herranz			interrupts = <3>;
1017a09116cSAlbert Herranz		};
1027a09116cSAlbert Herranz
103600ecc19SMathieu Malaterre		audio@c006c00 {
1047a09116cSAlbert Herranz			compatible = "nintendo,hollywood-ai",
1057a09116cSAlbert Herranz					"nintendo,flipper-ai";
1067a09116cSAlbert Herranz			reg = <0x0d006c00 0x20>;
1077a09116cSAlbert Herranz			interrupts = <6>;
1087a09116cSAlbert Herranz		};
1097a09116cSAlbert Herranz
1107a09116cSAlbert Herranz		/* External Interface bus */
111600ecc19SMathieu Malaterre		exi@d006800 {
1127a09116cSAlbert Herranz			compatible = "nintendo,hollywood-exi",
1137a09116cSAlbert Herranz					"nintendo,flipper-exi";
1147a09116cSAlbert Herranz			reg = <0x0d006800 0x40>;
1157a09116cSAlbert Herranz			virtual-reg = <0x0d006800>;
1167a09116cSAlbert Herranz			interrupts = <4>;
1177a09116cSAlbert Herranz		};
1187a09116cSAlbert Herranz
119600ecc19SMathieu Malaterre		usb@d040000 {
1207a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ehci",
1217a09116cSAlbert Herranz					"usb-ehci";
1227a09116cSAlbert Herranz			reg = <0x0d040000 0x100>;
1237a09116cSAlbert Herranz			interrupts = <4>;
1247a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1257a09116cSAlbert Herranz		};
1267a09116cSAlbert Herranz
127600ecc19SMathieu Malaterre		usb@d050000 {
1287a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ohci",
1297a09116cSAlbert Herranz					"usb-ohci";
1307a09116cSAlbert Herranz			reg = <0x0d050000 0x100>;
1317a09116cSAlbert Herranz			interrupts = <5>;
1327a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1337a09116cSAlbert Herranz		};
1347a09116cSAlbert Herranz
135600ecc19SMathieu Malaterre		usb@d060000 {
1367a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ohci",
1377a09116cSAlbert Herranz					"usb-ohci";
1387a09116cSAlbert Herranz			reg = <0x0d060000 0x100>;
1397a09116cSAlbert Herranz			interrupts = <6>;
1407a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1417a09116cSAlbert Herranz		};
1427a09116cSAlbert Herranz
143600ecc19SMathieu Malaterre		sd@d070000 {
1447a09116cSAlbert Herranz			compatible = "nintendo,hollywood-sdhci",
1457a09116cSAlbert Herranz					"sdhci";
1467a09116cSAlbert Herranz			reg = <0x0d070000 0x200>;
1477a09116cSAlbert Herranz			interrupts = <7>;
1487a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1497a09116cSAlbert Herranz		};
1507a09116cSAlbert Herranz
151600ecc19SMathieu Malaterre		sdio@d080000 {
1527a09116cSAlbert Herranz			compatible = "nintendo,hollywood-sdhci",
1537a09116cSAlbert Herranz					"sdhci";
1547a09116cSAlbert Herranz			reg = <0x0d080000 0x200>;
1557a09116cSAlbert Herranz			interrupts = <8>;
1567a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1577a09116cSAlbert Herranz		};
1587a09116cSAlbert Herranz
159600ecc19SMathieu Malaterre		ipc@d000000 {
1607a09116cSAlbert Herranz			compatible = "nintendo,hollywood-ipc";
1617a09116cSAlbert Herranz			reg = <0x0d000000 0x10>;
1627a09116cSAlbert Herranz			interrupts = <30>;
1637a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1647a09116cSAlbert Herranz		};
1657a09116cSAlbert Herranz
166600ecc19SMathieu Malaterre		PIC1: pic1@d800030 {
1677a09116cSAlbert Herranz			#interrupt-cells = <1>;
1687a09116cSAlbert Herranz			compatible = "nintendo,hollywood-pic";
1697a09116cSAlbert Herranz			reg = <0x0d800030 0x10>;
1707a09116cSAlbert Herranz			interrupt-controller;
1717a09116cSAlbert Herranz			interrupts = <14>;
1727a09116cSAlbert Herranz		};
1737a09116cSAlbert Herranz
174600ecc19SMathieu Malaterre		GPIO: gpio@d8000c0 {
1757a09116cSAlbert Herranz			#gpio-cells = <2>;
1767a09116cSAlbert Herranz			compatible = "nintendo,hollywood-gpio";
1777a09116cSAlbert Herranz			reg = <0x0d8000c0 0x40>;
1787a09116cSAlbert Herranz			gpio-controller;
1799693d570SJonathan Neuschäfer			ngpios = <24>;
1807a09116cSAlbert Herranz
18180873a0bSJonathan Neuschäfer			gpio-line-names =
18280873a0bSJonathan Neuschäfer				"POWER", "SHUTDOWN", "FAN", "DC_DC",
18380873a0bSJonathan Neuschäfer				"DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN",
18480873a0bSJonathan Neuschäfer				"SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK",
18580873a0bSJonathan Neuschäfer				"EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA",
18680873a0bSJonathan Neuschäfer				"DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3",
18780873a0bSJonathan Neuschäfer				"DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7";
18880873a0bSJonathan Neuschäfer
1897a09116cSAlbert Herranz			/*
1907a09116cSAlbert Herranz			 * This is commented out while a standard binding
1917a09116cSAlbert Herranz			 * for i2c over gpio is defined.
1927a09116cSAlbert Herranz			 */
1937a09116cSAlbert Herranz			/*
1947a09116cSAlbert Herranz			i2c-video {
1957a09116cSAlbert Herranz				#address-cells = <1>;
1967a09116cSAlbert Herranz				#size-cells = <0>;
1977a09116cSAlbert Herranz			        compatible = "i2c-gpio";
1987a09116cSAlbert Herranz
1997a09116cSAlbert Herranz			        gpios = <&GPIO 15 0
2007a09116cSAlbert Herranz			                 &GPIO 14 0>;
2017a09116cSAlbert Herranz			        clock-frequency = <250000>;
2027a09116cSAlbert Herranz				no-clock-stretching;
2037a09116cSAlbert Herranz			        scl-is-open-drain;
2047a09116cSAlbert Herranz			        sda-is-open-drain;
2057a09116cSAlbert Herranz			        sda-enforce-dir;
2067a09116cSAlbert Herranz
2077a09116cSAlbert Herranz			        AVE: audio-video-encoder@70 {
2087a09116cSAlbert Herranz			                compatible = "nintendo,wii-audio-video-encoder";
2097a09116cSAlbert Herranz			                reg = <0x70>;
2107a09116cSAlbert Herranz			        };
2117a09116cSAlbert Herranz			};
2127a09116cSAlbert Herranz			*/
2137a09116cSAlbert Herranz		};
2147a09116cSAlbert Herranz
215600ecc19SMathieu Malaterre		control@d800100 {
2167a09116cSAlbert Herranz			compatible = "nintendo,hollywood-control";
2177a09116cSAlbert Herranz			reg = <0x0d800100 0x300>;
2187a09116cSAlbert Herranz		};
2197a09116cSAlbert Herranz
220600ecc19SMathieu Malaterre		disk@d806000 {
2217a09116cSAlbert Herranz			compatible = "nintendo,hollywood-di";
2227a09116cSAlbert Herranz			reg = <0x0d806000 0x40>;
2237a09116cSAlbert Herranz			interrupts = <2>;
2247a09116cSAlbert Herranz		};
2257a09116cSAlbert Herranz	};
2267a09116cSAlbert Herranz};
2277a09116cSAlbert Herranz
228