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