GNU Linux-libre 5.4.274-gnu1
[releases.git] / arch / powerpc / boot / dts / wii.dts
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                         reg = <0x0d800100 0x300>;
220                 };
221
222                 disk@d806000 {
223                         compatible = "nintendo,hollywood-di";
224                         reg = <0x0d806000 0x40>;
225                         interrupts = <2>;
226                 };
227         };
228
229         gpio-leds {
230                 compatible = "gpio-leds";
231
232                 /* This is the blue LED in the disk drive slot */
233                 drive-slot {
234                         label = "wii:blue:drive_slot";
235                         gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>;
236                         panic-indicator;
237                 };
238         };
239
240         gpio-keys {
241                 compatible = "gpio-keys";
242
243                 power {
244                         label = "Power Button";
245                         gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>;
246                         linux,code = <KEY_POWER>;
247                 };
248
249                 eject {
250                         label = "Eject Button";
251                         gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>;
252                         linux,code = <KEY_EJECTCD>;
253                 };
254         };
255 };
256