diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2015-10-19 11:13:50 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2015-10-27 13:19:51 -0700 |
commit | 2bd7dce32eed716b850c370f79717ad47da17c01 (patch) | |
tree | cdbb8d838c14d8e49ca159731e0f12a051c64235 /test/sbs_charging_v2.c | |
parent | cb4a76e8022c73fb0a0b50700912d86f41ea3dbb (diff) | |
download | chrome-ec-2bd7dce32eed716b850c370f79717ad47da17c01.tar.gz |
charger: Add LIMIT_POWER charger param for low bat + weak charger
Add support for two new configs to specify critical energy battery
percentage and critical external charger power. When we are under both
thresholds, set the LIMIT_POWER charger parameter to inform the AP that it
should conserve power to avoid brownout, and consider jumping to EC RW
to negotiate PD.
In addition, modify the existing CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
to allow power-up regardless of power level if a 15W+ charger is
attached, since there is a reasonable chance it may speak PD and provide
sufficient power to boot the AP.
BUG=chromium:537269
TEST=Manual on Glados. Set CHG_MW thresh to 20000, BAT_PCT to 50. Verify
that LIMIT_POWER charger param is set until Zinger negotiates to 20V. Also
veify that system can boot with Donette.
BRANCH=None
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: Ic963c82fea4ad10e8a5d7e476c5ce3e5ae525dad
Reviewed-on: https://chromium-review.googlesource.com/306774
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'test/sbs_charging_v2.c')
-rw-r--r-- | test/sbs_charging_v2.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/test/sbs_charging_v2.c b/test/sbs_charging_v2.c index 7bf467d2be..5e11c722fe 100644 --- a/test/sbs_charging_v2.c +++ b/test/sbs_charging_v2.c @@ -454,7 +454,10 @@ static int test_hc_charge_state(void) ¶ms, sizeof(params), &resp, sizeof(resp)); TEST_ASSERT(rv == EC_RES_SUCCESS); - TEST_ASSERT(resp.get_param.value); + if (i != CS_PARAM_LIMIT_POWER) + TEST_ASSERT(resp.get_param.value); + else + TEST_ASSERT(!resp.get_param.value); /* Bump it up a bit */ tmp = resp.get_param.value; @@ -465,7 +468,8 @@ static int test_hc_charge_state(void) tmp -= 128; /* Should be valid delta */ break; case CS_PARAM_CHG_STATUS: - /* This one can't be set */ + case CS_PARAM_LIMIT_POWER: + /* These ones can't be set */ break; case CS_PARAM_CHG_OPTION: tmp = CHG_OPT2; @@ -477,7 +481,7 @@ static int test_hc_charge_state(void) rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, ¶ms, sizeof(params), &resp, sizeof(resp)); - if (i == CS_PARAM_CHG_STATUS) + if (i == CS_PARAM_CHG_STATUS || i == CS_PARAM_LIMIT_POWER) TEST_ASSERT(rv == EC_RES_ACCESS_DENIED); else TEST_ASSERT(rv == EC_RES_SUCCESS); |