From 50888fb2e712dcec13d557cf91d1e86143a3e769 Mon Sep 17 00:00:00 2001 From: shengfei Xu Date: Tue, 28 Dec 2021 03:19:55 +0000 Subject: [PATCH] regulator: rk806: use dvs mode instead of sleep mode the rk806 sleep mode may cause the system to shut down unexpectedly. Signed-off-by: shengfei Xu Change-Id: I5e2b7ebe277d7e8ec417feac88be5c167657d833 --- drivers/regulator/rk806-regulator.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/rk806-regulator.c b/drivers/regulator/rk806-regulator.c index 1f257cbe4f66..329b654f75c0 100644 --- a/drivers/regulator/rk806-regulator.c +++ b/drivers/regulator/rk806-regulator.c @@ -1152,7 +1152,10 @@ static int __maybe_unused rk806_suspend(struct device *dev) for (i = RK806_ID_DCDC1; i < RK806_ID_END; i++) rk806_field_write(rk806, BUCK1_VSEL_CTR_SEL + i, CTR_BY_NO_EFFECT); - rk806_field_write(rk806, PWRCTRL1_FUN, PWRCTRL_SLP_FUN); + rk806_field_write(rk806, PWRCTRL1_FUN, PWRCTRL_DVS_FUN); + + for (i = RK806_ID_DCDC1; i < RK806_ID_END; i++) + rk806_field_write(rk806, BUCK1_VSEL_CTR_SEL + i, CTR_BY_PWRCTRL1); return 0; } @@ -1160,6 +1163,10 @@ static int __maybe_unused rk806_suspend(struct device *dev) static int __maybe_unused rk806_resume(struct device *dev) { struct rk806 *rk806 = dev_get_drvdata(dev->parent); + int i; + + for (i = RK806_ID_DCDC1; i < RK806_ID_END; i++) + rk806_field_write(rk806, BUCK1_VSEL_CTR_SEL + i, CTR_BY_NO_EFFECT); rk806_field_write(rk806, PWRCTRL1_FUN, PWRCTRL_NULL_FUN);