summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2024-12-19 10:54:40 -0500
committerWilliam Wilgus <me.theuser@yahoo.com>2024-12-19 12:11:38 -0500
commit0bb79dd84776ee32ad2adab20c3b5be57aa6a4aa (patch)
tree59239e8723f98c3ef8dc7c1fd396518e612093b6
parentb77c973d1a4408a86b9d99e6125ce5747934fc81 (diff)
downloadrockbox-0bb79dd847.tar.gz
rockbox-0bb79dd847.zip
ascodec (sansas) add a 10 minute delay before re-enabling charge
Change-Id: I0b7bc3c92aeefa43f40becb26d7d9344d463775b
-rw-r--r--firmware/target/arm/powermgmt-ascodec.c7
1 files changed, 6 insertions, 1 deletions
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: */