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>
177a09116cSAlbert Herranz
187a09116cSAlbert Herranz/*
197a09116cSAlbert Herranz * This is commented-out for now.
207a09116cSAlbert Herranz * Until a later patch is merged, the kernel can use only the first
217a09116cSAlbert Herranz * contiguous RAM range and will BUG() if the memreserve is outside
227a09116cSAlbert Herranz * that range.
237a09116cSAlbert Herranz */
247a09116cSAlbert Herranz/*/memreserve/ 0x10000000 0x0004000;*/	/* DSP RAM */
257a09116cSAlbert Herranz
267a09116cSAlbert Herranz/ {
277a09116cSAlbert Herranz	model = "nintendo,wii";
287a09116cSAlbert Herranz	compatible = "nintendo,wii";
297a09116cSAlbert Herranz	#address-cells = <1>;
307a09116cSAlbert Herranz	#size-cells = <1>;
317a09116cSAlbert Herranz
327a09116cSAlbert Herranz	chosen {
337a09116cSAlbert Herranz		bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal";
347a09116cSAlbert Herranz	};
357a09116cSAlbert Herranz
367a09116cSAlbert Herranz	memory {
377a09116cSAlbert Herranz		device_type = "memory";
387a09116cSAlbert Herranz		reg = <0x00000000 0x01800000	/* MEM1 24MB 1T-SRAM */
397a09116cSAlbert Herranz		       0x10000000 0x04000000>;	/* MEM2 64MB GDDR3 */
407a09116cSAlbert Herranz	};
417a09116cSAlbert Herranz
427a09116cSAlbert Herranz	cpus {
437a09116cSAlbert Herranz		#address-cells = <1>;
447a09116cSAlbert Herranz		#size-cells = <0>;
457a09116cSAlbert Herranz
467a09116cSAlbert Herranz		PowerPC,broadway@0 {
477a09116cSAlbert Herranz			device_type = "cpu";
487a09116cSAlbert Herranz			reg = <0>;
497a09116cSAlbert Herranz			clock-frequency = <729000000>; /* 729MHz */
507a09116cSAlbert Herranz			bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */
517a09116cSAlbert Herranz			timebase-frequency = <60750000>; /* 243MHz / 4 */
527a09116cSAlbert Herranz			i-cache-line-size = <32>;
537a09116cSAlbert Herranz			d-cache-line-size = <32>;
547a09116cSAlbert Herranz			i-cache-size = <32768>;
557a09116cSAlbert Herranz			d-cache-size = <32768>;
567a09116cSAlbert Herranz		};
577a09116cSAlbert Herranz	};
587a09116cSAlbert Herranz
597a09116cSAlbert Herranz	/* devices contained in the hollywood chipset */
607a09116cSAlbert Herranz	hollywood {
617a09116cSAlbert Herranz		#address-cells = <1>;
627a09116cSAlbert Herranz		#size-cells = <1>;
637a09116cSAlbert Herranz		compatible = "nintendo,hollywood";
647a09116cSAlbert Herranz                ranges = <0x0c000000 0x0c000000 0x01000000
657a09116cSAlbert Herranz			  0x0d000000 0x0d000000 0x00800000
667a09116cSAlbert Herranz			  0x0d800000 0x0d800000 0x00800000>;
677a09116cSAlbert Herranz		interrupt-parent = <&PIC0>;
687a09116cSAlbert Herranz
69600ecc19SMathieu Malaterre		video@c002000 {
707a09116cSAlbert Herranz			compatible = "nintendo,hollywood-vi",
717a09116cSAlbert Herranz					"nintendo,flipper-vi";
727a09116cSAlbert Herranz			reg = <0x0c002000 0x100>;
737a09116cSAlbert Herranz			interrupts = <8>;
747a09116cSAlbert Herranz		};
757a09116cSAlbert Herranz
76600ecc19SMathieu Malaterre		processor-interface@c003000 {
777a09116cSAlbert Herranz			compatible = "nintendo,hollywood-pi",
787a09116cSAlbert Herranz					"nintendo,flipper-pi";
797a09116cSAlbert Herranz			reg = <0x0c003000 0x100>;
807a09116cSAlbert Herranz
817a09116cSAlbert Herranz			PIC0: pic0 {
827a09116cSAlbert Herranz				#interrupt-cells = <1>;
837a09116cSAlbert Herranz				compatible = "nintendo,flipper-pic";
847a09116cSAlbert Herranz				interrupt-controller;
857a09116cSAlbert Herranz			};
867a09116cSAlbert Herranz		};
877a09116cSAlbert Herranz
88600ecc19SMathieu Malaterre		dsp@c005000 {
897a09116cSAlbert Herranz			#address-cells = <1>;
907a09116cSAlbert Herranz			#size-cells = <1>;
917a09116cSAlbert Herranz			compatible = "nintendo,hollywood-dsp",
927a09116cSAlbert Herranz					"nintendo,flipper-dsp";
937a09116cSAlbert Herranz			reg = <0x0c005000 0x200>;
947a09116cSAlbert Herranz			interrupts = <6>;
957a09116cSAlbert Herranz		};
967a09116cSAlbert Herranz
97600ecc19SMathieu Malaterre		gamepad-controller@d006400 {
987a09116cSAlbert Herranz			compatible = "nintendo,hollywood-si",
997a09116cSAlbert Herranz					"nintendo,flipper-si";
1007a09116cSAlbert Herranz			reg = <0x0d006400 0x100>;
1017a09116cSAlbert Herranz			interrupts = <3>;
1027a09116cSAlbert Herranz		};
1037a09116cSAlbert Herranz
104600ecc19SMathieu Malaterre		audio@c006c00 {
1057a09116cSAlbert Herranz			compatible = "nintendo,hollywood-ai",
1067a09116cSAlbert Herranz					"nintendo,flipper-ai";
1077a09116cSAlbert Herranz			reg = <0x0d006c00 0x20>;
1087a09116cSAlbert Herranz			interrupts = <6>;
1097a09116cSAlbert Herranz		};
1107a09116cSAlbert Herranz
1117a09116cSAlbert Herranz		/* External Interface bus */
112600ecc19SMathieu Malaterre		exi@d006800 {
1137a09116cSAlbert Herranz			compatible = "nintendo,hollywood-exi",
1147a09116cSAlbert Herranz					"nintendo,flipper-exi";
1157a09116cSAlbert Herranz			reg = <0x0d006800 0x40>;
1167a09116cSAlbert Herranz			virtual-reg = <0x0d006800>;
1177a09116cSAlbert Herranz			interrupts = <4>;
1187a09116cSAlbert Herranz		};
1197a09116cSAlbert Herranz
120600ecc19SMathieu Malaterre		usb@d040000 {
1217a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ehci",
1227a09116cSAlbert Herranz					"usb-ehci";
1237a09116cSAlbert Herranz			reg = <0x0d040000 0x100>;
1247a09116cSAlbert Herranz			interrupts = <4>;
1257a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1267a09116cSAlbert Herranz		};
1277a09116cSAlbert Herranz
128600ecc19SMathieu Malaterre		usb@d050000 {
1297a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ohci",
1307a09116cSAlbert Herranz					"usb-ohci";
1317a09116cSAlbert Herranz			reg = <0x0d050000 0x100>;
1327a09116cSAlbert Herranz			interrupts = <5>;
1337a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1347a09116cSAlbert Herranz		};
1357a09116cSAlbert Herranz
136600ecc19SMathieu Malaterre		usb@d060000 {
1377a09116cSAlbert Herranz			compatible = "nintendo,hollywood-usb-ohci",
1387a09116cSAlbert Herranz					"usb-ohci";
1397a09116cSAlbert Herranz			reg = <0x0d060000 0x100>;
1407a09116cSAlbert Herranz			interrupts = <6>;
1417a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1427a09116cSAlbert Herranz		};
1437a09116cSAlbert Herranz
144600ecc19SMathieu Malaterre		sd@d070000 {
1457a09116cSAlbert Herranz			compatible = "nintendo,hollywood-sdhci",
1467a09116cSAlbert Herranz					"sdhci";
1477a09116cSAlbert Herranz			reg = <0x0d070000 0x200>;
1487a09116cSAlbert Herranz			interrupts = <7>;
1497a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1507a09116cSAlbert Herranz		};
1517a09116cSAlbert Herranz
152600ecc19SMathieu Malaterre		sdio@d080000 {
1537a09116cSAlbert Herranz			compatible = "nintendo,hollywood-sdhci",
1547a09116cSAlbert Herranz					"sdhci";
1557a09116cSAlbert Herranz			reg = <0x0d080000 0x200>;
1567a09116cSAlbert Herranz			interrupts = <8>;
1577a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1587a09116cSAlbert Herranz		};
1597a09116cSAlbert Herranz
160600ecc19SMathieu Malaterre		ipc@d000000 {
1617a09116cSAlbert Herranz			compatible = "nintendo,hollywood-ipc";
1627a09116cSAlbert Herranz			reg = <0x0d000000 0x10>;
1637a09116cSAlbert Herranz			interrupts = <30>;
1647a09116cSAlbert Herranz			interrupt-parent = <&PIC1>;
1657a09116cSAlbert Herranz		};
1667a09116cSAlbert Herranz
167600ecc19SMathieu Malaterre		PIC1: pic1@d800030 {
1687a09116cSAlbert Herranz			#interrupt-cells = <1>;
1697a09116cSAlbert Herranz			compatible = "nintendo,hollywood-pic";
1707a09116cSAlbert Herranz			reg = <0x0d800030 0x10>;
1717a09116cSAlbert Herranz			interrupt-controller;
1727a09116cSAlbert Herranz			interrupts = <14>;
1737a09116cSAlbert Herranz		};
1747a09116cSAlbert Herranz
175600ecc19SMathieu Malaterre		GPIO: gpio@d8000c0 {
1767a09116cSAlbert Herranz			#gpio-cells = <2>;
1777a09116cSAlbert Herranz			compatible = "nintendo,hollywood-gpio";
1787a09116cSAlbert Herranz			reg = <0x0d8000c0 0x40>;
1797a09116cSAlbert Herranz			gpio-controller;
1809693d570SJonathan Neuschäfer			ngpios = <24>;
1817a09116cSAlbert Herranz
18280873a0bSJonathan Neuschäfer			gpio-line-names =
18380873a0bSJonathan Neuschäfer				"POWER", "SHUTDOWN", "FAN", "DC_DC",
18480873a0bSJonathan Neuschäfer				"DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN",
18580873a0bSJonathan Neuschäfer				"SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK",
18680873a0bSJonathan Neuschäfer				"EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA",
18780873a0bSJonathan Neuschäfer				"DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3",
18880873a0bSJonathan Neuschäfer				"DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7";
18980873a0bSJonathan Neuschäfer
190f4ddc19aSJonathan Neuschäfer			interrupt-controller;
191f4ddc19aSJonathan Neuschäfer			#interrupt-cells = <2>;
192f4ddc19aSJonathan Neuschäfer			interrupts = <10>;
193f4ddc19aSJonathan Neuschäfer			interrupt-parent = <&PIC1>;
194f4ddc19aSJonathan Neuschäfer
1957a09116cSAlbert Herranz			/*
1967a09116cSAlbert Herranz			 * This is commented out while a standard binding
1977a09116cSAlbert Herranz			 * for i2c over gpio is defined.
1987a09116cSAlbert Herranz			 */
1997a09116cSAlbert Herranz			/*
2007a09116cSAlbert Herranz			i2c-video {
2017a09116cSAlbert Herranz				#address-cells = <1>;
2027a09116cSAlbert Herranz				#size-cells = <0>;
2037a09116cSAlbert Herranz			        compatible = "i2c-gpio";
2047a09116cSAlbert Herranz
2057a09116cSAlbert Herranz			        gpios = <&GPIO 15 0
2067a09116cSAlbert Herranz			                 &GPIO 14 0>;
2077a09116cSAlbert Herranz			        clock-frequency = <250000>;
2087a09116cSAlbert Herranz				no-clock-stretching;
2097a09116cSAlbert Herranz			        scl-is-open-drain;
2107a09116cSAlbert Herranz			        sda-is-open-drain;
2117a09116cSAlbert Herranz			        sda-enforce-dir;
2127a09116cSAlbert Herranz
2137a09116cSAlbert Herranz			        AVE: audio-video-encoder@70 {
2147a09116cSAlbert Herranz			                compatible = "nintendo,wii-audio-video-encoder";
2157a09116cSAlbert Herranz			                reg = <0x70>;
2167a09116cSAlbert Herranz			        };
2177a09116cSAlbert Herranz			};
2187a09116cSAlbert Herranz			*/
2197a09116cSAlbert Herranz		};
2207a09116cSAlbert Herranz
221600ecc19SMathieu Malaterre		control@d800100 {
2227a09116cSAlbert Herranz			compatible = "nintendo,hollywood-control";
2237a09116cSAlbert Herranz			reg = <0x0d800100 0x300>;
2247a09116cSAlbert Herranz		};
2257a09116cSAlbert Herranz
226600ecc19SMathieu Malaterre		disk@d806000 {
2277a09116cSAlbert Herranz			compatible = "nintendo,hollywood-di";
2287a09116cSAlbert Herranz			reg = <0x0d806000 0x40>;
2297a09116cSAlbert Herranz			interrupts = <2>;
2307a09116cSAlbert Herranz		};
2317a09116cSAlbert Herranz	};
232041413b8SJonathan Neuschäfer
233041413b8SJonathan Neuschäfer	gpio-leds {
234041413b8SJonathan Neuschäfer		compatible = "gpio-leds";
235041413b8SJonathan Neuschäfer
236041413b8SJonathan Neuschäfer		/* This is the blue LED in the disk drive slot */
237041413b8SJonathan Neuschäfer		drive-slot {
238041413b8SJonathan Neuschäfer			label = "wii:blue:drive_slot";
239041413b8SJonathan Neuschäfer			gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>;
240041413b8SJonathan Neuschäfer			panic-indicator;
241041413b8SJonathan Neuschäfer		};
242041413b8SJonathan Neuschäfer	};
2437a09116cSAlbert Herranz};
2447a09116cSAlbert Herranz
245