ARM: dts: msm: Add proxy consumers for gx_gdsc dependencies on Sun

The gx_clkctl_gx_gdsc requires both gpu_cc_cx_gdsc and VDD_GX to access
its configuration registers. We access these registers during probe, so
we need to ensure these dependencies aren't disabled until after our
probe completes. Add proxy consumers for this.

After probe, the parent-supply will ensure VDD_GX is enabled before we
touch registers in the regulator_enable/disable paths. And for the CX
GDSC dependency, the client already enables it before the GX GDSC due to
historical functional requirements between the CX and GX sides.

Change-Id: I49f5654a8a86644074c76788de821eb8ae621d09
Signed-off-by: Mike Tipton <quic_mdtipton@quicinc.com>
This commit is contained in:
Mike Tipton
2023-11-21 08:08:20 -08:00
parent 19c08e46f5
commit f2fddff3f5
2 changed files with 8 additions and 0 deletions

View File

@@ -9,6 +9,7 @@
rpmh-regulator-gfxlvl {
compatible = "qcom,rpmh-arc-regulator";
qcom,resource-name = "gfx.lvl";
proxy-supply = <&VDD_GFX_LEVEL>;
VDD_GFX_LEVEL: S5D_LEVEL:
pm_v8d_s5_level: regulator-pm-v8d-s5-level {
@@ -20,6 +21,10 @@
<RPMH_REGULATOR_LEVEL_MAX>;
qcom,init-voltage-level =
<RPMH_REGULATOR_LEVEL_RETENTION>;
qcom,proxy-consumer-enable;
qcom,proxy-consumer-voltage =
<RPMH_REGULATOR_LEVEL_LOW_SVS
RPMH_REGULATOR_LEVEL_MAX>;
};
};

View File

@@ -1777,7 +1777,9 @@
clocks = <&gcc GCC_GPU_CFG_AHB_CLK>;
regulator-name = "gpu_cc_cx_gdsc";
parent-supply = <&VDD_CX_LEVEL>;
proxy-supply = <&gpu_cc_cx_gdsc>;
hw-ctrl-addr = <&gpu_cc_cx_gdsc_hw_ctrl>;
qcom,proxy-consumer-enable;
qcom,retain-regs;
qcom,support-cfg-gdscr;
};
@@ -1789,6 +1791,7 @@
clocks = <&gpucc GPU_CC_GX_AHB_FF_CLK>;
regulator-name = "gx_clkctl_gx_gdsc";
parent-supply = <&VDD_GFX_GFX_MXC_VOTER_LEVEL>;
reg-supply = <&gpu_cc_cx_gdsc>;
qcom,retain-regs;
qcom,support-cfg-gdscr;
};