/arch/powerpc/boot/dts/wii.dts

http://github.com/mirrors/linux · Device Tree · 256 lines · 180 code · 34 blank · 42 comment · 0 complexity · a5b4aa60f0cb87367fbe8804528e7837 MD5 · raw file

  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. GPIO: gpio@d8000c0 {
  149. #gpio-cells = <2>;
  150. compatible = "nintendo,hollywood-gpio";
  151. reg = <0x0d8000c0 0x40>;
  152. gpio-controller;
  153. ngpios = <24>;
  154. gpio-line-names =
  155. "POWER", "SHUTDOWN", "FAN", "DC_DC",
  156. "DI_SPIN", "SLOT_LED", "EJECT_BTN", "SLOT_IN",
  157. "SENSOR_BAR", "DO_EJECT", "EEP_CS", "EEP_CLK",
  158. "EEP_MOSI", "EEP_MISO", "AVE_SCL", "AVE_SDA",
  159. "DEBUG0", "DEBUG1", "DEBUG2", "DEBUG3",
  160. "DEBUG4", "DEBUG5", "DEBUG6", "DEBUG7";
  161. interrupt-controller;
  162. #interrupt-cells = <2>;
  163. interrupts = <10>;
  164. interrupt-parent = <&PIC1>;
  165. /*
  166. * This is commented out while a standard binding
  167. * for i2c over gpio is defined.
  168. */
  169. /*
  170. i2c-video {
  171. #address-cells = <1>;
  172. #size-cells = <0>;
  173. compatible = "i2c-gpio";
  174. gpios = <&GPIO 15 0
  175. &GPIO 14 0>;
  176. clock-frequency = <250000>;
  177. no-clock-stretching;
  178. scl-is-open-drain;
  179. sda-is-open-drain;
  180. sda-enforce-dir;
  181. AVE: audio-video-encoder@70 {
  182. compatible = "nintendo,wii-audio-video-encoder";
  183. reg = <0x70>;
  184. };
  185. };
  186. */
  187. };
  188. control@d800100 {
  189. compatible = "nintendo,hollywood-control";
  190. reg = <0x0d800100 0x300>;
  191. };
  192. disk@d806000 {
  193. compatible = "nintendo,hollywood-di";
  194. reg = <0x0d806000 0x40>;
  195. interrupts = <2>;
  196. };
  197. };
  198. gpio-leds {
  199. compatible = "gpio-leds";
  200. /* This is the blue LED in the disk drive slot */
  201. drive-slot {
  202. label = "wii:blue:drive_slot";
  203. gpios = <&GPIO 5 GPIO_ACTIVE_HIGH>;
  204. panic-indicator;
  205. };
  206. };
  207. gpio-keys {
  208. compatible = "gpio-keys";
  209. power {
  210. label = "Power Button";
  211. gpios = <&GPIO 0 GPIO_ACTIVE_HIGH>;
  212. linux,code = <KEY_POWER>;
  213. };
  214. eject {
  215. label = "Eject Button";
  216. gpios = <&GPIO 6 GPIO_ACTIVE_HIGH>;
  217. linux,code = <KEY_EJECTCD>;
  218. };
  219. };
  220. };