Add the vdd-*-supply properties to the rpmh-regulators nodes, so that
the parent regulators can be enabled when needed.

The regulators s4a and s6a are a bit special. They feed back into
PM6350, but are not modelled as regulators (or anything else?), so they
also can't be added as vdd-*-supply. It would seem to be possible to add
them with their "Default on booting voltage" from the PM6350 Data Sheet
in the dts, but I'm not sure this is desired.

And document what the "missing" regulators are used for.

Signed-off-by: Luca Weiss <[email protected]>
---
 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 46 +++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts 
b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
index 5d20ad93b0c5..a1556d802a8b 100644
--- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
+++ b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
@@ -78,6 +78,17 @@ lcdb_dummy: regulator-lcdb-dummy {
                regulator-max-microvolt = <5500000>;
        };
 
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
        reserved-memory {
                /*
                 * The rmtfs memory region in downstream is 'dynamically 
allocated'
@@ -296,6 +307,15 @@ &adsp {
 &apps_rsc {
        regulators-0 {
                compatible = "qcom,pm6350-rpmh-regulators";
+
+               vdd-l2-l5-l7-supply = <&vreg_s2a>;
+               vdd-l3-l6-l8-l9-l10-supply = <&vreg_bob>;
+               vdd-l11-supply = <&vreg_s2a>;
+               vdd-l12-l14-supply = <&vreg_s2a>;
+               vdd-l15-l19-l22-supply = <&vreg_s8e>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+
                qcom,pmic-id = "a";
 
                vreg_s1a: smps1 {
@@ -310,6 +330,14 @@ vreg_s2a: smps2 {
                        regulator-max-microvolt = <2048000>;
                };
 
+               /*
+                * s3a (smps3) is gfx.lvl
+                * s4a (smps4) is supply for vdd-l4 & vdd-l13
+                * s5a (smps5) is mx.lvl
+                * s6a (smps6) is supply for vdd-l16 & vdd-l18-l20-l21
+                * l1a (ldo1) is lcx.lvl
+                */
+
                vreg_l2a: ldo2 {
                        regulator-name = "vreg_l2a";
                        regulator-min-microvolt = <1503000>;
@@ -408,6 +436,8 @@ vreg_l16a: ldo16 {
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               /* l17a (ldo17) is lmx.lvl */
+
                vreg_l18a: ldo18 {
                        regulator-name = "vreg_l18a";
                        regulator-min-microvolt = <788000>;
@@ -446,8 +476,24 @@ vreg_l22a: ldo22 {
 
        regulators-1 {
                compatible = "qcom,pm6150l-rpmh-regulators";
+
+               vdd-bob-supply = <&vph_pwr>;
+               vdd-l1-l8-supply = <&vreg_s2a>;
+               vdd-l2-l3-supply = <&vreg_s8e>;
+               vdd-l4-l5-l6-supply = <&vreg_bob>;
+               vdd-l7-l11-supply = <&vreg_bob>;
+               vdd-l9-l10-supply = <&vreg_bob>;
+               vdd-s8-supply = <&vph_pwr>;
+
                qcom,pmic-id = "e";
 
+               /*
+                * s1e-s2e (smps1-smps2) is cx.lvl
+                * s3e-s4e (smps3-smps4) is VDD_APC1
+                * s5e (smps5) is VDD_APC0
+                * s6e-s7e (smps6-smps7) is mss.lvl
+                */
+
                vreg_s8e: smps8 {
                        regulator-name = "vreg_s8e";
                        regulator-min-microvolt = <313000>;

-- 
2.55.0


Reply via email to