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-02 18:45:55 +0000 |
commit | a3ff5d1beebcc8db0f487d240d8c11821d140077 (patch) | |
tree | 2d7c9a6e5ddc01c6688dab103de2e2bf54fd3b7c | |
parent | d57ee96ba4cec26fd89c82a30811435b42720f07 (diff) | |
download | chrome-ec-a3ff5d1beebcc8db0f487d240d8c11821d140077.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>
-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 3b75111fe6..9bbfdd3fc3 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -2251,12 +2251,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) && @@ -2277,6 +2272,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; @@ -2331,7 +2331,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 4bf0d6a776..b1896ff106 100644 --- a/include/charge_state_v2.h +++ b/include/charge_state_v2.h @@ -126,4 +126,18 @@ enum critical_shutdown { enum critical_shutdown board_critical_shutdown_check( struct charge_state_data *curr); +/** + * 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 */ |