From cccf1792d7b70cffa3d2f424cdf4dafa50729741 Mon Sep 17 00:00:00 2001 From: zhangqing Date: Tue, 15 Sep 2015 07:20:56 -0700 Subject: [PATCH] pmic: rk808: slove set voltage error rk808 setting voltage had a overshoot question so we set voltage must step by step. support 12.5mv/step. Change-Id: Idfce7b57d6717e51afaff2c170eff7bd16de23af Signed-off-by: zhangqing --- drivers/mfd/rk808.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c index 5b22ce0a13cf..c42c3af07fe9 100755 --- a/drivers/mfd/rk808.c +++ b/drivers/mfd/rk808.c @@ -48,7 +48,7 @@ struct rk808 *g_rk808; #define DCDC_RAISE_VOL_BYSTEP 1 -#define DCDC_VOL_STEP 25000 //25mv +#define DCDC_VOL_STEP 12500 /*12.5mv*/ static struct mfd_cell rk808s[] = { { @@ -514,7 +514,7 @@ static int rk808_dcdc_set_voltage(struct regulator_dev *dev, val = rk808_dcdc_select_min_voltage(dev,vol_temp,vol_temp,buck); // printk("rk808_dcdc_set_voltage buck = %d vol_temp= %d old_voltage= %d min_uV =%d \n",buck,vol_temp,old_voltage,min_uV); ret = rk808_set_bits(rk808, rk808_BUCK_SET_VOL_REG(buck), BUCK_VOL_MASK, val); - }while(vol_temp != max_uV); + } while (vol_temp < max_uV); } else{ val = rk808_dcdc_select_min_voltage(dev,min_uV,max_uV,buck); -- 2.34.1