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