Commit | Line | Data |
---|---|---|
2874c5fd | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
7a09116c AH |
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 | |
7a09116c AH |
8 | */ |
9 | ||
10 | /dts-v1/; | |
041413b8 | 11 | #include <dt-bindings/gpio/gpio.h> |
8de7547e | 12 | #include <dt-bindings/input/input.h> |
7a09116c AH |
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 | ||
600ecc19 | 65 | video@c002000 { |
7a09116c AH |
66 | compatible = "nintendo,hollywood-vi", |
67 | "nintendo,flipper-vi"; | |
68 | reg = <0x0c002000 0x100>; | |
69 | interrupts = <8>; | |
70 | }; | |
71 | ||
600ecc19 | 72 | processor-interface@c003000 { |
7a09116c AH |
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 | ||
600ecc19 | 84 | dsp@c005000 { |
7a09116c AH |
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 | ||
600ecc19 | 93 | gamepad-controller@d006400 { |
7a09116c AH |
94 | compatible = "nintendo,hollywood-si", |
95 | "nintendo,flipper-si"; | |
96 | reg = <0x0d006400 0x100>; | |
97 | interrupts = <3>; | |
98 | }; | |
99 | ||
600ecc19 | 100 | audio@c006c00 { |
7a09116c AH |
101 | compatible = "nintendo,hollywood-ai", |
102 | "nintendo,flipper-ai"; | |
103 | reg = <0x0d006c00 0x20>; | |
104 | interrupts = <6>; | |
105 | }; | |
106 | ||
107 | /* External Interface bus */ | |
600ecc19 | 108 | exi@d006800 { |
7a09116c AH |
109 | compatible = "nintendo,hollywood-exi", |
110 | "nintendo,flipper-exi"; | |
111 | reg = <0x0d006800 0x40>; | |
112 | virtual-reg = <0x0d006800>; | |
113 | interrupts = <4>; | |
114 | }; | |
115 | ||
600ecc19 | 116 | usb@d040000 { |
7a09116c AH |
117 | compatible = "nintendo,hollywood-usb-ehci", |
118 | "usb-ehci"; | |
119 | reg = <0x0d040000 0x100>; | |
120 | interrupts = <4>; | |
121 | interrupt-parent = <&PIC1>; | |
122 | }; | |
123 | ||
600ecc19 | 124 | usb@d050000 { |
7a09116c AH |
125 | compatible = "nintendo,hollywood-usb-ohci", |
126 | "usb-ohci"; | |
127 | reg = <0x0d050000 0x100>; | |
128 | interrupts = <5>; | |
129 | interrupt-parent = <&PIC1>; | |
130 | }; | |
131 | ||
600ecc19 | 132 | usb@d060000 { |
7a09116c AH |
133 | compatible = "nintendo,hollywood-usb-ohci", |
134 | "usb-ohci"; | |
135 | reg = <0x0d060000 0x100>; | |
136 | interrupts = <6>; | |
137 | interrupt-parent = <&PIC1>; | |
138 | }; | |
139 | ||
600ecc19 | 140 | sd@d070000 { |
7a09116c AH |
141 | compatible = "nintendo,hollywood-sdhci", |
142 | "sdhci"; | |
143 | reg = <0x0d070000 0x200>; | |
144 | interrupts = <7>; | |
145 | interrupt-parent = <&PIC1>; | |
146 | }; | |
147 | ||
600ecc19 | 148 | sdio@d080000 { |
7a09116c AH |
149 | compatible = "nintendo,hollywood-sdhci", |
150 | "sdhci"; | |
151 | reg = <0x0d080000 0x200>; | |
152 | interrupts = <8>; | |
153 | interrupt-parent = <&PIC1>; | |
154 | }; | |
155 | ||
600ecc19 | 156 | ipc@d000000 { |
7a09116c AH |
157 | compatible = "nintendo,hollywood-ipc"; |
158 | reg = <0x0d000000 0x10>; | |
159 | interrupts = <30>; | |
160 | interrupt-parent = <&PIC1>; | |
161 | }; | |
162 | ||
600ecc19 | 163 | PIC1: pic1@d800030 { |
7a09116c AH |
164 | #interrupt-cells = <1>; |
165 | compatible = "nintendo,hollywood-pic"; | |
166 | reg = <0x0d800030 0x10>; | |
167 | interrupt-controller; | |
168 | interrupts = <14>; | |
169 | }; | |
170 | ||
5479618e EGP |
171 | srnprot@d800060 { |
172 | compatible = "nintendo,hollywood-srnprot"; | |
173 | reg = <0x0d800060 0x4>; | |
174 | }; | |
175 | ||
600ecc19 | 176 | GPIO: gpio@d8000c0 { |
7a09116c AH |
177 | #gpio-cells = <2>; |
178 | compatible = "nintendo,hollywood-gpio"; | |
179 | reg = <0x0d8000c0 0x40>; | |
180 | gpio-controller; | |
9693d570 | 181 | ngpios = <24>; |
7a09116c | 182 | |
80873a0b JN |
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 | ||
f4ddc19a JN |
191 | interrupt-controller; |
192 | #interrupt-cells = <2>; | |
193 | interrupts = <10>; | |
194 | interrupt-parent = <&PIC1>; | |
195 | ||
7a09116c AH |
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 | ||
600ecc19 | 222 | control@d800100 { |
7a09116c | 223 | compatible = "nintendo,hollywood-control"; |
b11748e6 EGP |
224 | /* |
225 | * Both the address and length are wrong, according to | |
226 | * Wiibrew this should be <0x0d800000 0x400>, but it | |
562a610b EGP |
227 | * requires refactoring the PIC1, GPIO and OTP nodes |
228 | * before changing that. | |
b11748e6 EGP |
229 | */ |
230 | reg = <0x0d800100 0xa0>; | |
7a09116c AH |
231 | }; |
232 | ||
562a610b EGP |
233 | otp@d8001ec { |
234 | compatible = "nintendo,hollywood-otp"; | |
235 | reg = <0x0d8001ec 0x8>; | |
236 | }; | |
237 | ||
600ecc19 | 238 | disk@d806000 { |
7a09116c AH |
239 | compatible = "nintendo,hollywood-di"; |
240 | reg = <0x0d806000 0x40>; | |
241 | interrupts = <2>; | |
242 | }; | |
243 | }; | |
041413b8 JN |
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 | }; | |
8de7547e JN |
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 | }; | |
7a09116c AH |
271 | }; |
272 |