summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2015-10-19 11:13:50 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-10-27 13:19:51 -0700
commit2bd7dce32eed716b850c370f79717ad47da17c01 (patch)
treecdbb8d838c14d8e49ca159731e0f12a051c64235 /test
parentcb4a76e8022c73fb0a0b50700912d86f41ea3dbb (diff)
downloadchrome-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')
-rw-r--r--test/sbs_charging_v2.c10
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)
&params, 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,
&params, 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);