Add a device tree source file for the Nintendo Wii video game console.

Signed-off-by: Albert Herranz <albert_herr...@yahoo.es>
---
 arch/powerpc/boot/dts/wii.dts |  244 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 244 insertions(+), 0 deletions(-)
 create mode 100644 arch/powerpc/boot/dts/wii.dts

diff --git a/arch/powerpc/boot/dts/wii.dts b/arch/powerpc/boot/dts/wii.dts
new file mode 100644
index 0000000..a30a804
--- /dev/null
+++ b/arch/powerpc/boot/dts/wii.dts
@@ -0,0 +1,244 @@
+/*
+ * arch/powerpc/boot/dts/wii.dts
+ *
+ * Nintendo Wii platform device tree source
+ * Copyright (C) 2008-2009 The GameCube Linux Team
+ * Copyright (C) 2008,2009 Albert Herranz
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ */
+
+/dts-v1/;
+
+/memreserve/ 0x01800000 0xe800000;     /* memory hole (includes I/O area) */
+/memreserve/ 0x10000000 0x0004000;     /* DSP RAM */
+
+/ {
+       model = "NintendoWii";
+       compatible = "nintendo,wii";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       chosen {
+               /* root filesystem on 2nd partition of SD card */
+               bootargs = "nobats root=/dev/mmcblk0p2 rootwait udbg-immortal";
+               linux,stdout-path = &USBGECKO0;
+       };
+
+       aliases {
+               ugecon = &USBGECKO0;
+               hw_gpio = &gpio1;
+       };
+
+       /*
+        * The Nintendo Wii has two discontiguous RAM memory areas called
+        * MEM1 and MEM2.
+        * MEM1 starts at 0x00000000 and contains 24MB of 1T-SRAM.
+        * MEM2 starts at 0x10000000 and contains 64MB of DDR2 RAM.
+        * Between both memory address ranges there is an address space
+        * where memory-mapped I/O registers are found.
+        *
+        * Currently, Linux 32-bit PowerPC does not support RAM in
+        * discontiguous memory address spaces. Thus, in order to use
+        * both RAM areas, we declare as RAM the range from the start of
+        * MEM1 to the end of useable MEM2 and exclude the needed parts
+        * with /memreserve/ statements, at the expense of wasting a bit
+        * of memory.
+        */
+       memory {
+               device_type = "memory";
+               /* MEM1 + memory hole + MEM2 - firmware/buffers area */
+               reg = <0x00000000 0x133e0000>;
+       };
+
+       cpus {
+               #cpus = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,broad...@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       clock-frequency = <729000000>; /* 729MHz */
+                       bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */
+                       timebase-frequency = <60750000>; /* 243MHz / 4 */
+                       i-cache-line-size = <32>;
+                       d-cache-line-size = <32>;
+                       i-cache-size = <32768>;
+                       d-cache-size = <32768>;
+               };
+       };
+
+       /* devices contained in the hollywood chipset */
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               #interrupt-cells = <1>;
+               model = "hollywood";
+               compatible = "nintendo,hollywood";
+               clock-frequency = <243000000>; /* 243MHz */
+               ranges = <0x0c000000 0x0c000000 0x00010000
+                         0x0d000000 0x0d000000 0x00010000
+                         0x0d040000 0x0d040000 0x00050000
+                         0x0d800000 0x0d800000 0x00001000
+                         0x133e0000 0x133e0000 0x00c20000>;
+
+               vi...@0c002000 {
+                       compatible = "nintendo,hollywood-video";
+                       reg = <0x0c002000 0x100>;
+                       interrupts = <8>;
+                       interrupt-parent = <&PIC0>;
+               };
+
+               PIC0: p...@0c003000 {
+                       #interrupt-cells = <1>;
+                       compatible = "nintendo,flipper-pic";
+                       reg = <0x0c003000 0x8>;
+                       interrupt-controller;
+               };
+
+               resetswi...@0c003000 {
+                       compatible = "nintendo,hollywood-resetswitch";
+                       reg = <0x0c003000 0x4>;
+                       interrupts = <1>;
+                       interrupt-parent = <&PIC0>;
+               };
+
+               au...@0c005000 {
+                       compatible = "nintendo,hollywood-audio";
+                       reg = <0x0c005000 0x200         /* DSP */
+                              0x0d006c00 0x20>;        /* AI */
+                       interrupts = <6>;
+                       interrupt-parent = <&PIC0>;
+               };
+
+               /* Team Twiizers' 'mini' firmware IPC */
+               m...@0d000000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #interrupt-cells = <1>;
+                       compatible = "twiizers,starlet-mini-ipc";
+                       reg = <0x0d000000 0x40  /* IPC */
+                              0x13fffffc 0x4>; /* mini header pointer */
+               };
+
+               ser...@0d006400 {
+                       compatible = "nintendo,hollywood-serial";
+                       reg = <0x0d006400 0x100>;
+                       interrupts = <3>;
+                       interrupt-parent = <&PIC0>;
+               };
+
+               /* External Interface bus */
+               e...@0d006800 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "nintendo,hollywood-exi";
+                       reg = <0x0d006800 0x40>;
+                       interrupts = <4>;
+                       interrupt-parent = <&PIC0>;
+
+                       USBGECKO0: usbge...@0d006814 {
+                               compatible = "usbgecko,usbgecko";
+                               reg = <0x0d006814 0x14>;
+                               virtual-reg = <0xcd006814>;
+                       };
+               };
+
+               e...@0d040000 {
+                       compatible = "nintendo,hollywood-ehci";
+                       reg = <0x0d040000 0x100
+                              0x133e0000 0x80000>; /* 512 KB */
+                       interrupts = <4>;
+                       interrupt-parent = <&PIC1>;
+               };
+
+               oh...@0d050000 {
+                       compatible = "nintendo,hollywood-ohci";
+                       reg = <0x0d050000 0x100
+                              0x13460000 0x80000>; /* 512 KB */
+                       interrupts = <5>;
+                       interrupt-parent = <&PIC1>;
+               };
+
+               oh...@0d060000 {
+                       compatible = "nintendo,hollywood-ohci";
+                       reg = <0x0d060000 0x100
+                              0x134e0000 0x80000>; /* 512 KB */
+                       interrupts = <6>;
+                       interrupt-parent = <&PIC1>;
+               };
+
+               sd...@0d070000 {
+                       compatible = "nintendo,hollywood-sdhci";
+                       reg = <0x0d070000 0x200>;
+                       interrupts = <7>;
+                       interrupt-parent = <&PIC1>;
+               };
+
+               sd...@0d080000 {
+                       compatible = "nintendo,hollywood-sdhci";
+                       reg = <0x0d080000 0x200>;
+                       interrupts = <8>;
+                       interrupt-parent = <&PIC1>;
+               };
+
+               PIC1: p...@0d800030 {
+                       #interrupt-cells = <1>;
+                       compatible = "nintendo,hollywood-pic";
+                       reg = <0x0d800030 0x8>;
+                       interrupt-controller;
+                       interrupts = <14>;
+                       interrupt-parent = <&PIC0>;
+               };
+
+               hollywood-ahbp...@0d800064 {
+                       compatible = "nintendo,hollywood-ahbprot";
+                       reg = <0x0d800064 0x4>;
+               };
+
+               gpio0: hollywood-g...@0d8000c0 {
+                       compatible = "nintendo,hollywood-gpio";
+                       reg = <0x0d8000c0 0x20>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpio1: hollywood-g...@0d8000e0 {
+                       compatible = "nintendo,hollywood-gpio";
+                       reg = <0x0d8000e0 0x20>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               hollywood-res...@0d800194 {
+                       compatible = "nintendo,hollywood-resets";
+                       reg = <0x0d800194 0x4>;
+               };
+
+               i2c-video {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "virtual,i2c-gpio";
+
+                       gpios = <&gpio0  16 0 /* 31-15 */
+                                &gpio0  17 0 /* 31-14 */
+                               >;
+                       sda-is-open-drain = <1>;
+                       sda-enforce-dir = <1>;
+                       scl-is-open-drain = <1>;
+                       scl-is-output-only = <1>;
+                       udelay = <2>;
+
+                       audio-video-encoder {
+                               compatible = "nintendo,wii-ave-rvl";
+                               reg = <0x70>;
+                       };
+               };
+       };
+};
+
-- 
1.6.3.3

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to