Texas Instruments TWL family

The TWLs are Integrated Power Management Chips.
Some version might contain much more analog function like
USB transceiver or Audio amplifier.
These chips are connected to an i2c bus.


Required properties:
- compatible : Must be "ti,twl4030";
  For Integrated power-management/audio CODEC device used in OMAP3
  based boards
- compatible : Must be "ti,twl6030";
  For Integrated power-management used in OMAP4 based boards
- interrupts : This i2c device has an IRQ line connected to the main SoC
- interrupt-controller : Since the twl support several interrupts internally,
  it is considered as an interrupt controller cascaded to the SoC one.
- #interrupt-cells = <1>;
- interrupt-parent : The parent interrupt controller.

Optional node:
- Child nodes contain in the twl. The twl family is made of several variants
  that support a different number of features.
  The children nodes will thus depend of the capability of the variant.


Example:
/*
 * Integrated Power Management Chip
 * http://www.ti.com/lit/ds/symlink/twl6030.pdf
 */
twl@48 {
    compatible = "ti,twl6030";
    reg = <0x48>;
    interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
    interrupt-controller;
    #interrupt-cells = <1>;
    interrupt-parent = <&gic>;
    #address-cells = <1>;
    #size-cells = <0>;

    twl_rtc {
        compatible = "ti,twl_rtc";
        interrupts = <11>;
        reg = <0>;
    };
};
