From f2fddff3f5943daba5e6d979772a77480137eac1 Mon Sep 17 00:00:00 2001 From: Mike Tipton Date: Tue, 21 Nov 2023 08:08:20 -0800 Subject: [PATCH] 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 --- qcom/sun-regulators.dtsi | 5 +++++ qcom/sun.dtsi | 3 +++ 2 files changed, 8 insertions(+) diff --git a/qcom/sun-regulators.dtsi b/qcom/sun-regulators.dtsi index c007719c..409e297d 100644 --- a/qcom/sun-regulators.dtsi +++ b/qcom/sun-regulators.dtsi @@ -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 @@ ; qcom,init-voltage-level = ; + qcom,proxy-consumer-enable; + qcom,proxy-consumer-voltage = + ; }; }; diff --git a/qcom/sun.dtsi b/qcom/sun.dtsi index 4515cdce..75e6fadd 100644 --- a/qcom/sun.dtsi +++ b/qcom/sun.dtsi @@ -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; };