power:bat:trats: Break battery charging with ctrl+C
authorŁukasz Majewski <l.majewski@samsung.com>
Tue, 25 Jun 2013 13:28:15 +0000 (15:28 +0200)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 5 Jul 2013 09:46:14 +0000 (18:46 +0900)
Add support for disabling battery charging with ctrl+C keyboard
combination pressed.
Moreover the battery update is done more frequently.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Tom Rini <trini@ti.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
drivers/power/battery/bat_trats.c
drivers/power/power_core.c

index ca0d21465990b871407a3b1849244989c9ac43d9..97a9661150f4f439157360562e1cdf303986edf1 100644 (file)
@@ -41,18 +41,23 @@ static int power_battery_charge(struct pmic *bat)
        for (k = 0; bat->chrg->chrg_bat_present(p_bat->chrg) &&
                     bat->chrg->chrg_type(p_bat->muic) &&
                     battery->state_of_chrg < 100; k++) {
-               udelay(10000000);
-               puts(".");
+               udelay(2000000);
+               if (!(k % 5))
+                       puts(".");
                bat->fg->fg_battery_update(p_bat->fg, bat);
 
-               if (k == 100) {
+               if (k == 200) {
                        debug(" %d [V]", battery->voltage_uV);
                        puts("\n");
                        k = 0;
                }
 
+               if (ctrlc()) {
+                       printf("\nCharging disabled on request.\n");
+                       goto exit;
+               }
        }
-
+ exit:
        bat->chrg->chrg_state(p_bat->chrg, CHARGER_DISABLE, 0);
 
        return 0;
index 90df2c58c4cf76f7dadfd761d05e14e8b62639d4..f16b9dc066657a4bce8498b4cff1c36029371f6a 100644 (file)
@@ -205,7 +205,8 @@ int do_pmic(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
                if (strcmp(argv[3], "charge") == 0) {
                        if (p->pbat) {
-                               printf("PRINT BAT charge %s\n", p->name);
+                               printf("BAT: %s charging (ctrl+c to break)\n",
+                                      p->name);
                                if (p->low_power_mode)
                                        p->low_power_mode();
                                if (p->pbat->battery_charge)