1*c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later 2*c66ec88fSEmmanuel Vadot/* 3*c66ec88fSEmmanuel Vadot * arch/powerpc/boot/dts/wii.dts 4*c66ec88fSEmmanuel Vadot * 5*c66ec88fSEmmanuel Vadot * Nintendo Wii platform device tree source 6*c66ec88fSEmmanuel Vadot * Copyright (C) 2008-2009 The GameCube Linux Team 7*c66ec88fSEmmanuel Vadot * Copyright (C) 2008,2009 Albert Herranz 8*c66ec88fSEmmanuel Vadot */ 9*c66ec88fSEmmanuel Vadot 10*c66ec88fSEmmanuel Vadot/dts-v1/; 11*c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 12*c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h> 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel Vadot/* 15*c66ec88fSEmmanuel Vadot * This is commented-out for now. 16*c66ec88fSEmmanuel Vadot * Until a later patch is merged, the kernel can use only the first 17*c66ec88fSEmmanuel Vadot * contiguous RAM range and will BUG() if the memreserve is outside 18*c66ec88fSEmmanuel Vadot * that range. 19*c66ec88fSEmmanuel Vadot */ 20*c66ec88fSEmmanuel Vadot/*/memreserve/ 0x10000000 0x0004000;*/ /* DSP RAM */ 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel Vadot/ { 23*c66ec88fSEmmanuel Vadot model = "nintendo,wii"; 24*c66ec88fSEmmanuel Vadot compatible = "nintendo,wii"; 25*c66ec88fSEmmanuel Vadot #address-cells = <1>; 26*c66ec88fSEmmanuel Vadot #size-cells = <1>; 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel Vadot chosen { 29*c66ec88fSEmmanuel Vadot bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal"; 30*c66ec88fSEmmanuel Vadot }; 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot memory { 33*c66ec88fSEmmanuel Vadot device_type = "memory"; 34*c66ec88fSEmmanuel Vadot reg = <0x00000000 0x01800000 /* MEM1 24MB 1T-SRAM */ 35*c66ec88fSEmmanuel Vadot 0x10000000 0x04000000>; /* MEM2 64MB GDDR3 */ 36*c66ec88fSEmmanuel Vadot }; 37*c66ec88fSEmmanuel Vadot 38*c66ec88fSEmmanuel Vadot cpus { 39*c66ec88fSEmmanuel Vadot #address-cells = <1>; 40*c66ec88fSEmmanuel Vadot #size-cells = <0>; 41*c66ec88fSEmmanuel Vadot 42*c66ec88fSEmmanuel Vadot PowerPC,broadway@0 { 43*c66ec88fSEmmanuel Vadot device_type = "cpu"; 44*c66ec88fSEmmanuel Vadot reg = <0>; 45*c66ec88fSEmmanuel Vadot clock-frequency = <729000000>; /* 729MHz */ 46*c66ec88fSEmmanuel Vadot bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */ 47*c66ec88fSEmmanuel Vadot timebase-frequency = <60750000>; /* 243MHz / 4 */ 48*c66ec88fSEmmanuel Vadot i-cache-line-size = <32>; 49*c66ec88fSEmmanuel Vadot d-cache-line-size = <32>; 50*c66ec88fSEmmanuel Vadot i-cache-size = <32768>; 51*c66ec88fSEmmanuel Vadot d-cache-size = <32768>; 52*c66ec88fSEmmanuel Vadot }; 53*c66ec88fSEmmanuel Vadot }; 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel Vadot /* devices contained in the hollywood chipset */ 56*c66ec88fSEmmanuel Vadot hollywood { 57*c66ec88fSEmmanuel Vadot #address-cells = <1>; 58*c66ec88fSEmmanuel Vadot #size-cells = <1>; 59*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood"; 60*c66ec88fSEmmanuel Vadot ranges = <0x0c000000 0x0c000000 0x01000000 61*c66ec88fSEmmanuel Vadot 0x0d000000 0x0d000000 0x00800000 62*c66ec88fSEmmanuel Vadot 0x0d800000 0x0d800000 0x00800000>; 63*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC0>; 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot video@c002000 { 66*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-vi", 67*c66ec88fSEmmanuel Vadot "nintendo,flipper-vi"; 68*c66ec88fSEmmanuel Vadot reg = <0x0c002000 0x100>; 69*c66ec88fSEmmanuel Vadot interrupts = <8>; 70*c66ec88fSEmmanuel Vadot }; 71*c66ec88fSEmmanuel Vadot 72*c66ec88fSEmmanuel Vadot processor-interface@c003000 { 73*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-pi", 74*c66ec88fSEmmanuel Vadot "nintendo,flipper-pi"; 75*c66ec88fSEmmanuel Vadot reg = <0x0c003000 0x100>; 76*c66ec88fSEmmanuel Vadot 77*c66ec88fSEmmanuel Vadot PIC0: pic0 { 78*c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 79*c66ec88fSEmmanuel Vadot compatible = "nintendo,flipper-pic"; 80*c66ec88fSEmmanuel Vadot interrupt-controller; 81*c66ec88fSEmmanuel Vadot }; 82*c66ec88fSEmmanuel Vadot }; 83*c66ec88fSEmmanuel Vadot 84*c66ec88fSEmmanuel Vadot dsp@c005000 { 85*c66ec88fSEmmanuel Vadot #address-cells = <1>; 86*c66ec88fSEmmanuel Vadot #size-cells = <1>; 87*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-dsp", 88*c66ec88fSEmmanuel Vadot "nintendo,flipper-dsp"; 89*c66ec88fSEmmanuel Vadot reg = <0x0c005000 0x200>; 90*c66ec88fSEmmanuel Vadot interrupts = <6>; 91*c66ec88fSEmmanuel Vadot }; 92*c66ec88fSEmmanuel Vadot 93*c66ec88fSEmmanuel Vadot gamepad-controller@d006400 { 94*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-si", 95*c66ec88fSEmmanuel Vadot "nintendo,flipper-si"; 96*c66ec88fSEmmanuel Vadot reg = <0x0d006400 0x100>; 97*c66ec88fSEmmanuel Vadot interrupts = <3>; 98*c66ec88fSEmmanuel Vadot }; 99*c66ec88fSEmmanuel Vadot 100*c66ec88fSEmmanuel Vadot audio@c006c00 { 101*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-ai", 102*c66ec88fSEmmanuel Vadot "nintendo,flipper-ai"; 103*c66ec88fSEmmanuel Vadot reg = <0x0d006c00 0x20>; 104*c66ec88fSEmmanuel Vadot interrupts = <6>; 105*c66ec88fSEmmanuel Vadot }; 106*c66ec88fSEmmanuel Vadot 107*c66ec88fSEmmanuel Vadot /* External Interface bus */ 108*c66ec88fSEmmanuel Vadot exi@d006800 { 109*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-exi", 110*c66ec88fSEmmanuel Vadot "nintendo,flipper-exi"; 111*c66ec88fSEmmanuel Vadot reg = <0x0d006800 0x40>; 112*c66ec88fSEmmanuel Vadot virtual-reg = <0x0d006800>; 113*c66ec88fSEmmanuel Vadot interrupts = <4>; 114*c66ec88fSEmmanuel Vadot }; 115*c66ec88fSEmmanuel Vadot 116*c66ec88fSEmmanuel Vadot usb@d040000 { 117*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-usb-ehci", 118*c66ec88fSEmmanuel Vadot "usb-ehci"; 119*c66ec88fSEmmanuel Vadot reg = <0x0d040000 0x100>; 120*c66ec88fSEmmanuel Vadot interrupts = <4>; 121*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 122*c66ec88fSEmmanuel Vadot }; 123*c66ec88fSEmmanuel Vadot 124*c66ec88fSEmmanuel Vadot usb@d050000 { 125*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-usb-ohci", 126*c66ec88fSEmmanuel Vadot "usb-ohci"; 127*c66ec88fSEmmanuel Vadot reg = <0x0d050000 0x100>; 128*c66ec88fSEmmanuel Vadot interrupts = <5>; 129*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 130*c66ec88fSEmmanuel Vadot }; 131*c66ec88fSEmmanuel Vadot 132*c66ec88fSEmmanuel Vadot usb@d060000 { 133*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-usb-ohci", 134*c66ec88fSEmmanuel Vadot "usb-ohci"; 135*c66ec88fSEmmanuel Vadot reg = <0x0d060000 0x100>; 136*c66ec88fSEmmanuel Vadot interrupts = <6>; 137*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 138*c66ec88fSEmmanuel Vadot }; 139*c66ec88fSEmmanuel Vadot 140*c66ec88fSEmmanuel Vadot sd@d070000 { 141*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-sdhci", 142*c66ec88fSEmmanuel Vadot "sdhci"; 143*c66ec88fSEmmanuel Vadot reg = <0x0d070000 0x200>; 144*c66ec88fSEmmanuel Vadot interrupts = <7>; 145*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 146*c66ec88fSEmmanuel Vadot }; 147*c66ec88fSEmmanuel Vadot 148*c66ec88fSEmmanuel Vadot sdio@d080000 { 149*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-sdhci", 150*c66ec88fSEmmanuel Vadot "sdhci"; 151*c66ec88fSEmmanuel Vadot reg = <0x0d080000 0x200>; 152*c66ec88fSEmmanuel Vadot interrupts = <8>; 153*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 154*c66ec88fSEmmanuel Vadot }; 155*c66ec88fSEmmanuel Vadot 156*c66ec88fSEmmanuel Vadot ipc@d000000 { 157*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-ipc"; 158*c66ec88fSEmmanuel Vadot reg = <0x0d000000 0x10>; 159*c66ec88fSEmmanuel Vadot interrupts = <30>; 160*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 161*c66ec88fSEmmanuel Vadot }; 162*c66ec88fSEmmanuel Vadot 163*c66ec88fSEmmanuel Vadot PIC1: pic1@d800030 { 164*c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 165*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-pic"; 166*c66ec88fSEmmanuel Vadot reg = <0x0d800030 0x10>; 167*c66ec88fSEmmanuel Vadot interrupt-controller; 168*c66ec88fSEmmanuel Vadot interrupts = <14>; 169*c66ec88fSEmmanuel Vadot }; 170*c66ec88fSEmmanuel Vadot 171*c66ec88fSEmmanuel Vadot GPIO: gpio@d8000c0 { 172*c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 173*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-gpio"; 174*c66ec88fSEmmanuel Vadot reg = <0x0d8000c0 0x40>; 175*c66ec88fSEmmanuel Vadot gpio-controller; 176*c66ec88fSEmmanuel Vadot ngpios = <24>; 177*c66ec88fSEmmanuel Vadot 178*c66ec88fSEmmanuel Vadot gpio-line-names = 179*c66ec88fSEmmanuel Vadot "POWER", "SHUTDOWN", "FAN", "DC_DC", 180*c66ec88fSEmmanuel Vadot "DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN", 181*c66ec88fSEmmanuel Vadot "SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK", 182*c66ec88fSEmmanuel Vadot "EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA", 183*c66ec88fSEmmanuel Vadot "DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3", 184*c66ec88fSEmmanuel Vadot "DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7"; 185*c66ec88fSEmmanuel Vadot 186*c66ec88fSEmmanuel Vadot interrupt-controller; 187*c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 188*c66ec88fSEmmanuel Vadot interrupts = <10>; 189*c66ec88fSEmmanuel Vadot interrupt-parent = <&PIC1>; 190*c66ec88fSEmmanuel Vadot 191*c66ec88fSEmmanuel Vadot /* 192*c66ec88fSEmmanuel Vadot * This is commented out while a standard binding 193*c66ec88fSEmmanuel Vadot * for i2c over gpio is defined. 194*c66ec88fSEmmanuel Vadot */ 195*c66ec88fSEmmanuel Vadot /* 196*c66ec88fSEmmanuel Vadot i2c-video { 197*c66ec88fSEmmanuel Vadot #address-cells = <1>; 198*c66ec88fSEmmanuel Vadot #size-cells = <0>; 199*c66ec88fSEmmanuel Vadot compatible = "i2c-gpio"; 200*c66ec88fSEmmanuel Vadot 201*c66ec88fSEmmanuel Vadot gpios = <&GPIO 15 0 202*c66ec88fSEmmanuel Vadot &GPIO 14 0>; 203*c66ec88fSEmmanuel Vadot clock-frequency = <250000>; 204*c66ec88fSEmmanuel Vadot no-clock-stretching; 205*c66ec88fSEmmanuel Vadot scl-is-open-drain; 206*c66ec88fSEmmanuel Vadot sda-is-open-drain; 207*c66ec88fSEmmanuel Vadot sda-enforce-dir; 208*c66ec88fSEmmanuel Vadot 209*c66ec88fSEmmanuel Vadot AVE: audio-video-encoder@70 { 210*c66ec88fSEmmanuel Vadot compatible = "nintendo,wii-audio-video-encoder"; 211*c66ec88fSEmmanuel Vadot reg = <0x70>; 212*c66ec88fSEmmanuel Vadot }; 213*c66ec88fSEmmanuel Vadot }; 214*c66ec88fSEmmanuel Vadot */ 215*c66ec88fSEmmanuel Vadot }; 216*c66ec88fSEmmanuel Vadot 217*c66ec88fSEmmanuel Vadot control@d800100 { 218*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-control"; 219*c66ec88fSEmmanuel Vadot reg = <0x0d800100 0x300>; 220*c66ec88fSEmmanuel Vadot }; 221*c66ec88fSEmmanuel Vadot 222*c66ec88fSEmmanuel Vadot disk@d806000 { 223*c66ec88fSEmmanuel Vadot compatible = "nintendo,hollywood-di"; 224*c66ec88fSEmmanuel Vadot reg = <0x0d806000 0x40>; 225*c66ec88fSEmmanuel Vadot interrupts = <2>; 226*c66ec88fSEmmanuel Vadot }; 227*c66ec88fSEmmanuel Vadot }; 228*c66ec88fSEmmanuel Vadot 229*c66ec88fSEmmanuel Vadot gpio-leds { 230*c66ec88fSEmmanuel Vadot compatible = "gpio-leds"; 231*c66ec88fSEmmanuel Vadot 232*c66ec88fSEmmanuel Vadot /* This is the blue LED in the disk drive slot */ 233*c66ec88fSEmmanuel Vadot drive-slot { 234*c66ec88fSEmmanuel Vadot label = "wii:blue:drive_slot"; 235*c66ec88fSEmmanuel Vadot gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>; 236*c66ec88fSEmmanuel Vadot panic-indicator; 237*c66ec88fSEmmanuel Vadot }; 238*c66ec88fSEmmanuel Vadot }; 239*c66ec88fSEmmanuel Vadot 240*c66ec88fSEmmanuel Vadot gpio-keys { 241*c66ec88fSEmmanuel Vadot compatible = "gpio-keys"; 242*c66ec88fSEmmanuel Vadot 243*c66ec88fSEmmanuel Vadot power { 244*c66ec88fSEmmanuel Vadot label = "Power Button"; 245*c66ec88fSEmmanuel Vadot gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>; 246*c66ec88fSEmmanuel Vadot linux,code = <KEY_POWER>; 247*c66ec88fSEmmanuel Vadot }; 248*c66ec88fSEmmanuel Vadot 249*c66ec88fSEmmanuel Vadot eject { 250*c66ec88fSEmmanuel Vadot label = "Eject Button"; 251*c66ec88fSEmmanuel Vadot gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>; 252*c66ec88fSEmmanuel Vadot linux,code = <KEY_EJECTCD>; 253*c66ec88fSEmmanuel Vadot }; 254*c66ec88fSEmmanuel Vadot }; 255*c66ec88fSEmmanuel Vadot}; 256*c66ec88fSEmmanuel Vadot 257