summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-03-22 11:46:56 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2019-04-12 17:40:02 +0000
commit56f06414af60320d79731f0a4afe1176988e0dc9 (patch)
treeb5735fa743766cd4e392acb4b67d450c379d7a87
parent000e620f926618dd03ed3f25320145e11eaa954f (diff)
downloadchrome-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.c14
-rw-r--r--include/charge_state_v2.h14
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 */