From 0bb79dd84776ee32ad2adab20c3b5be57aa6a4aa Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Thu, 19 Dec 2024 10:54:40 -0500 Subject: [PATCH] ascodec (sansas) add a 10 minute delay before re-enabling charge Change-Id: I0b7bc3c92aeefa43f40becb26d7d9344d463775b --- firmware/target/arm/powermgmt-ascodec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/firmware/target/arm/powermgmt-ascodec.c b/firmware/target/arm/powermgmt-ascodec.c index 0e4c8b7074..e31ccc8afb 100644 --- a/firmware/target/arm/powermgmt-ascodec.c +++ b/firmware/target/arm/powermgmt-ascodec.c @@ -105,6 +105,9 @@ static void disable_charger(void) /* Enable charger with specified settings. Start timers, etc. */ static void enable_charger(void) { + if (++ charger_total_timer < 0) + return; /* wait to re-enable charging */ + ascodec_write_charger(BATT_CHG_I | BATT_CHG_V); sleep(HZ/10); /* Allow charger turn-on time (it could be gradual). */ @@ -131,6 +134,7 @@ void powermgmt_init_target(void) static inline void charger_plugged(void) { + charger_total_timer = 0; batt_threshold = BATT_FULL_VOLTAGE; /* Start with topped value. */ battery_voltage_sync(); } @@ -171,7 +175,8 @@ static inline void charger_control(void) charge_state = CHARGE_STATE_ERROR; } /* else end of charge */ - + charger_total_timer = -(HZ * 600) / POWER_THREAD_STEP_TICKS; + /* wait 10 minutes before re-enabling charging again */ disable_charger(); break; } /* CHARGING: */