Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9be29b0 authored by Tirupathi Reddy's avatar Tirupathi Reddy
Browse files

ARM: dts: msm: Add pmic support for QCS605



QCS605 supports PM660 and PM8005 PMICs. Add the PMIC configuration
for the same. This includes:
	- regulator configuration
	- primary and secondary PMIC configuration

CRs-Fixed: 2154139
Change-Id: I25771874891419f58c9a8446488fb67abf9333e9
Signed-off-by: default avatarTirupathi Reddy <tirupath@codeaurora.org>
parent b14f1bf3
Loading
Loading
Loading
Loading
+92 −0
Original line number Diff line number Diff line
@@ -10,6 +10,10 @@
 * GNU General Public License for more details.
 */

#include "pm8005.dtsi"
#include "sdm670-pmic-overlay.dtsi"
#include "qcs605-pm660-pm8005-regulator.dtsi"

/ {
	cpus {
		/delete-node/ cpu@200;
@@ -111,3 +115,91 @@
		};
	};
};

&spmi_bus {
	/delete-node/ qcom,pm660l@2;
	/delete-node/ qcom,pm660l@3;
};

&thermal_zones {
	pm660l_tz {
		/delete-property/ thermal-sensors;
	};
};

&soc {
	qcom,turing@8300000 {
		/delete-property/ vdd_cx-supply;
	};

	qcom,lpass@62400000 {
		/delete-property/ vdd_cx-supply;
	};
};

&clock_cpucc {
	/delete-property/ vdd_l3_mx_ao-supply;
	/delete-property/ vdd_pwrcl_mx_ao-supply;
};

&clock_gcc {
	/delete-property/ vdd_cx-supply;
	/delete-property/ vdd_cx_ao-supply;
};

&clock_videocc {
	/delete-property/ vdd_cx-supply;
};

&clock_camcc {
	/delete-property/ vdd_mx-supply;
	/delete-property/ vdd_cx-supply;
};

&clock_dispcc {
	/delete-property/ vdd_cx-supply;
};

&clock_gpucc {
	/delete-property/ vdd_mx-supply;
	/delete-property/ vdd_cx-supply;
};

&pil_modem {
	/delete-property/ vdd_mx-supply;
	/delete-property/ vdd_cx-supply;
	/delete-property/ vdd_mss-supply;
};

&clock_gfx {
	/delete-property/ vdd_gfx-supply;
};

&gpu_gx_gdsc {
	/delete-property/ parent-supply;
};

&mdss_dsi_phy0 {
	/delete-property/ vdda-0p9-supply;
};

&mdss_dsi_phy1 {
	/delete-property/ vdda-0p9-supply;
};

&sde_dp {
	/delete-property/ vdda-0p9-supply;
};

&qusb_phy0 {
	/delete-property/ vdd-supply;
	/delete-property/ vdda33-supply;
};

&usb_qmp_dp_phy {
	/delete-property/ vdd-supply;
};

&pm660_pdphy {
	/delete-property/ vdd-pdphy-supply;
};
+474 −0
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR  PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

&soc {
	/* Delete all regulators */
	/delete-node/ rpmh-regulator-smpa4;
	/delete-node/ rpmh-regulator-modemlvl;
	/delete-node/ rpmh-regulator-smpa6;
	/delete-node/ rpmh-regulator-mxlvl;
	/delete-node/ rpmh-regulator-gfxlvl;
	/delete-node/ rpmh-regulator-cxlvl;
	/delete-node/ rpmh-regulator-ldoa1;
	/delete-node/ rpmh-regulator-ldoa2;
	/delete-node/ rpmh-regulator-ldoa3;
	/delete-node/ rpmh-regulator-ldoa5;
	/delete-node/ rpmh-regulator-ldoa6;
	/delete-node/ rpmh-regulator-ldoa7;
	/delete-node/ rpmh-regulator-ldoa8;
	/delete-node/ rpmh-regulator-ldoa9;
	/delete-node/ rpmh-regulator-ldoa10;
	/delete-node/ rpmh-regulator-ldoa11;
	/delete-node/ rpmh-regulator-ldoa12;
	/delete-node/ rpmh-regulator-ldoa13;
	/delete-node/ rpmh-regulator-ldoa14;
	/delete-node/ rpmh-regulator-ldoa15;
	/delete-node/ rpmh-regulator-ldoa16;
	/delete-node/ rpmh-regulator-ldoa17;
	/delete-node/ rpmh-regulator-ldoa19;
	/delete-node/ rpmh-regulator-ldob1;
	/delete-node/ rpmh-regulator-ldob2;
	/delete-node/ rpmh-regulator-ldob3;
	/delete-node/ rpmh-regulator-ldob4;
	/delete-node/ rpmh-regulator-ldob5;
	/delete-node/ rpmh-regulator-ldob6;
	/delete-node/ rpmh-regulator-ldob7;
	/delete-node/ rpmh-regulator-ldob8;
	/delete-node/ rpmh-regulator-lcxlvl;
	/delete-node/ rpmh-regulator-lmxlvl;
	/delete-node/ rpmh-regulator-bobb1;

	/* RPMh regulators */

	/* pm660 S2 - VDD_MX supply */
	rpmh-regulator-mxlvl {
		compatible = "qcom,rpmh-arc-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "mx.lvl";
		pm660_s2_level: regulator-pm660-s2 {
			regulator-name = "pm660_s2_level";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <RPMH_REGULATOR_LEVEL_OFF>;
			regulator-max-microvolt = <RPMH_REGULATOR_LEVEL_MAX>;
		};

		pm660_s2_level_ao: regulator-pm660-s2-level-ao {
			regulator-name = "pm660_s2_level_ao";
			qcom,set = <RPMH_REGULATOR_SET_ACTIVE>;
			regulator-min-microvolt = <RPMH_REGULATOR_LEVEL_OFF>;
			regulator-max-microvolt = <RPMH_REGULATOR_LEVEL_MAX>;
		};

		mx_cdev: mx-cdev-lvl {
			compatible = "qcom,regulator-cooling-device";
			regulator-cdev-supply = <&pm660_s2_level>;
			regulator-levels = <RPMH_REGULATOR_LEVEL_NOM
					RPMH_REGULATOR_LEVEL_OFF>;
			#cooling-cells = <2>;
		};
	};

	rpmh-regulator-smpa4 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "smpa4";
		pm660_s4: regulator-pm660-s4 {
			regulator-name = "pm660_s4";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1640000>;
			regulator-max-microvolt = <2040000>;
			qcom,init-voltage = <1640000>;
		};
	};

	/* pm8005 S1 + S4 - VDD_CX supply */
	rpmh-regulator-cxlvl {
		compatible = "qcom,rpmh-arc-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "cx.lvl";
		pm8005_s1_level-parent-supply = <&pm660_s2_level>;
		pm8005_s1_level_ao-parent-supply = <&pm660_s2_level_ao>;
		pm8005_s1_level: regulator-pm8005-s1-level {
			regulator-name = "pm8005_s1_level";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <RPMH_REGULATOR_LEVEL_OFF>;
			regulator-max-microvolt = <RPMH_REGULATOR_LEVEL_MAX>;
			qcom,min-dropout-voltage-level = <(-1)>;
		};

		pm8005_s1_level_ao: regulator-pm8005-s1-level-ao {
			regulator-name = "pm8005_s1_level_ao";
			qcom,set = <RPMH_REGULATOR_SET_ACTIVE>;
			regulator-min-microvolt = <RPMH_REGULATOR_LEVEL_OFF>;
			regulator-max-microvolt = <RPMH_REGULATOR_LEVEL_MAX>;
			qcom,min-dropout-voltage-level = <(-1)>;
		};

		cx_cdev: regulator-cdev {
			compatible = "qcom,rpmh-reg-cdev";
			mboxes = <&qmp_aop 0>;
			qcom,reg-resource-name = "cx";
			#cooling-cells = <2>;
		};
	};

	rpmh-regulator-smpc2 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "smpc2";
		pm8005_s2: regulator-pm8005-s2 {
			regulator-name = "pm8005_s2";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1200000>;
			qcom,init-voltage = <1000000>;
		};
	};

	/* pm8005 S3 - VDD_GFX supply */
	rpmh-regulator-gfxlvl {
		compatible = "qcom,rpmh-arc-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "gfx.lvl";
		pm8005_s3_level: regulator-pm8005-s3 {
			regulator-name = "pm8005_s3_level";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt
				= <RPMH_REGULATOR_LEVEL_MIN_SVS>;
			regulator-max-microvolt
				= <RPMH_REGULATOR_LEVEL_MAX>;
			qcom,init-voltage-level
				= <RPMH_REGULATOR_LEVEL_MIN_SVS>;
		};
	};

	rpmh-regulator-ldoa1 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa1";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l1: regulator-pm660-l1 {
			regulator-name = "pm660_l1";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
			qcom,init-voltage = <800000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa2 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa2";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l2: regulator-pm660-l2 {
			regulator-name = "pm660_l2";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1144000>;
			regulator-max-microvolt = <1256000>;
			qcom,init-voltage = <1144000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa3 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa3";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l3: regulator-pm660-l3 {
			regulator-name = "pm660_l3";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1352000>;
			qcom,init-voltage = <1200000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa5 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa5";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l5: regulator-pm660-l5 {
			regulator-name = "pm660_l5";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1304000>;
			qcom,init-voltage = <1200000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa6 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa6";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l6: regulator-pm660-l6 {
			regulator-name = "pm660_l6";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			qcom,init-voltage = <880000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	/* pm660 L7 = VDD_LPI_CX supply */
	rpmh-regulator-lcxlvl {
		compatible = "qcom,rpmh-arc-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "lcx.lvl";
		pm660_l7_level: regulator-pm660-l7-level {
			regulator-name = "pm660_l7_level";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <RPMH_REGULATOR_LEVEL_OFF>;
			regulator-max-microvolt = <RPMH_REGULATOR_LEVEL_MAX>;
		};
	};

	rpmh-regulator-ldoa8 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa8";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l8: regulator-pm660-l8 {
			regulator-name = "pm660_l8";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1952000>;
			qcom,init-voltage = <1696000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa9 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa9";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l9: regulator-pm660-l9 {
			regulator-name = "pm660_l9";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1616000>;
			regulator-max-microvolt = <1984000>;
			qcom,init-voltage = <1616000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa10 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa10";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l10: regulator-pm660-l10 {
			regulator-name = "pm660_l10";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1952000>;
			qcom,init-voltage = <1696000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa11 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa11";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l11: regulator-pm660-l11 {
			regulator-name = "pm660_l11";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1904000>;
			qcom,init-voltage = <1800000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa12 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa12";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l12: regulator-pm660-l12 {
			regulator-name = "pm660_l12";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1616000>;
			regulator-max-microvolt = <1984000>;
			qcom,init-voltage = <1616000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa13 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa13";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l13: regulator-pm660-l13 {
			regulator-name = "pm660_l13";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1904000>;
			qcom,init-voltage = <1696000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa14 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa14";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l14: regulator-pm660-l14 {
			regulator-name = "pm660_l14";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1696000>;
			regulator-max-microvolt = <1904000>;
			qcom,init-voltage = <1696000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa15 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa15";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l15: regulator-pm660-l15 {
			regulator-name = "pm660_l15";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <2896000>;
			regulator-max-microvolt = <3000000>;
			qcom,init-voltage = <2896000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa16 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa16";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l16: regulator-pm660-l16 {
		regulator-name = "pm660_l16";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <2896000>;
			regulator-max-microvolt = <3104000>;
			qcom,init-voltage = <2896000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa17 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa17";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l17: regulator-pm660-l17 {
			regulator-name = "pm660_l17";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <2920000>;
			regulator-max-microvolt = <3232000>;
			qcom,init-voltage = <2920000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa18 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa18";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l18: regulator-pm660-l18 {
			regulator-name = "pm660_l18";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3000000>;
			qcom,init-voltage = <1800000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};

	rpmh-regulator-ldoa19 {
		compatible = "qcom,rpmh-vrm-regulator";
		mboxes = <&apps_rsc 0>;
		qcom,resource-name = "ldoa19";
		qcom,supported-modes =
			<RPMH_REGULATOR_MODE_LDO_LPM
			 RPMH_REGULATOR_MODE_LDO_HPM>;
		qcom,mode-threshold-currents = <0 1>;
		pm660_l19: regulator-pm660-l19 {
			regulator-name = "pm660_l19";
			qcom,set = <RPMH_REGULATOR_SET_ALL>;
			regulator-min-microvolt = <2944000>;
			regulator-max-microvolt = <3304000>;
			qcom,init-voltage = <2944000>;
			qcom,init-mode = <RPMH_REGULATOR_MODE_LDO_LPM>;
		};
	};
};