wii.dts 5.9 KB

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