
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 Processor (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.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

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

  see Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt

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

