
Nintendo Wii device tree
========================

0) The root node

  This node represents the Nintendo Wii video game console.

  Required properties:

   - model : Should be "nintendo,wii"
   - compatible : Should be "nintendo,wii"

1) The "hollywood" node

  This node represents the multi-function "Hollywood" chip, which packages
  many of the devices found in the Nintendo Wii.

  Required properties:

   - compatible : Should be "nintendo,hollywood"

1.a) The Video Interface (VI) node

  Represents the interface between the graphics processor and a external
  video encoder.

  Required properties:

   - compatible : should be "nintendo,hollywood-vi","nintendo,flipper-vi"
   - reg : should contain the VI registers location and length
   - interrupts : should contain the VI interrupt

1.b) The Processor Interface (PI) node

  Represents the data and control interface between the main processor
  and graphics and audio processor.

  Required properties:

  - compatible : should be "nintendo,hollywood-pi","nintendo,flipper-pi"
  - reg : should contain the PI registers location and length

1.b.i) The "Flipper" interrupt controller node

  Represents the "Flipper" interrupt controller within the "Hollywood" chip.
  The node for the "Flipper" interrupt controller must be placed under
  the PI node.

  Required properties:

  - #interrupt-cells : <1>
  - compatible : should be "nintendo,flipper-pic"
  - interrupt-controller

1.c) The Digital Signal Procesor (DSP) node

  Represents the digital signal processor interface, designed to offload
  audio related tasks.

  Required properties:

   - compatible : should be "nintendo,hollywood-dsp","nintendo,flipper-dsp"
   - reg : should contain the DSP registers location and length
   - interrupts : should contain the DSP interrupt

1.d) The Serial Interface (SI) node

  Represents the interface to the four single bit serial interfaces.
  The SI is a proprietary serial interface used normally to control gamepads.
  It's NOT a RS232-type interface.

  Required properties:

   - compatible : should be "nintendo,hollywood-si","nintendo,flipper-si"
   - reg : should contain the SI registers location and length
   - interrupts : should contain the SI interrupt

1.e) The Audio Interface (AI) node

  Represents the interface to the external 16-bit stereo digital-to-analog
  converter.

  Required properties:

   - compatible : should be "nintendo,hollywood-ai","nintendo,flipper-ai"
   - reg : should contain the AI registers location and length
   - interrupts : should contain the AI interrupt

1.f) The External Interface (EXI) node

  Represents the multi-channel SPI-like interface.

  Required properties:

   - compatible : should be "nintendo,hollywood-exi","nintendo,flipper-exi"
   - reg : should contain the EXI registers location and length
   - interrupts : should contain the EXI interrupt

1.g) The Open Host Controller Interface (OHCI) nodes

  Represent the USB 1.x Open Host Controller Interfaces.

  Required properties:

   - compatible : should be "nintendo,hollywood-usb-ohci","usb-ohci"
   - reg : should contain the OHCI registers location and length
   - interrupts : should contain the OHCI interrupt

1.h) The Enhanced Host Controller Interface (EHCI) node

  Represents the USB 2.0 Enhanced Host Controller Interface.

  Required properties:

   - compatible : should be "nintendo,hollywood-usb-ehci","usb-ehci"
   - reg : should contain the EHCI registers location and length
   - interrupts : should contain the EHCI interrupt

1.i) The Secure Digital Host Controller Interface (SDHCI) nodes

  Represent the Secure Digital Host Controller Interfaces.

  Required properties:

   - compatible : should be "nintendo,hollywood-sdhci","sdhci"
   - reg : should contain the SDHCI registers location and length
   - interrupts : should contain the SDHCI interrupt

1.j) The Inter-Processor Communication (IPC) node

  Represent the Inter-Processor Communication interface. This interface
  enables communications between the Broadway and the Starlet processors.

   - compatible : should be "nintendo,hollywood-ipc"
   - reg : should contain the IPC registers location and length
   - interrupts : should contain the IPC interrupt

1.k) The "Hollywood" interrupt controller node

  Represents the "Hollywood" interrupt controller within the
  "Hollywood" chip.

  Required properties:

  - #interrupt-cells : <1>
  - compatible : should be "nintendo,hollywood-pic"
  - reg : should contain the controller registers location and length
  - interrupt-controller
  - interrupts : should contain the cascade interrupt of the "flipper" pic
  - interrupt-parent: should contain the phandle of the "flipper" pic

1.l) The General Purpose I/O (GPIO) controller node

  Represents the dual access 32 GPIO controller interface.

  Required properties:

  - #gpio-cells : <2>
  - compatible : should be "nintendo,hollywood-gpio"
  - reg : should contain the IPC registers location and length
  - gpio-controller

1.m) The control node

  Represents the control interface used to setup several miscellaneous
  settings of the "Hollywood" chip like boot memory mappings, resets,
  disk interface mode, etc.

  Required properties:

   - compatible : should be "nintendo,hollywood-control"
   - reg : should contain the control registers location and length

1.n) The Disk Interface (DI) node

  Represents the interface used to communicate with mass storage devices.

  Required properties:

   - compatible : should be "nintendo,hollywood-di"
   - reg : should contain the DI registers location and length
   - interrupts : should contain the DI interrupt

