Commit 5440c005 authored by Konrad Dybcio's avatar Konrad Dybcio Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: sm8350-sagami: Add most RPMh regulators



Configure most RPMh-controlled regulators on SoMC Sagami. The missing
ones (on pm8350b and pm8008[ij]) will be configured when driver support
is added. Thankfully, it looks like PDX215 and PDX214 don't have any
differences when it comes to PM8350/PM8350C/PMR735a.

Signed-off-by: default avatarKonrad Dybcio <konrad.dybcio@somainline.org>
Signed-off-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221114143642.44839-1-konrad.dybcio@linaro.org
parent f98d1a3c
Loading
Loading
Loading
Loading
+350 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
 */

#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8350.dtsi"
#include "pm8350.dtsi"
#include "pm8350b.dtsi"
@@ -73,6 +74,16 @@ ramoops@ffc00000 {
			no-map;
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;

		regulator-always-on;
		regulator-boot-on;
	};
};

&adsp {
@@ -80,6 +91,345 @@ &adsp {
	firmware-name = "qcom/sm8350/Sony/sagami/adsp.mbn";
};

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pm8350-rpmh-regulators";
		qcom,pmic-id = "b";

		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vph_pwr>;
		vdd-s3-supply = <&vph_pwr>;
		vdd-s4-supply = <&vph_pwr>;
		vdd-s5-supply = <&vph_pwr>;
		vdd-s6-supply = <&vph_pwr>;
		vdd-s7-supply = <&vph_pwr>;
		vdd-s8-supply = <&vph_pwr>;
		vdd-s9-supply = <&vph_pwr>;
		vdd-s10-supply = <&vph_pwr>;
		vdd-s11-supply = <&vph_pwr>;
		vdd-s12-supply = <&vph_pwr>;

		vdd-l1-l4-supply = <&pm8350_s11>;
		vdd-l2-l7-supply = <&vreg_bob>;
		vdd-l3-l5-supply = <&vreg_bob>;
		vdd-l6-l9-l10-supply = <&pm8350_s11>;

		/*
		 * ARC regulators:
		 * S5 - mx.lvl
		 * S6 - gfx.lvl
		 * S9 - mxc.lvl
		 */

		pm8350_s10: smps10 {
			regulator-name = "pm8350_s10";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350_s11: smps11 {
			regulator-name = "pm8350_s11";
			regulator-min-microvolt = <752000>;
			regulator-max-microvolt = <1000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350_s12: smps12 {
			regulator-name = "pm8350_s12";
			regulator-min-microvolt = <1224000>;
			regulator-max-microvolt = <1360000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350_l1: ldo1 {
			regulator-name = "pm8350_l1";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <920000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350_l2: ldo2 {
			regulator-name = "pm8350_l2";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350_l3: ldo3 {
			regulator-name = "pm8350_l3";
			regulator-min-microvolt = <904000>;
			regulator-max-microvolt = <904000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* L4 - lmx.lvl (ARC) */

		pm8350_l5: ldo5 {
			regulator-name = "pm8350_l5";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <888000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
		};

		pm8350_l6: ldo6 {
			regulator-name = "pm8350_l6";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1208000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
		};

		pm8350_l7: ldo7 {
			regulator-name = "pm8350_l7";
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
		};

		/* L8 - lcx.lvl (ARC) */

		pm8350_l9: ldo9 {
			regulator-name = "pm8350_l9";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
		};
	};

	regulators-1 {
		compatible = "qcom,pm8350c-rpmh-regulators";
		qcom,pmic-id = "c";

		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vph_pwr>;
		vdd-s3-supply = <&vph_pwr>;
		vdd-s4-supply = <&vph_pwr>;
		vdd-s5-supply = <&vph_pwr>;
		vdd-s6-supply = <&vph_pwr>;
		vdd-s7-supply = <&vph_pwr>;
		vdd-s8-supply = <&vph_pwr>;
		vdd-s9-supply = <&vph_pwr>;
		vdd-s10-supply = <&vph_pwr>;

		vdd-l1-l12-supply = <&pm8350c_s1>;
		vdd-l2-l8-supply = <&pm8350c_s1>;
		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
		vdd-l6-l9-l11-supply = <&vreg_bob>;
		vdd-l10-supply = <&pm8350_s12>;

		vdd-bob-supply = <&vph_pwr>;

		pm8350c_s1: smps1 {
			regulator-name = "pm8350c_s1";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1952000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/* S2 - ebi.lvl (ARC) */

		pm8350c_s3: smps3 {
			regulator-name = "pm8350c_s3";
			regulator-min-microvolt = <300000>;
			regulator-max-microvolt = <704000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		/*
		 * ARC regulators:
		 * S4 - mss.lvl
		 * S6 - cx.lvl
		 * S8 - mmcx.lvl
		 */

		pm8350c_s10: smps10 {
			regulator-name = "pm8350c_s10";
			regulator-min-microvolt = <1048000>;
			regulator-max-microvolt = <1128000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l1: ldo1 {
			regulator-name = "pm8350c_l1";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l2: ldo2 {
			regulator-name = "pm8350c_l2";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l3: ldo3 {
			regulator-name = "pm8350c_l3";
			regulator-min-microvolt = <3304000>;
			regulator-max-microvolt = <3304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l4: ldo4 {
			regulator-name = "pm8350c_l4";
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l5: ldo5 {
			regulator-name = "pm8350c_l5";
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l6: ldo6 {
			regulator-name = "pm8350c_l6";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l7: ldo7 {
			regulator-name = "pm8350c_l7";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l8: ldo8 {
			regulator-name = "pm8350c_l8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l9: ldo9 {
			regulator-name = "pm8350c_l9";
			regulator-min-microvolt = <2960000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l10: ldo10 {
			regulator-name = "pm8350c_l10";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l11: ldo11 {
			regulator-name = "pm8350c_l11";
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l12: ldo12 {
			regulator-name = "pm8350c_l12";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		pm8350c_l13: ldo13 {
			regulator-name = "pm8350c_l13";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_bob: bob {
			regulator-name = "vreg_bob";
			regulator-min-microvolt = <3400000>;
			regulator-max-microvolt = <3960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
		};
	};

	/* TODO: Add pm8350b (just one ldo) once the driver part is in */

	regulators-2 {
		compatible = "qcom,pmr735a-rpmh-regulators";
		qcom,pmic-id = "e";

		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vph_pwr>;
		vdd-s3-supply = <&vph_pwr>;

		vdd-l1-l2-supply = <&pmr735a_s2>;
		vdd-l3-supply = <&pmr735a_s1>;
		vdd-l4-supply = <&pm8350c_s1>;
		vdd-l5-l6-supply = <&pm8350c_s1>;
		vdd-l7-bob-supply = <&vreg_bob>;

		pmr735a_s1: smps1 {
			regulator-name = "pmr735a_s1";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1280000>;
		};

		pmr735a_s2: smps2 {
			regulator-name = "pmr735a_s2";
			regulator-min-microvolt = <500000>;
			regulator-max-microvolt = <976000>;
		};

		pmr735a_s3: smps3 {
			regulator-name = "pmr735a_s3";
			regulator-min-microvolt = <2208000>;
			regulator-max-microvolt = <2352000>;
		};

		pmr735a_l1: ldo1 {
			regulator-name = "pmr735a_l1";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
		};

		pmr735a_l2: ldo2 {
			regulator-name = "pmr735a_l2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pmr735a_l3: ldo3 {
			regulator-name = "pmr735a_l3";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pmr735a_l4: ldo4 {
			regulator-name = "pmr735a_l4";
			regulator-min-microvolt = <1776000>;
			regulator-max-microvolt = <1872000>;
		};

		pmr735a_l5: ldo5 {
			regulator-name = "pmr735a_l5";
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
		};

		pmr735a_l6: ldo6 {
			regulator-name = "pmr735a_l6";
			regulator-min-microvolt = <480000>;
			regulator-max-microvolt = <904000>;
		};

		pmr735a_l7: ldo7 {
			regulator-name = "pmr735a_l7";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};
	};
};

&cdsp {
	status = "okay";
	firmware-name = "qcom/sm8350/Sony/sagami/cdsp.mbn";