1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * arch/powerpc/boot/dts/wii.dts 4 * 5 * Nintendo Wii platform device tree source 6 * Copyright (C) 2008-2009 The GameCube Linux Team 7 * Copyright (C) 2008,2009 Albert Herranz 8 */ 9 10/dts-v1/; 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/input/input.h> 13 14/* 15 * This is commented-out for now. 16 * Until a later patch is merged, the kernel can use only the first 17 * contiguous RAM range and will BUG() if the memreserve is outside 18 * that range. 19 */ 20/*/memreserve/ 0x10000000 0x0004000;*/ /* DSP RAM */ 21 22/ { 23 model = "nintendo,wii"; 24 compatible = "nintendo,wii"; 25 #address-cells = <1>; 26 #size-cells = <1>; 27 28 chosen { 29 bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal"; 30 }; 31 32 memory { 33 device_type = "memory"; 34 reg = <0x00000000 0x01800000 /* MEM1 24MB 1T-SRAM */ 35 0x10000000 0x04000000>; /* MEM2 64MB GDDR3 */ 36 }; 37 38 cpus { 39 #address-cells = <1>; 40 #size-cells = <0>; 41 42 PowerPC,broadway@0 { 43 device_type = "cpu"; 44 reg = <0>; 45 clock-frequency = <729000000>; /* 729MHz */ 46 bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */ 47 timebase-frequency = <60750000>; /* 243MHz / 4 */ 48 i-cache-line-size = <32>; 49 d-cache-line-size = <32>; 50 i-cache-size = <32768>; 51 d-cache-size = <32768>; 52 }; 53 }; 54 55 /* devices contained in the hollywood chipset */ 56 hollywood { 57 #address-cells = <1>; 58 #size-cells = <1>; 59 compatible = "nintendo,hollywood"; 60 ranges = <0x0c000000 0x0c000000 0x01000000 61 0x0d000000 0x0d000000 0x00800000 62 0x0d800000 0x0d800000 0x00800000>; 63 interrupt-parent = <&PIC0>; 64 65 video@c002000 { 66 compatible = "nintendo,hollywood-vi", 67 "nintendo,flipper-vi"; 68 reg = <0x0c002000 0x100>; 69 interrupts = <8>; 70 }; 71 72 processor-interface@c003000 { 73 compatible = "nintendo,hollywood-pi", 74 "nintendo,flipper-pi"; 75 reg = <0x0c003000 0x100>; 76 77 PIC0: pic0 { 78 #interrupt-cells = <1>; 79 compatible = "nintendo,flipper-pic"; 80 interrupt-controller; 81 }; 82 }; 83 84 dsp@c005000 { 85 #address-cells = <1>; 86 #size-cells = <1>; 87 compatible = "nintendo,hollywood-dsp", 88 "nintendo,flipper-dsp"; 89 reg = <0x0c005000 0x200>; 90 interrupts = <6>; 91 }; 92 93 gamepad-controller@d006400 { 94 compatible = "nintendo,hollywood-si", 95 "nintendo,flipper-si"; 96 reg = <0x0d006400 0x100>; 97 interrupts = <3>; 98 }; 99 100 audio@c006c00 { 101 compatible = "nintendo,hollywood-ai", 102 "nintendo,flipper-ai"; 103 reg = <0x0d006c00 0x20>; 104 interrupts = <6>; 105 }; 106 107 /* External Interface bus */ 108 exi@d006800 { 109 compatible = "nintendo,hollywood-exi", 110 "nintendo,flipper-exi"; 111 reg = <0x0d006800 0x40>; 112 virtual-reg = <0x0d006800>; 113 interrupts = <4>; 114 }; 115 116 usb@d040000 { 117 compatible = "nintendo,hollywood-usb-ehci", 118 "usb-ehci"; 119 reg = <0x0d040000 0x100>; 120 interrupts = <4>; 121 interrupt-parent = <&PIC1>; 122 }; 123 124 usb@d050000 { 125 compatible = "nintendo,hollywood-usb-ohci", 126 "usb-ohci"; 127 reg = <0x0d050000 0x100>; 128 interrupts = <5>; 129 interrupt-parent = <&PIC1>; 130 }; 131 132 usb@d060000 { 133 compatible = "nintendo,hollywood-usb-ohci", 134 "usb-ohci"; 135 reg = <0x0d060000 0x100>; 136 interrupts = <6>; 137 interrupt-parent = <&PIC1>; 138 }; 139 140 sd@d070000 { 141 compatible = "nintendo,hollywood-sdhci", 142 "sdhci"; 143 reg = <0x0d070000 0x200>; 144 interrupts = <7>; 145 interrupt-parent = <&PIC1>; 146 }; 147 148 sdio@d080000 { 149 compatible = "nintendo,hollywood-sdhci", 150 "sdhci"; 151 reg = <0x0d080000 0x200>; 152 interrupts = <8>; 153 interrupt-parent = <&PIC1>; 154 }; 155 156 ipc@d000000 { 157 compatible = "nintendo,hollywood-ipc"; 158 reg = <0x0d000000 0x10>; 159 interrupts = <30>; 160 interrupt-parent = <&PIC1>; 161 }; 162 163 PIC1: pic1@d800030 { 164 #interrupt-cells = <1>; 165 compatible = "nintendo,hollywood-pic"; 166 reg = <0x0d800030 0x10>; 167 interrupt-controller; 168 interrupts = <14>; 169 }; 170 171 srnprot@d800060 { 172 compatible = "nintendo,hollywood-srnprot"; 173 reg = <0x0d800060 0x4>; 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 /* 225 * Both the address and length are wrong, according to 226 * Wiibrew this should be <0x0d800000 0x400>, but it 227 * requires refactoring the PIC1, GPIO and OTP nodes 228 * before changing that. 229 */ 230 reg = <0x0d800100 0xa0>; 231 }; 232 233 otp@d8001ec { 234 compatible = "nintendo,hollywood-otp"; 235 reg = <0x0d8001ec 0x8>; 236 }; 237 238 disk@d806000 { 239 compatible = "nintendo,hollywood-di"; 240 reg = <0x0d806000 0x40>; 241 interrupts = <2>; 242 }; 243 }; 244 245 gpio-leds { 246 compatible = "gpio-leds"; 247 248 /* This is the blue LED in the disk drive slot */ 249 drive-slot { 250 label = "wii:blue:drive_slot"; 251 gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>; 252 panic-indicator; 253 }; 254 }; 255 256 gpio-keys { 257 compatible = "gpio-keys"; 258 259 power { 260 label = "Power Button"; 261 gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>; 262 linux,code = <KEY_POWER>; 263 }; 264 265 eject { 266 label = "Eject Button"; 267 gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>; 268 linux,code = <KEY_EJECTCD>; 269 }; 270 }; 271}; 272 273