12874c5fdSThomas Gleixner// SPDX-License-Identifier: GPL-2.0-or-later 27a09116cSAlbert Herranz/* 37a09116cSAlbert Herranz * arch/powerpc/boot/dts/wii.dts 47a09116cSAlbert Herranz * 57a09116cSAlbert Herranz * Nintendo Wii platform device tree source 67a09116cSAlbert Herranz * Copyright (C) 2008-2009 The GameCube Linux Team 77a09116cSAlbert Herranz * Copyright (C) 2008,2009 Albert Herranz 87a09116cSAlbert Herranz */ 97a09116cSAlbert Herranz 107a09116cSAlbert Herranz/dts-v1/; 11041413b8SJonathan Neuschäfer#include <dt-bindings/gpio/gpio.h> 128de7547eSJonathan Neuschäfer#include <dt-bindings/input/input.h> 137a09116cSAlbert Herranz 147a09116cSAlbert Herranz/* 157a09116cSAlbert Herranz * This is commented-out for now. 167a09116cSAlbert Herranz * Until a later patch is merged, the kernel can use only the first 177a09116cSAlbert Herranz * contiguous RAM range and will BUG() if the memreserve is outside 187a09116cSAlbert Herranz * that range. 197a09116cSAlbert Herranz */ 207a09116cSAlbert Herranz/*/memreserve/ 0x10000000 0x0004000;*/ /* DSP RAM */ 217a09116cSAlbert Herranz 227a09116cSAlbert Herranz/ { 237a09116cSAlbert Herranz model = "nintendo,wii"; 247a09116cSAlbert Herranz compatible = "nintendo,wii"; 257a09116cSAlbert Herranz #address-cells = <1>; 267a09116cSAlbert Herranz #size-cells = <1>; 277a09116cSAlbert Herranz 287a09116cSAlbert Herranz chosen { 297a09116cSAlbert Herranz bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal"; 307a09116cSAlbert Herranz }; 317a09116cSAlbert Herranz 327a09116cSAlbert Herranz memory { 337a09116cSAlbert Herranz device_type = "memory"; 347a09116cSAlbert Herranz reg = <0x00000000 0x01800000 /* MEM1 24MB 1T-SRAM */ 357a09116cSAlbert Herranz 0x10000000 0x04000000>; /* MEM2 64MB GDDR3 */ 367a09116cSAlbert Herranz }; 377a09116cSAlbert Herranz 387a09116cSAlbert Herranz cpus { 397a09116cSAlbert Herranz #address-cells = <1>; 407a09116cSAlbert Herranz #size-cells = <0>; 417a09116cSAlbert Herranz 427a09116cSAlbert Herranz PowerPC,broadway@0 { 437a09116cSAlbert Herranz device_type = "cpu"; 447a09116cSAlbert Herranz reg = <0>; 457a09116cSAlbert Herranz clock-frequency = <729000000>; /* 729MHz */ 467a09116cSAlbert Herranz bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */ 477a09116cSAlbert Herranz timebase-frequency = <60750000>; /* 243MHz / 4 */ 487a09116cSAlbert Herranz i-cache-line-size = <32>; 497a09116cSAlbert Herranz d-cache-line-size = <32>; 507a09116cSAlbert Herranz i-cache-size = <32768>; 517a09116cSAlbert Herranz d-cache-size = <32768>; 527a09116cSAlbert Herranz }; 537a09116cSAlbert Herranz }; 547a09116cSAlbert Herranz 557a09116cSAlbert Herranz /* devices contained in the hollywood chipset */ 567a09116cSAlbert Herranz hollywood { 577a09116cSAlbert Herranz #address-cells = <1>; 587a09116cSAlbert Herranz #size-cells = <1>; 597a09116cSAlbert Herranz compatible = "nintendo,hollywood"; 607a09116cSAlbert Herranz ranges = <0x0c000000 0x0c000000 0x01000000 617a09116cSAlbert Herranz 0x0d000000 0x0d000000 0x00800000 627a09116cSAlbert Herranz 0x0d800000 0x0d800000 0x00800000>; 637a09116cSAlbert Herranz interrupt-parent = <&PIC0>; 647a09116cSAlbert Herranz 65600ecc19SMathieu Malaterre video@c002000 { 667a09116cSAlbert Herranz compatible = "nintendo,hollywood-vi", 677a09116cSAlbert Herranz "nintendo,flipper-vi"; 687a09116cSAlbert Herranz reg = <0x0c002000 0x100>; 697a09116cSAlbert Herranz interrupts = <8>; 707a09116cSAlbert Herranz }; 717a09116cSAlbert Herranz 72600ecc19SMathieu Malaterre processor-interface@c003000 { 737a09116cSAlbert Herranz compatible = "nintendo,hollywood-pi", 747a09116cSAlbert Herranz "nintendo,flipper-pi"; 757a09116cSAlbert Herranz reg = <0x0c003000 0x100>; 767a09116cSAlbert Herranz 777a09116cSAlbert Herranz PIC0: pic0 { 787a09116cSAlbert Herranz #interrupt-cells = <1>; 797a09116cSAlbert Herranz compatible = "nintendo,flipper-pic"; 807a09116cSAlbert Herranz interrupt-controller; 817a09116cSAlbert Herranz }; 827a09116cSAlbert Herranz }; 837a09116cSAlbert Herranz 84600ecc19SMathieu Malaterre dsp@c005000 { 857a09116cSAlbert Herranz #address-cells = <1>; 867a09116cSAlbert Herranz #size-cells = <1>; 877a09116cSAlbert Herranz compatible = "nintendo,hollywood-dsp", 887a09116cSAlbert Herranz "nintendo,flipper-dsp"; 897a09116cSAlbert Herranz reg = <0x0c005000 0x200>; 907a09116cSAlbert Herranz interrupts = <6>; 917a09116cSAlbert Herranz }; 927a09116cSAlbert Herranz 93600ecc19SMathieu Malaterre gamepad-controller@d006400 { 947a09116cSAlbert Herranz compatible = "nintendo,hollywood-si", 957a09116cSAlbert Herranz "nintendo,flipper-si"; 967a09116cSAlbert Herranz reg = <0x0d006400 0x100>; 977a09116cSAlbert Herranz interrupts = <3>; 987a09116cSAlbert Herranz }; 997a09116cSAlbert Herranz 100600ecc19SMathieu Malaterre audio@c006c00 { 1017a09116cSAlbert Herranz compatible = "nintendo,hollywood-ai", 1027a09116cSAlbert Herranz "nintendo,flipper-ai"; 1037a09116cSAlbert Herranz reg = <0x0d006c00 0x20>; 1047a09116cSAlbert Herranz interrupts = <6>; 1057a09116cSAlbert Herranz }; 1067a09116cSAlbert Herranz 1077a09116cSAlbert Herranz /* External Interface bus */ 108600ecc19SMathieu Malaterre exi@d006800 { 1097a09116cSAlbert Herranz compatible = "nintendo,hollywood-exi", 1107a09116cSAlbert Herranz "nintendo,flipper-exi"; 1117a09116cSAlbert Herranz reg = <0x0d006800 0x40>; 1127a09116cSAlbert Herranz virtual-reg = <0x0d006800>; 1137a09116cSAlbert Herranz interrupts = <4>; 1147a09116cSAlbert Herranz }; 1157a09116cSAlbert Herranz 116600ecc19SMathieu Malaterre usb@d040000 { 1177a09116cSAlbert Herranz compatible = "nintendo,hollywood-usb-ehci", 1187a09116cSAlbert Herranz "usb-ehci"; 1197a09116cSAlbert Herranz reg = <0x0d040000 0x100>; 1207a09116cSAlbert Herranz interrupts = <4>; 1217a09116cSAlbert Herranz interrupt-parent = <&PIC1>; 1227a09116cSAlbert Herranz }; 1237a09116cSAlbert Herranz 124600ecc19SMathieu Malaterre usb@d050000 { 1257a09116cSAlbert Herranz compatible = "nintendo,hollywood-usb-ohci", 1267a09116cSAlbert Herranz "usb-ohci"; 1277a09116cSAlbert Herranz reg = <0x0d050000 0x100>; 1287a09116cSAlbert Herranz interrupts = <5>; 1297a09116cSAlbert Herranz interrupt-parent = <&PIC1>; 1307a09116cSAlbert Herranz }; 1317a09116cSAlbert Herranz 132600ecc19SMathieu Malaterre usb@d060000 { 1337a09116cSAlbert Herranz compatible = "nintendo,hollywood-usb-ohci", 1347a09116cSAlbert Herranz "usb-ohci"; 1357a09116cSAlbert Herranz reg = <0x0d060000 0x100>; 1367a09116cSAlbert Herranz interrupts = <6>; 1377a09116cSAlbert Herranz interrupt-parent = <&PIC1>; 1387a09116cSAlbert Herranz }; 1397a09116cSAlbert Herranz 140600ecc19SMathieu Malaterre sd@d070000 { 1417a09116cSAlbert Herranz compatible = "nintendo,hollywood-sdhci", 1427a09116cSAlbert Herranz "sdhci"; 1437a09116cSAlbert Herranz reg = <0x0d070000 0x200>; 1447a09116cSAlbert Herranz interrupts = <7>; 1457a09116cSAlbert Herranz interrupt-parent = <&PIC1>; 1467a09116cSAlbert Herranz }; 1477a09116cSAlbert Herranz 148600ecc19SMathieu Malaterre sdio@d080000 { 1497a09116cSAlbert Herranz compatible = "nintendo,hollywood-sdhci", 1507a09116cSAlbert Herranz "sdhci"; 1517a09116cSAlbert Herranz reg = <0x0d080000 0x200>; 1527a09116cSAlbert Herranz interrupts = <8>; 1537a09116cSAlbert Herranz interrupt-parent = <&PIC1>; 1547a09116cSAlbert Herranz }; 1557a09116cSAlbert Herranz 156600ecc19SMathieu Malaterre ipc@d000000 { 1577a09116cSAlbert Herranz compatible = "nintendo,hollywood-ipc"; 1587a09116cSAlbert Herranz reg = <0x0d000000 0x10>; 1597a09116cSAlbert Herranz interrupts = <30>; 1607a09116cSAlbert Herranz interrupt-parent = <&PIC1>; 1617a09116cSAlbert Herranz }; 1627a09116cSAlbert Herranz 163600ecc19SMathieu Malaterre PIC1: pic1@d800030 { 1647a09116cSAlbert Herranz #interrupt-cells = <1>; 1657a09116cSAlbert Herranz compatible = "nintendo,hollywood-pic"; 1667a09116cSAlbert Herranz reg = <0x0d800030 0x10>; 1677a09116cSAlbert Herranz interrupt-controller; 1687a09116cSAlbert Herranz interrupts = <14>; 1697a09116cSAlbert Herranz }; 1707a09116cSAlbert Herranz 171*5479618eSEmmanuel Gil Peyrot srnprot@d800060 { 172*5479618eSEmmanuel Gil Peyrot compatible = "nintendo,hollywood-srnprot"; 173*5479618eSEmmanuel Gil Peyrot reg = <0x0d800060 0x4>; 174*5479618eSEmmanuel Gil Peyrot }; 175*5479618eSEmmanuel Gil Peyrot 176600ecc19SMathieu Malaterre GPIO: gpio@d8000c0 { 1777a09116cSAlbert Herranz #gpio-cells = <2>; 1787a09116cSAlbert Herranz compatible = "nintendo,hollywood-gpio"; 1797a09116cSAlbert Herranz reg = <0x0d8000c0 0x40>; 1807a09116cSAlbert Herranz gpio-controller; 1819693d570SJonathan Neuschäfer ngpios = <24>; 1827a09116cSAlbert Herranz 18380873a0bSJonathan Neuschäfer gpio-line-names = 18480873a0bSJonathan Neuschäfer "POWER", "SHUTDOWN", "FAN", "DC_DC", 18580873a0bSJonathan Neuschäfer "DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN", 18680873a0bSJonathan Neuschäfer "SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK", 18780873a0bSJonathan Neuschäfer "EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA", 18880873a0bSJonathan Neuschäfer "DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3", 18980873a0bSJonathan Neuschäfer "DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7"; 19080873a0bSJonathan Neuschäfer 191f4ddc19aSJonathan Neuschäfer interrupt-controller; 192f4ddc19aSJonathan Neuschäfer #interrupt-cells = <2>; 193f4ddc19aSJonathan Neuschäfer interrupts = <10>; 194f4ddc19aSJonathan Neuschäfer interrupt-parent = <&PIC1>; 195f4ddc19aSJonathan Neuschäfer 1967a09116cSAlbert Herranz /* 1977a09116cSAlbert Herranz * This is commented out while a standard binding 1987a09116cSAlbert Herranz * for i2c over gpio is defined. 1997a09116cSAlbert Herranz */ 2007a09116cSAlbert Herranz /* 2017a09116cSAlbert Herranz i2c-video { 2027a09116cSAlbert Herranz #address-cells = <1>; 2037a09116cSAlbert Herranz #size-cells = <0>; 2047a09116cSAlbert Herranz compatible = "i2c-gpio"; 2057a09116cSAlbert Herranz 2067a09116cSAlbert Herranz gpios = <&GPIO 15 0 2077a09116cSAlbert Herranz &GPIO 14 0>; 2087a09116cSAlbert Herranz clock-frequency = <250000>; 2097a09116cSAlbert Herranz no-clock-stretching; 2107a09116cSAlbert Herranz scl-is-open-drain; 2117a09116cSAlbert Herranz sda-is-open-drain; 2127a09116cSAlbert Herranz sda-enforce-dir; 2137a09116cSAlbert Herranz 2147a09116cSAlbert Herranz AVE: audio-video-encoder@70 { 2157a09116cSAlbert Herranz compatible = "nintendo,wii-audio-video-encoder"; 2167a09116cSAlbert Herranz reg = <0x70>; 2177a09116cSAlbert Herranz }; 2187a09116cSAlbert Herranz }; 2197a09116cSAlbert Herranz */ 2207a09116cSAlbert Herranz }; 2217a09116cSAlbert Herranz 222600ecc19SMathieu Malaterre control@d800100 { 2237a09116cSAlbert Herranz compatible = "nintendo,hollywood-control"; 224b11748e6SEmmanuel Gil Peyrot /* 225b11748e6SEmmanuel Gil Peyrot * Both the address and length are wrong, according to 226b11748e6SEmmanuel Gil Peyrot * Wiibrew this should be <0x0d800000 0x400>, but it 227562a610bSEmmanuel Gil Peyrot * requires refactoring the PIC1, GPIO and OTP nodes 228562a610bSEmmanuel Gil Peyrot * before changing that. 229b11748e6SEmmanuel Gil Peyrot */ 230b11748e6SEmmanuel Gil Peyrot reg = <0x0d800100 0xa0>; 2317a09116cSAlbert Herranz }; 2327a09116cSAlbert Herranz 233562a610bSEmmanuel Gil Peyrot otp@d8001ec { 234562a610bSEmmanuel Gil Peyrot compatible = "nintendo,hollywood-otp"; 235562a610bSEmmanuel Gil Peyrot reg = <0x0d8001ec 0x8>; 236562a610bSEmmanuel Gil Peyrot }; 237562a610bSEmmanuel Gil Peyrot 238600ecc19SMathieu Malaterre disk@d806000 { 2397a09116cSAlbert Herranz compatible = "nintendo,hollywood-di"; 2407a09116cSAlbert Herranz reg = <0x0d806000 0x40>; 2417a09116cSAlbert Herranz interrupts = <2>; 2427a09116cSAlbert Herranz }; 2437a09116cSAlbert Herranz }; 244041413b8SJonathan Neuschäfer 245041413b8SJonathan Neuschäfer gpio-leds { 246041413b8SJonathan Neuschäfer compatible = "gpio-leds"; 247041413b8SJonathan Neuschäfer 248041413b8SJonathan Neuschäfer /* This is the blue LED in the disk drive slot */ 249041413b8SJonathan Neuschäfer drive-slot { 250041413b8SJonathan Neuschäfer label = "wii:blue:drive_slot"; 251041413b8SJonathan Neuschäfer gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>; 252041413b8SJonathan Neuschäfer panic-indicator; 253041413b8SJonathan Neuschäfer }; 254041413b8SJonathan Neuschäfer }; 2558de7547eSJonathan Neuschäfer 2568de7547eSJonathan Neuschäfer gpio-keys { 2578de7547eSJonathan Neuschäfer compatible = "gpio-keys"; 2588de7547eSJonathan Neuschäfer 2598de7547eSJonathan Neuschäfer power { 2608de7547eSJonathan Neuschäfer label = "Power Button"; 2618de7547eSJonathan Neuschäfer gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>; 2628de7547eSJonathan Neuschäfer linux,code = <KEY_POWER>; 2638de7547eSJonathan Neuschäfer }; 2648de7547eSJonathan Neuschäfer 2658de7547eSJonathan Neuschäfer eject { 2668de7547eSJonathan Neuschäfer label = "Eject Button"; 2678de7547eSJonathan Neuschäfer gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>; 2688de7547eSJonathan Neuschäfer linux,code = <KEY_EJECTCD>; 2698de7547eSJonathan Neuschäfer }; 2708de7547eSJonathan Neuschäfer }; 2717a09116cSAlbert Herranz}; 2727a09116cSAlbert Herranz 273