mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-27 18:25:05 +00:00
Move common charge_state time constants to a common header
We had duplicate values in both v1 and v2 headers. Let's consolidate them in one place, and prefix the constants with "CHARGE_", so people don't use them randomly. BUG=chrome-os-partner:20881 BRANCH=ToT TEST=make buildall -j No functionality changes, refactor/rename only. Change-Id: I0ee599a2e3bf0835c2c0a7e57872ad9015701a4b Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/193876
This commit is contained in:
@@ -28,8 +28,7 @@
|
||||
/* Voltage debounce time */
|
||||
#define DEBOUNCE_TIME (10 * SECOND)
|
||||
|
||||
/* Timeout after AP battery shutdown warning before we kill the AP */
|
||||
#define LOW_BATTERY_SHUTDOWN_TIMEOUT_US (30 * SECOND)
|
||||
#define LOW_BATTERY_SHUTDOWN_TIMEOUT_US (LOW_BATTERY_SHUTDOWN_TIMEOUT * SECOND)
|
||||
|
||||
#ifndef BATTERY_AP_OFF_LEVEL
|
||||
#define BATTERY_AP_OFF_LEVEL 0
|
||||
@@ -270,7 +269,7 @@ static int state_common(struct charge_state_context *ctx)
|
||||
*/
|
||||
charge_request(ctx->battery->voltage_max,
|
||||
ctx->battery->precharge_current);
|
||||
for (d = 0; d < 30; d++) {
|
||||
for (d = 0; d < PRECHARGE_TIMEOUT; d++) {
|
||||
sleep(1);
|
||||
battery_get_params(batt);
|
||||
if (batt->flags & BATT_FLAG_RESPONSIVE) {
|
||||
@@ -703,7 +702,7 @@ void charger_task(void)
|
||||
{
|
||||
struct charge_state_context *ctx = &task_ctx;
|
||||
timestamp_t ts;
|
||||
int sleep_usec = POLL_PERIOD_SHORT, diff_usec, sleep_next;
|
||||
int sleep_usec = CHARGE_POLL_PERIOD_SHORT, diff_usec, sleep_next;
|
||||
enum charge_state new_state;
|
||||
uint8_t batt_flags;
|
||||
|
||||
@@ -792,7 +791,7 @@ void charger_task(void)
|
||||
* to charging on the next call and we don't want to
|
||||
* blink the LED green.
|
||||
*/
|
||||
sleep_usec = POLL_PERIOD_SHORT;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_SHORT;
|
||||
break;
|
||||
case PWR_STATE_CHARGE_NEAR_FULL:
|
||||
/*
|
||||
@@ -808,15 +807,16 @@ void charger_task(void)
|
||||
*ctx->memmap_batt_flags = batt_flags;
|
||||
|
||||
/* Charge done */
|
||||
sleep_usec = (new_state == PWR_STATE_IDLE ?
|
||||
POLL_PERIOD_LONG : POLL_PERIOD_CHARGE);
|
||||
sleep_usec = (new_state == PWR_STATE_IDLE
|
||||
? CHARGE_POLL_PERIOD_LONG
|
||||
: CHARGE_POLL_PERIOD_CHARGE);
|
||||
break;
|
||||
case PWR_STATE_DISCHARGE:
|
||||
batt_flags = *ctx->memmap_batt_flags;
|
||||
batt_flags &= ~EC_BATT_FLAG_CHARGING;
|
||||
batt_flags |= EC_BATT_FLAG_DISCHARGING;
|
||||
*ctx->memmap_batt_flags = batt_flags;
|
||||
sleep_usec = POLL_PERIOD_LONG;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_LONG;
|
||||
break;
|
||||
case PWR_STATE_CHARGE:
|
||||
batt_flags = *ctx->memmap_batt_flags;
|
||||
@@ -825,18 +825,18 @@ void charger_task(void)
|
||||
*ctx->memmap_batt_flags = batt_flags;
|
||||
|
||||
/* Charging */
|
||||
sleep_usec = POLL_PERIOD_CHARGE;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_CHARGE;
|
||||
break;
|
||||
case PWR_STATE_ERROR:
|
||||
/* Error */
|
||||
sleep_usec = POLL_PERIOD_CHARGE;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_CHARGE;
|
||||
break;
|
||||
case PWR_STATE_UNCHANGE:
|
||||
/* Don't change sleep duration */
|
||||
break;
|
||||
default:
|
||||
/* Other state; poll quickly and hope it goes away */
|
||||
sleep_usec = POLL_PERIOD_SHORT;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_SHORT;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_EXTPOWER_FALCO
|
||||
@@ -859,11 +859,11 @@ void charger_task(void)
|
||||
* need to poll frequently. charge_hook() will wake us
|
||||
* up if anything important changes.
|
||||
*/
|
||||
sleep_next = POLL_PERIOD_VERY_LONG - diff_usec;
|
||||
} else if (sleep_next < MIN_SLEEP_USEC) {
|
||||
sleep_next = MIN_SLEEP_USEC;
|
||||
} else if (sleep_next > MAX_SLEEP_USEC) {
|
||||
sleep_next = MAX_SLEEP_USEC;
|
||||
sleep_next = CHARGE_POLL_PERIOD_VERY_LONG - diff_usec;
|
||||
} else if (sleep_next < CHARGE_MIN_SLEEP_USEC) {
|
||||
sleep_next = CHARGE_MIN_SLEEP_USEC;
|
||||
} else if (sleep_next > CHARGE_MAX_SLEEP_USEC) {
|
||||
sleep_next = CHARGE_MAX_SLEEP_USEC;
|
||||
}
|
||||
|
||||
task_wait_event(sleep_next);
|
||||
|
||||
@@ -26,18 +26,8 @@
|
||||
#define CPUTS(outstr) cputs(CC_CHARGER, outstr)
|
||||
#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
|
||||
|
||||
/* Delay after AP battery shutdown warning before we kill the AP */
|
||||
#define LOW_BATTERY_SHUTDOWN_TIMEOUT_US (30 * SECOND)
|
||||
/* Time to spend trying to wake a non-responsive battery */
|
||||
#define PRECHARGE_TIMEOUT_US (30 * SECOND)
|
||||
|
||||
/* Power state task polling periods in usec */
|
||||
#define POLL_PERIOD_VERY_LONG MINUTE
|
||||
#define POLL_PERIOD_LONG (MSEC * 500)
|
||||
#define POLL_PERIOD_CHARGE (MSEC * 250)
|
||||
#define POLL_PERIOD_SHORT (MSEC * 100)
|
||||
#define MIN_SLEEP_USEC (MSEC * 50)
|
||||
#define MAX_SLEEP_USEC MINUTE
|
||||
#define LOW_BATTERY_SHUTDOWN_TIMEOUT_US (LOW_BATTERY_SHUTDOWN_TIMEOUT * SECOND)
|
||||
#define PRECHARGE_TIMEOUT_US (PRECHARGE_TIMEOUT * SECOND)
|
||||
|
||||
/*
|
||||
* State for charger_task(). Here so we can reset it on a HOOK_INIT, and
|
||||
@@ -596,7 +586,7 @@ wait_for_it:
|
||||
/* How long to sleep? */
|
||||
if (problems_exist)
|
||||
/* If there are errors, don't wait very long. */
|
||||
sleep_usec = POLL_PERIOD_SHORT;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_SHORT;
|
||||
else if (sleep_usec <= 0) {
|
||||
/* default values depend on the state */
|
||||
if (curr.state == ST_IDLE ||
|
||||
@@ -604,22 +594,23 @@ wait_for_it:
|
||||
/* If AP is off, we can sleep a long time */
|
||||
if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
|
||||
CHIPSET_STATE_SUSPEND))
|
||||
sleep_usec = POLL_PERIOD_VERY_LONG;
|
||||
sleep_usec =
|
||||
CHARGE_POLL_PERIOD_VERY_LONG;
|
||||
else
|
||||
/* Discharging, not too urgent */
|
||||
sleep_usec = POLL_PERIOD_LONG;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_LONG;
|
||||
} else {
|
||||
/* Charging, so pay closer attention */
|
||||
sleep_usec = POLL_PERIOD_CHARGE;
|
||||
sleep_usec = CHARGE_POLL_PERIOD_CHARGE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Adjust for time spent in this loop */
|
||||
sleep_usec -= (int)(get_time().val - curr.ts.val);
|
||||
if (sleep_usec < MIN_SLEEP_USEC)
|
||||
sleep_usec = MIN_SLEEP_USEC;
|
||||
else if (sleep_usec > MAX_SLEEP_USEC)
|
||||
sleep_usec = MAX_SLEEP_USEC;
|
||||
if (sleep_usec < CHARGE_MIN_SLEEP_USEC)
|
||||
sleep_usec = CHARGE_MIN_SLEEP_USEC;
|
||||
else if (sleep_usec > CHARGE_MAX_SLEEP_USEC)
|
||||
sleep_usec = CHARGE_MAX_SLEEP_USEC;
|
||||
|
||||
task_wait_event(sleep_usec);
|
||||
}
|
||||
|
||||
@@ -6,8 +6,23 @@
|
||||
#define __CROS_EC_CHARGE_STATE_H
|
||||
|
||||
#include "common.h"
|
||||
#include "timer.h"
|
||||
|
||||
/* Stuff that's common to all charger implementations can go here. */
|
||||
|
||||
/* Seconds after AP battery shutdown warning before we kill the AP */
|
||||
#define LOW_BATTERY_SHUTDOWN_TIMEOUT 30
|
||||
/* Seconds to spend trying to wake a non-responsive battery */
|
||||
#define PRECHARGE_TIMEOUT 30
|
||||
|
||||
/* Power state task polling periods in usec */
|
||||
#define CHARGE_POLL_PERIOD_VERY_LONG MINUTE
|
||||
#define CHARGE_POLL_PERIOD_LONG (MSEC * 500)
|
||||
#define CHARGE_POLL_PERIOD_CHARGE (MSEC * 250)
|
||||
#define CHARGE_POLL_PERIOD_SHORT (MSEC * 100)
|
||||
#define CHARGE_MIN_SLEEP_USEC (MSEC * 50)
|
||||
#define CHARGE_MAX_SLEEP_USEC SECOND
|
||||
|
||||
/* Power states */
|
||||
enum charge_state {
|
||||
/* Meta-state; unchanged from previous time through task loop */
|
||||
|
||||
@@ -12,14 +12,6 @@
|
||||
/* Update period to prevent charger watchdog timeout */
|
||||
#define CHARGER_UPDATE_PERIOD (SECOND * 10)
|
||||
|
||||
/* Power state task polling periods in usec */
|
||||
#define POLL_PERIOD_VERY_LONG MINUTE
|
||||
#define POLL_PERIOD_LONG (MSEC * 500)
|
||||
#define POLL_PERIOD_CHARGE (MSEC * 250)
|
||||
#define POLL_PERIOD_SHORT (MSEC * 100)
|
||||
#define MIN_SLEEP_USEC (MSEC * 50)
|
||||
#define MAX_SLEEP_USEC SECOND
|
||||
|
||||
/* Power state error flags */
|
||||
#define F_CHARGER_INIT (1 << 0) /* Charger initialization */
|
||||
#define F_CHARGER_VOLTAGE (1 << 1) /* Charger maximum output voltage */
|
||||
|
||||
Reference in New Issue
Block a user