// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
 */

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

&cpu0 {
	vdd-supply = <&smps1_reg>;
};
