diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-09-09 10:11:18 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-13 22:21:23 -0700 |
commit | 94f2bc074087b72bbddf2fcbffa0f53e7aeb3aa0 (patch) | |
tree | bbb048a2e50592415d5f9acc21b54164afefdc82 /test | |
parent | d8166a8d65bc776ad2484ac49cd4d7a218b48d7c (diff) | |
download | chrome-ec-94f2bc074087b72bbddf2fcbffa0f53e7aeb3aa0.tar.gz |
charge_manager: Pass uncapped / max current to current limit callback
charge_manager may request a charge current limit less than the
capability of the supply in certain cases (eg. during PD voltage
transition, to make an effort to comply with reduced load spec).
Depending on the battery / system state, setting a reduced charge
current limit may result in brownout.
Pass the uncapped / max negotiated current to board_set_charge_limit()
so that boards may use it instead of the requested limit in such
circumstances.
BUG=chrome-os-partner:56139
BRANCH=gru
TEST=Manual on kevin with subsequent commit, boot system with zinger +
low-charge battery, verify devices powers up to OS without brownout.
Change-Id: I2b8e0d44edcf57ffe4ee0fdec1a1ed35c6becbbd
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/383732
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/charge_manager.c | 2 | ||||
-rw-r--r-- | test/charge_ramp.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/test/charge_manager.c b/test/charge_manager.c index 962fc98a64..bb65c2a3f0 100644 --- a/test/charge_manager.c +++ b/test/charge_manager.c @@ -37,7 +37,7 @@ static int new_power_request[CONFIG_USB_PD_PORT_COUNT]; static int power_role[CONFIG_USB_PD_PORT_COUNT]; /* Callback functions called by CM on state change */ -void board_set_charge_limit(int port, int supplier, int charge_ma) +void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma) { active_charge_limit = charge_ma; } diff --git a/test/charge_ramp.c b/test/charge_ramp.c index a3279663e2..4fc1c5ac63 100644 --- a/test/charge_ramp.c +++ b/test/charge_ramp.c @@ -53,7 +53,7 @@ int board_is_vbus_too_low(enum chg_ramp_vbus_state ramp_state) vbus_low_current_ma; } -void board_set_charge_limit(int port, int supplier, int limit_ma) +void board_set_charge_limit(int port, int supplier, int limit_ma, int max_ma) { charge_limit_ma = limit_ma; if (charge_limit_ma > overcurrent_current_ma) |