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 GPIO: gpio@d8000c0 { 172 #gpio-cells = <2>; 173 compatible = "nintendo,hollywood-gpio"; 174 reg = <0x0d8000c0 0x40>; 175 gpio-controller; 176 ngpios = <24>; 177 178 gpio-line-names = 179 "POWER", "SHUTDOWN", "FAN", "DC_DC", 180 "DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN", 181 "SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK", 182 "EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA", 183 "DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3", 184 "DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7"; 185 186 interrupt-controller; 187 #interrupt-cells = <2>; 188 interrupts = <10>; 189 interrupt-parent = <&PIC1>; 190 191 /* 192 * This is commented out while a standard binding 193 * for i2c over gpio is defined. 194 */ 195 /* 196 i2c-video { 197 #address-cells = <1>; 198 #size-cells = <0>; 199 compatible = "i2c-gpio"; 200 201 gpios = <&GPIO 15 0 202 &GPIO 14 0>; 203 clock-frequency = <250000>; 204 no-clock-stretching; 205 scl-is-open-drain; 206 sda-is-open-drain; 207 sda-enforce-dir; 208 209 AVE: audio-video-encoder@70 { 210 compatible = "nintendo,wii-audio-video-encoder"; 211 reg = <0x70>; 212 }; 213 }; 214 */ 215 }; 216 217 control@d800100 { 218 compatible = "nintendo,hollywood-control"; 219 /* 220 * Both the address and length are wrong, according to 221 * Wiibrew this should be <0x0d800000 0x400>, but it 222 * requires refactoring the PIC1 and GPIO nodes before 223 * changing that. 224 */ 225 reg = <0x0d800100 0xa0>; 226 }; 227 228 disk@d806000 { 229 compatible = "nintendo,hollywood-di"; 230 reg = <0x0d806000 0x40>; 231 interrupts = <2>; 232 }; 233 }; 234 235 gpio-leds { 236 compatible = "gpio-leds"; 237 238 /* This is the blue LED in the disk drive slot */ 239 drive-slot { 240 label = "wii:blue:drive_slot"; 241 gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>; 242 panic-indicator; 243 }; 244 }; 245 246 gpio-keys { 247 compatible = "gpio-keys"; 248 249 power { 250 label = "Power Button"; 251 gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>; 252 linux,code = <KEY_POWER>; 253 }; 254 255 eject { 256 label = "Eject Button"; 257 gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>; 258 linux,code = <KEY_EJECTCD>; 259 }; 260 }; 261}; 262 263