/*
 * Copyright (C) 2011 Texas Instruments Incorporated - http://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>;
	};

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

	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>;
	};

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

	vmmc1: regulator-vmmc1 {
		compatible = "ti,twl4030-vmmc1";
		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";
	};

	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>;
	};

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

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