summaryrefslogtreecommitdiff
path: root/board/poppy/board.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/poppy/board.c')
-rw-r--r--board/poppy/board.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/board/poppy/board.c b/board/poppy/board.c
index 0303da3fba..9add68bfa9 100644
--- a/board/poppy/board.c
+++ b/board/poppy/board.c
@@ -634,6 +634,7 @@ DECLARE_HOOK(HOOK_AC_CHANGE, board_extpower, HOOK_PRIO_DEFAULT);
*/
int board_set_active_charge_port(int charge_port)
{
+ static uint8_t initialized;
/* charge port is a physical port */
int is_real_port = (charge_port >= 0 &&
charge_port < CONFIG_USB_PD_PORT_COUNT);
@@ -646,6 +647,13 @@ int board_set_active_charge_port(int charge_port)
return EC_ERROR_INVAL;
}
+ if (!initialized &&
+ charge_port == CHARGE_PORT_NONE &&
+ charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) {
+ CPRINTS("Bat critical, don't stop charging");
+ return -1;
+ }
+
CPRINTF("New chg p%d", charge_port);
if (charge_port == CHARGE_PORT_NONE) {
@@ -661,6 +669,7 @@ int board_set_active_charge_port(int charge_port)
GPIO_USB_C0_CHARGE_L, 0);
}
+ initialized = 1;
return EC_SUCCESS;
}