diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2019-03-22 11:46:56 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2019-04-12 17:40:02 +0000 |
commit | 56f06414af60320d79731f0a4afe1176988e0dc9 (patch) | |
tree | b5735fa743766cd4e392acb4b67d450c379d7a87 | |
parent | 000e620f926618dd03ed3f25320145e11eaa954f (diff) | |
download | chrome-ec-56f06414af60320d79731f0a4afe1176988e0dc9.tar.gz |
chgstv2: Add callback for board to check power for booting OS
This patch adds a callback function which allows a board to decide
whether power is ready for the OS to boot.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
BUG=b/122896801
BRANCH=nami
TEST=buildall
Change-Id: I32af4c2f88c9d3215edb9c622f1409dce6262b80
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1548507
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1537836
-rw-r--r-- | common/charge_state_v2.c | 14 | ||||
-rw-r--r-- | include/charge_state_v2.h | 14 |
2 files changed, 21 insertions, 7 deletions
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 4499839915..e75cd688cc 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -2271,12 +2271,7 @@ static int charge_command_current_limit(struct host_cmd_handler_args *args) DECLARE_HOST_COMMAND(EC_CMD_CHARGE_CURRENT_LIMIT, charge_command_current_limit, EC_VER_MASK(0)); -/** - * Check whether enough power is available for the OS to boot. - * - * @return 0: Power is good. 1: Power is short. - */ -static int charge_state_limit_power(void) +int charge_state_limit_power(void) { #ifdef CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW if ((curr.batt.is_present == BP_YES) && @@ -2297,6 +2292,11 @@ static int charge_state_limit_power(void) #endif } +__attribute__((weak)) int board_check_os_boot_power(void) +{ + return charge_state_limit_power(); +} + static int charge_command_charge_state(struct host_cmd_handler_args *args) { const struct ec_params_charge_state *in = args->params; @@ -2351,7 +2351,7 @@ static int charge_command_charge_state(struct host_cmd_handler_args *args) val = curr.chg.option; break; case CS_PARAM_LIMIT_POWER: - val = charge_state_limit_power(); + val = board_check_os_boot_power(); break; default: rv = EC_RES_INVALID_PARAM; diff --git a/include/charge_state_v2.h b/include/charge_state_v2.h index 800ba4e1cd..8f898cfee7 100644 --- a/include/charge_state_v2.h +++ b/include/charge_state_v2.h @@ -135,4 +135,18 @@ enum critical_shutdown board_critical_shutdown_check( */ uint8_t board_set_battery_level_shutdown(void); +/* + * Check whether enough power is available for the OS to boot. + * + * @return 0: Power is good. 1: Power is short. + */ +int charge_state_limit_power(void); + +/** + * Callback which allows a board to decide whether power is ready for OS + * + * @return 0: Power is good. 1: Power is short. + */ +int board_check_os_boot_power(void); + #endif /* __CROS_EC_CHARGE_STATE_V2_H */ |