power: rk818-charger: fix input current 80ma define error
authorJianhong Chen <chenjh@rock-chips.com>
Wed, 14 Jun 2017 03:03:42 +0000 (11:03 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 21 Jun 2017 07:07:08 +0000 (15:07 +0800)
1. input current 800ma should be 80ma, it's safe to change,
   because 800ma was not used;
2. set lowest one as default value when decode charge parameter.

Change-Id: I1683ebff708a62db2711b40f8f449f07936245f4
Signed-off-by: Jianhong Chen <chenjh@rock-chips.com>
drivers/power/rk818_battery.h
drivers/power/rk818_charger.c

index c5ccec8745d2bb704563a2cae3dbf2a1534bd660..12a4d89e5c180cf1399e6356dc286840a0408850 100644 (file)
@@ -156,7 +156,7 @@ static const u16 chrg_cur_sel_array[] = {
 };
 
 static const u16 chrg_cur_input_array[] = {
-       450, 800, 850, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000
+       450, 80, 850, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000
 };
 
 void kernel_power_off(void);
index 3bc89d12d27682d5aa96d84707fc1d6be07955e8..8b6ba55417b8e1a959c2d16019d852c815fe988e 100644 (file)
@@ -99,7 +99,7 @@ static const u16 chrg_cur_sel_array[] = {
 };
 
 static const u16 chrg_cur_input_array[] = {
-       450, 800, 850, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000
+       450, 80, 850, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000
 };
 
 enum charger_t {
@@ -638,7 +638,7 @@ static void rk818_cg_dc_det_worker(struct work_struct *work)
 
 static u8 rk818_cg_decode_chrg_vol(struct rk818_charger *cg)
 {
-       u8 val, index;
+       u8 val = 0, index;
        u32 chrg_vol;
 
        chrg_vol = cg->pdata->max_chrg_voltage;
@@ -654,14 +654,22 @@ static u8 rk818_cg_decode_chrg_vol(struct rk818_charger *cg)
 
 static u8 rk818_cg_decode_input_current(struct rk818_charger *cg)
 {
-       u8 val, index;
+       u8 val = 0, index;
        u32 input_current;
 
        input_current = cg->pdata->max_input_current;
-       for (index = 0; index < ARRAY_SIZE(chrg_cur_input_array); index++) {
-               if (input_current < chrg_cur_input_array[index])
+       for (index = 2; index < ARRAY_SIZE(chrg_cur_input_array); index++) {
+               if (input_current < 850 && input_current > 80) {
+                       val = 0x0;      /* 450mA */
                        break;
-               val = index <<  0;
+               } else if (input_current <= 80) {
+                       val = 0x1;      /* 80mA */
+                       break;
+               } else {
+                       if (input_current < chrg_cur_input_array[index])
+                               break;
+                       val = index <<  0;
+               }
        }
 
        DBG("<%s>. input=0x%x\n", __func__, val);
@@ -670,7 +678,7 @@ static u8 rk818_cg_decode_input_current(struct rk818_charger *cg)
 
 static u8 rk818_cg_decode_chrg_current(struct rk818_charger *cg)
 {
-       u8 val, index;
+       u8 val = 0, index;
        u32 chrg_current;
 
        chrg_current = cg->pdata->max_chrg_current;