summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorƁukasz Majewski <l.majewski@samsung.com>2013-06-25 15:28:15 +0200
committerMinkyu Kang <mk7.kang@samsung.com>2013-07-05 18:46:14 +0900
commit9dfa3d0734df4aad107def2c900d1514ac7510ac (patch)
tree1ee44c010011f8b5cc11fcae679de7d91a091cf3 /drivers
parent9199fce23968c9657e00b74ee44f41d0e0fe68b5 (diff)
power:bat:trats: Break battery charging with ctrl+C
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/power/battery/bat_trats.c13
-rw-r--r--drivers/power/power_core.c3
2 files changed, 11 insertions, 5 deletions
diff --git a/drivers/power/battery/bat_trats.c b/drivers/power/battery/bat_trats.c
index ca0d2146599..97a9661150f 100644
--- a/drivers/power/battery/bat_trats.c
+++ b/drivers/power/battery/bat_trats.c
@@ -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;
diff --git a/drivers/power/power_core.c b/drivers/power/power_core.c
index 90df2c58c4c..f16b9dc0666 100644
--- a/drivers/power/power_core.c
+++ b/drivers/power/power_core.c
@@ -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)