summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Berg <alecaberg@chromium.org>2015-03-04 12:20:25 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-03-06 03:50:37 +0000
commit4fe8e91fdefc9a4afb466c00cd4a08ccbd93485a (patch)
treeaa2dba765f3669782237410fe6e0bb2951418436
parent1746c5b0d9b369bf8d11600ef822ae65f84c9fc1 (diff)
downloadchrome-ec-4fe8e91fdefc9a4afb466c00cd4a08ccbd93485a.tar.gz
charge_state_v2: add battfake console command
Add battfake console command to charge_state_v2. BUG=none BRANCH=samus TEST=load onto samus and use battfake console command to make sure it works: > battfake 100 Reporting fake battery level 100% > battfake -1 Reporting real battery level Change-Id: I038db92a4859d460b33b1c7e546bc08d5e21582b Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/256070 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--common/charge_state_v2.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c
index db5966ee0a..5eb37e83a0 100644
--- a/common/charge_state_v2.c
+++ b/common/charge_state_v2.c
@@ -50,6 +50,8 @@ static int battery_seems_to_be_dead;
static int battery_seems_to_be_disconnected;
static int problems_exist;
static int debugging;
+static int fake_state_of_charge = -1;
+
/* Track problems in communicating with the battery or charger */
enum problem_type {
@@ -597,6 +599,12 @@ void charger_task(void)
charger_get_params(&curr.chg);
battery_get_params(&curr.batt);
+ /* Fake state of charge if necessary */
+ if (fake_state_of_charge >= 0) {
+ curr.batt.state_of_charge = fake_state_of_charge;
+ curr.batt.flags &= ~BATT_FLAG_BAD_STATE_OF_CHARGE;
+ }
+
/*
* TODO(crosbug.com/p/27527). Sometimes the battery thinks its
* temperature is 6280C, which seems a bit high. Let's ignore
@@ -1121,6 +1129,30 @@ DECLARE_HOST_COMMAND(EC_CMD_CHARGE_STATE, charge_command_charge_state,
/*****************************************************************************/
/* Console commands */
+static int command_battfake(int argc, char **argv)
+{
+ char *e;
+ int v;
+
+ if (argc == 2) {
+ v = strtoi(argv[1], &e, 0);
+ if (*e || v < -1 || v > 100)
+ return EC_ERROR_PARAM1;
+
+ fake_state_of_charge = v;
+ }
+
+ if (fake_state_of_charge >= 0)
+ ccprintf("Fake batt %d%%\n",
+ fake_state_of_charge);
+
+ return EC_SUCCESS;
+}
+DECLARE_CONSOLE_COMMAND(battfake, command_battfake,
+ "percent (-1 = use real level)",
+ "Set fake battery level",
+ NULL);
+
static int command_chgstate(int argc, char **argv)
{
int rv;