pmic: rk808: slove set voltage error
authorzhangqing <zhangqing@rock-chips.com>
Tue, 15 Sep 2015 14:20:56 +0000 (07:20 -0700)
committerGerrit Code Review <gerrit@rock-chips.com>
Tue, 15 Sep 2015 07:49:20 +0000 (15:49 +0800)
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 <zhangqing@rock-chips.com>
drivers/mfd/rk808.c

index 5b22ce0a13cf9f94a107b25ce8cbd299f7c69e07..c42c3af07fe97510b735c5402d871ca2144f84b9 100755 (executable)
@@ -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);