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

Commit 4b5d64db authored by Tirupathi Reddy's avatar Tirupathi Reddy Committed by Anirudh Ghayal
Browse files

ARM: dts: msm: add PMS405 peripherals for QCS405



QCS405 uses PMS405 PMIC. Add PMS405 peripherals to QCS405
device tree.

Also add RPM managed regulator devices for QCS405 so that
the client requests made for these regulators are aggregated
by the RPM processor along with the requests from other
processors.

QCS405 rumi platform does not contain PMS405. Remove PMS405
peripherals and RPM managed regulator devices from QCS405
RUMI device tree and add stub regulator devices.

Change-Id: Id8a98091e719a29e66c441d3652f6c27e8af596b
Signed-off-by: default avatarTirupathi Reddy <tirupath@codeaurora.org>
Signed-off-by: default avatarAnirudh Ghayal <aghayal@codeaurora.org>
parent 3f519f34
Loading
Loading
Loading
Loading
+259 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018, 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 A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <dt-bindings/interrupt-controller/arm-gic.h>

&rpm_bus {
	/* PMS405 S1 - VDD_MX/CX supply */
	rpm-regulator-smpa1 {
		status = "okay";
		pms405_s1_level: regulator-s1-level {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_s1_level";
			qcom,set = <3>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-level;
		};

		pms405_s1_floor_level: regulator-s1-floor-level {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_s1_floor_level";
			qcom,set = <3>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-floor-level;
			qcom,always-send-voltage;
		};

		pms405_s1_level_ao: regulator-s1-level-ao {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_s1_level_ao";
			qcom,set = <1>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-level;
		};
	};

	/* PMS405 S2 - VDD_LPI_CX supply */
	rpm-regulator-smpa2 {
		status = "okay";
		pms405_s2_level: regulator-s2-level {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_s2_level";
			qcom,set = <3>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-level;
		};

		pms405_s2_floor_level: regulator-s2-floor-level {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_s2_floor_level";
			qcom,set = <3>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-floor-level;
			qcom,always-send-voltage;
		};
	};

	rpm-regulator-smpa4 {
		status = "okay";
		pms405_s4: regulator-s4 {
			regulator-min-microvolt = <1728000>;
			regulator-max-microvolt = <1920000>;
			qcom,init-voltage = <1728000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa1 {
		status = "okay";
		pms405_l1: regulator-l1 {
			regulator-min-microvolt = <1240000>;
			regulator-max-microvolt = <1352000>;
			qcom,init-voltage = <1240000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa2 {
		status = "okay";
		pms405_l2: regulator-l2 {
			regulator-min-microvolt = <1048000>;
			regulator-max-microvolt = <1280000>;
			qcom,init-voltage = <1048000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa3 {
		status = "okay";
		pms405_l3: regulator-l3 {
			regulator-min-microvolt = <976000>;
			regulator-max-microvolt = <1160000>;
			qcom,init-voltage = <976000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa4 {
		status = "okay";
		pms405_l4: regulator-l4 {
			regulator-min-microvolt = <1144000>;
			regulator-max-microvolt = <1256000>;
			qcom,init-voltage = <1144000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa5 {
		status = "okay";
		pms405_l5: regulator-l5 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,init-voltage = <1800000>;
			status = "okay";
		};

		pms405_l5_ao: regulator-l5-ao {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_l5_ao";
			qcom,set = <1>;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,init-voltage = <1800000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa6 {
		status = "okay";
		pms405_l6: regulator-l6 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1896000>;
			qcom,init-voltage = <1704000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa7 {
		status = "okay";
		pms405_l7: regulator-l7 {
			regulator-min-microvolt = <1616000>;
			regulator-max-microvolt = <3000000>;
			qcom,init-voltage = <1616000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa8 {
		status = "okay";
		pms405_l8: regulator-l8 {
			regulator-min-microvolt = <1136000>;
			regulator-max-microvolt = <1352000>;
			qcom,init-voltage = <1136000>;
			status = "okay";
		};
	};

	/* PMS405 L9 - VDD_LPI_MX supply */
	rpm-regulator-ldoa9 {
		status = "okay";
		pms405_l9_level: regulator-l9-level {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_l9_level";
			qcom,set = <3>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-level;
		};

		pms405_l9_floor_level: regulator-l9-floor-level {
			compatible = "qcom,rpm-smd-regulator";
			regulator-name = "pms405_l9_floor_level";
			qcom,set = <3>;
			regulator-min-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
			regulator-max-microvolt =
					<RPM_SMD_REGULATOR_LEVEL_BINNING>;
			qcom,use-voltage-floor-level;
			qcom,always-send-voltage;
		};
	};

	rpm-regulator-ldoa10 {
		status = "okay";
		pms405_l10: regulator-l10 {
			regulator-min-microvolt = <2936000>;
			regulator-max-microvolt = <3088000>;
			qcom,init-voltage = <2936000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa11 {
		status = "okay";
		pms405_l11: regulator-l11 {
			regulator-min-microvolt = <2696000>;
			regulator-max-microvolt = <3304000>;
			qcom,init-voltage = <2696000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa12 {
		status = "okay";
		pms405_l12: regulator-l12 {
			regulator-min-microvolt = <2968000>;
			regulator-max-microvolt = <3300000>;
			qcom,init-voltage = <2968000>;
			status = "okay";
		};
	};

	rpm-regulator-ldoa13 {
		status = "okay";
		pms405_l13: regulator-l13 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3300000>;
			qcom,init-voltage = <3000000>;
			status = "okay";
		};
	};
};

/* Stub regulators */
/ {
	/* VDD_APC supply */
	apc_vreg_corner: regulator-apc-corner {
		compatible = "qcom,stub-regulator";
		regulator-name = "apc_corner";
		regulator-min-microvolt = <1>;
		regulator-max-microvolt = <3>;
	};
};
+29 −0
Original line number Diff line number Diff line
@@ -53,3 +53,32 @@
		dr_mode = "peripheral";
	};
};

&rpm_bus {
	/delete-node/ rpm-regulator-smpa1;
	/delete-node/ rpm-regulator-smpa2;
	/delete-node/ rpm-regulator-smpa4;
	/delete-node/ rpm-regulator-ldoa1;
	/delete-node/ rpm-regulator-ldoa2;
	/delete-node/ rpm-regulator-ldoa3;
	/delete-node/ rpm-regulator-ldoa4;
	/delete-node/ rpm-regulator-ldoa5;
	/delete-node/ rpm-regulator-ldoa6;
	/delete-node/ rpm-regulator-ldoa7;
	/delete-node/ rpm-regulator-ldoa8;
	/delete-node/ rpm-regulator-ldoa9;
	/delete-node/ rpm-regulator-ldoa10;
	/delete-node/ rpm-regulator-ldoa11;
	/delete-node/ rpm-regulator-ldoa12;
	/delete-node/ rpm-regulator-ldoa13;
};

&soc {
	/delete-node/ qcom,spmi@200f000;
};

&rpm_bus {
	rpm-standalone;
};

#include "qcs405-stub-regulator.dtsi"
+186 −0
Original line number Diff line number Diff line
/* Copyright (c) 2018, 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 A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/* Stub regulators */

/ {
	/* PMS405_S1 - VDD_MX/CX supply */
	pms405_s1_level: regulator-pms405-s1-level {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_s1_level";
		qcom,hpm-min-load = <100000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	pms405_s1_floor_level: regulator-pms405-s1-floor-level {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_s1_floor_level";
		qcom,hpm-min-load = <100000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	pms405_s1_level_ao: regulator-pms405-s1-level-ao {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_s1_level_ao";
		qcom,hpm-min-load = <100000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	/* PMS405_S2 - VDD_LPI_CX supply */
	pms405_s2_level: regulator-pms405-s2-level {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_s2_level";
		qcom,hpm-min-load = <100000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	pms405_s2_floor_level: regulator-pms405-s2-floor-level {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_s2_floor_level";
		qcom,hpm-min-load = <100000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	pms405_s4: regulator-pms405-s4 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_s4";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1728000>;
		regulator-max-microvolt = <1920000>;
	};

	pms405_l1: regulator-pms405-l1 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l1";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1240000>;
		regulator-max-microvolt = <1352000>;
	};

	pms405_l2: regulator-pms405-l2 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l2";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1048000>;
		regulator-max-microvolt = <1280000>;
	};

	pms405_l3: regulator-pms405-l3 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l3";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <976000>;
		regulator-max-microvolt = <1160000>;
	};

	pms405_l4: regulator-pms405-l4 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l4";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1144000>;
		regulator-max-microvolt = <1256000>;
	};

	pms405_l5: regulator-pms405-l5 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l5";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	pms405_l5_ao: regulator-pms405-l5-ao {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l5_ao";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	pms405_l6: regulator-pms405-l6 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l6";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1704000>;
		regulator-max-microvolt = <1896000>;
	};

	pms405_l7: regulator-pms405-l7 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l7";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1616000>;
		regulator-max-microvolt = <3000000>;
	};

	pms405_l8: regulator-pms405-l8 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l8";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <1136000>;
		regulator-max-microvolt = <1352000>;
	};

	/* PMS405 L9 - VDD_LPI_MX supply */
	pms405_l9_level: regulator-pms405-l9-level {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l9_level";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	pms405_l9_floor_level: regulator-pms405-l9-floor-level {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l9_floor_level";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
		regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
	};

	pms405_l10: regulator-pms405-l10 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l10";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <2936000>;
		regulator-max-microvolt = <3088000>;
	};

	pms405_l11: regulator-pms405-l11 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l11";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <2696000>;
		regulator-max-microvolt = <3304000>;
	};

	pms405_l12: regulator-pms405-l12 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l12";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <2968000>;
		regulator-max-microvolt = <3300000>;
	};

	pms405_l13: regulator-pms405-l13 {
		compatible = "qcom,stub-regulator";
		regulator-name = "pms405_l13";
		qcom,hpm-min-load = <10000>;
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3300000>;
	};
};
+29 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#include <dt-bindings/clock/qcom,gcc-qcs405.h>
#include <dt-bindings/clock/qcom,cpu-qcs405.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

/ {
@@ -209,6 +210,31 @@
		qcom,save-reg;
	};

	rpm_bus: qcom,rpm-smd {
		compatible = "qcom,rpm-smd";
		rpm-channel-name = "rpm_requests";
		rpm-channel-type = <15>; /* SMD_APPS_RPM */
	};

	spmi_bus: qcom,spmi@200f000 {
		compatible = "qcom,spmi-pmic-arb";
		reg = <0x200f000 0x1000>,
			<0x2400000 0x800000>,
			<0x2c00000 0x800000>,
			<0x3800000 0x200000>,
			<0x200a000 0x2100>;
		reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
		interrupt-names = "periph_irq";
		interrupts = <GIC_SPI 190 IRQ_TYPE_NONE>;
		qcom,ee = <0>;
		qcom,channel = <0>;
		#address-cells = <2>;
		#size-cells = <0>;
		interrupt-controller;
		#interrupt-cells = <4>;
		cell-index = <0>;
	};

	qcom,wdt@b017000 {
		compatible = "qcom,msm-watchdog";
		reg = <0xb017000 0x1000>;
@@ -318,6 +344,9 @@

#include "qcs405-gdsc.dtsi"
#include "qcs405-thermal.dtsi"
#include "pms405.dtsi"
#include "pms405-rpm-regulator.dtsi"
#include "qcs405-regulator.dtsi"

&gdsc_mdss {
	status = "ok";