clk: qcom: gdsc-regulator: Update support to skip GDSC disable

Update gdsc_is_enable and gdsc_enable to return 0 for the GDSC
which needs only GDSC disable support from HLOS.

Change-Id: Ie1e9faf806f504fc56419c5c557d3063d031d804
Signed-off-by: Naveen Yadav <naveenky@codeaurora.org>
This commit is contained in:
Naveen Yadav 2020-05-12 19:32:02 +05:30
commit 6cf1bd4064

View file

@ -163,6 +163,9 @@ static int gdsc_is_enabled(struct regulator_dev *rdev)
if (!sc->toggle_logic)
return !sc->resets_asserted;
if (sc->skip_disable_before_enable)
return false;
return sc->is_gdsc_enabled;
}
@ -172,6 +175,9 @@ static int gdsc_enable(struct regulator_dev *rdev)
uint32_t regval, hw_ctrl_regval = 0x0;
int i, ret = 0;
if (sc->skip_disable_before_enable)
return 0;
if (sc->root_en || sc->force_root_en) {
clk_prepare_enable(sc->clocks[sc->root_clk_idx]);
sc->is_root_clk_voted = true;
@ -314,7 +320,6 @@ static int gdsc_enable(struct regulator_dev *rdev)
}
sc->is_gdsc_enabled = true;
sc->skip_disable_before_enable = false;
return ret;
}
@ -325,16 +330,6 @@ static int gdsc_disable(struct regulator_dev *rdev)
uint32_t regval;
int i, ret = 0, parent_enabled;
/*
* Protect GDSC against late_init disabling when the GDSC is enabled
* by an entity outside external to HLOS.
*/
if (sc->skip_disable_before_enable) {
dev_dbg(&rdev->dev, "Skip Disabling: %s\n", sc->rdesc.name);
sc->skip_disable_before_enable = false;
return 0;
}
if (rdev->supply) {
regulator_lock(rdev->supply->rdev);
parent_enabled = regulator_is_enabled(rdev->supply);