/*
 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/*
 * Integrated Power Management Chip
 */
&twl {
       compatible = "ti,twl4030";
       interrupt-controller;
       #interrupt-cells = <1>;

       rtc {
               compatible = "ti,twl4030-rtc";
               interrupts = <11>;
       };

       charger: bci {
               compatible = "ti,twl4030-bci";
               interrupts = <9>, <2>;
               bci3v1-supply = <&vusb3v1>;
       };

       watchdog {
               compatible = "ti,twl4030-wdt";
       };

       vaux1: regulator-vaux1 {
               compatible = "ti,twl4030-vaux1";
       };

       vaux2: regulator-vaux2 {
               compatible = "ti,twl4030-vaux2";
       };

       vaux3: regulator-vaux3 {
               compatible = "ti,twl4030-vaux3";
       };

       vaux4: regulator-vaux4 {
               compatible = "ti,twl4030-vaux4";
       };

       vcc: regulator-vdd1 {
               compatible = "ti,twl4030-vdd1";
               regulator-min-microvolt = <600000>;
               regulator-max-microvolt = <1450000>;
       };

       vdac: regulator-vdac {
               compatible = "ti,twl4030-vdac";
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <1800000>;
       };

       vio: regulator-vio {
               compatible = "ti,twl4030-vio";
       };

       vintana1: regulator-vintana1 {
               compatible = "ti,twl4030-vintana1";
       };

       vintana2: regulator-vintana2 {
               compatible = "ti,twl4030-vintana2";
       };

       vintdig: regulator-vintdig {
               compatible = "ti,twl4030-vintdig";
       };

       vmmc1: regulator-vmmc1 {
               compatible = "ti,twl4030-vmmc1";
               regulator-min-microvolt = <1850000>;
               regulator-max-microvolt = <3150000>;
       };

       vmmc2: regulator-vmmc2 {
               compatible = "ti,twl4030-vmmc2";
               regulator-min-microvolt = <1850000>;
               regulator-max-microvolt = <3150000>;
       };

       vusb1v5: regulator-vusb1v5 {
               compatible = "ti,twl4030-vusb1v5";
       };

       vusb1v8: regulator-vusb1v8 {
               compatible = "ti,twl4030-vusb1v8";
       };

       vusb3v1: regulator-vusb3v1 {
               compatible = "ti,twl4030-vusb3v1";
       };

       vpll1: regulator-vpll1 {
               compatible = "ti,twl4030-vpll1";
       };

       vpll2: regulator-vpll2 {
               compatible = "ti,twl4030-vpll2";
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <1800000>;
       };

       vsim: regulator-vsim {
               compatible = "ti,twl4030-vsim";
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <3000000>;
       };

       twl_gpio: gpio {
               compatible = "ti,twl4030-gpio";
               gpio-controller;
               #gpio-cells = <2>;
               interrupt-controller;
               #interrupt-cells = <1>;
       };

       usb2_phy: twl4030-usb {
               compatible = "ti,twl4030-usb";
               interrupts = <10>, <4>;
               usb1v5-supply = <&vusb1v5>;
               usb1v8-supply = <&vusb1v8>;
               usb3v1-supply = <&vusb3v1>;
               usb_mode = <1>;
               #phy-cells = <0>;
       };

       twl_pwm: pwm {
               compatible = "ti,twl4030-pwm";
               #pwm-cells = <2>;
       };

       twl_pwmled: pwmled {
               compatible = "ti,twl4030-pwmled";
               #pwm-cells = <2>;
       };

       twl_pwrbutton: pwrbutton {
               compatible = "ti,twl4030-pwrbutton";
               interrupts = <8>;
       };

       twl_keypad: keypad {
               compatible = "ti,twl4030-keypad";
               interrupts = <1>;
               keypad,num-rows = <8>;
               keypad,num-columns = <8>;
       };

       twl_madc: madc {
               compatible = "ti,twl4030-madc";
               interrupts = <3>;
               #io-channel-cells = <1>;
       };
};
