/*
 * Copyright (C) 2016 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
 * http://www.ti.com/lit/ds/symlink/tps65917-q1.pdf
 */

&tps65917 {
	compatible = "ti,tps65917";

	interrupt-controller;
	#interrupt-cells = <2>;

	ti,system-power-controller;

	tps65917_pmic {
		compatible = "ti,tps65917-pmic";

		smps1-in-supply = <&vsys_3v3>;
		smps2-in-supply = <&vsys_3v3>;
		smps3-in-supply = <&vsys_3v3>;
		smps4-in-supply = <&vsys_3v3>;
		smps5-in-supply = <&vsys_3v3>;
		ldo1-in-supply = <&vsys_3v3>;
		ldo2-in-supply = <&vsys_3v3>;
		ldo3-in-supply = <&vsys_3v3>;
		ldo4-in-supply = <&evm_5v0>;
		ldo5-in-supply = <&vsys_3v3>;

		tps65917_regulators: regulators {
			smps1_reg: smps1 {
				/* VDD_MPU */
				regulator-name = "smps1";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <1250000>;
				regulator-always-on;
				regulator-boot-on;
			};

			smps2_reg: smps2 {
				/* VDD_CORE */
				regulator-name = "smps2";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <1150000>;
				regulator-boot-on;
				regulator-always-on;
			};

			smps3_reg: smps3 {
				/* VDD_GPU IVA DSPEVE */
				regulator-name = "smps3";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <1250000>;
				regulator-boot-on;
				regulator-always-on;
			};

			smps4_reg: smps4 {
				/* VDDS1V8 */
				regulator-name = "smps4";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			smps5_reg: smps5 {
				/* VDD_DDR */
				regulator-name = "smps5";
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1_reg: ldo1 {
				/* LDO1_OUT --> SDIO  */
				regulator-name = "ldo1";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-allow-bypass;
			};

			ldo2_reg: ldo2 {
				regulator-name = "ldo2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-allow-bypass;
			};

			ldo3_reg: ldo3 {
				/* VDDA_1V8_PHY */
				regulator-name = "ldo3";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo5_reg: ldo5 {
				/* VDDA_1V8_PLL */
				regulator-name = "ldo5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			ldo4_reg: ldo4 {
				/* VDDA_3V_USB: VDDA_USBHS33 */
				regulator-name = "ldo4";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
			};
		};
	};

	tps65917_power_button {
		compatible = "ti,palmas-pwrbutton";
		interrupt-parent = <&tps65917>;
		interrupts = <1 IRQ_TYPE_NONE>;
		wakeup-source;
		ti,palmas-long-press-seconds = <6>;
	};
};

&usb2_phy1 {
	phy-supply = <&ldo4_reg>;
};

&usb2_phy2 {
	phy-supply = <&ldo4_reg>;
};

&dss {
	vdda_video-supply = <&ldo5_reg>;
};

&mmc1 {
	vqmmc-supply = <&ldo1_reg>;
};
