summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 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 */