summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2014-04-09 14:02:55 -0700
committerBill Richardson <wfrichar@chromium.org>2014-04-11 15:37:38 +0000
commit5019551e1d63bdd95e8b358a409e923c16e604fd (patch)
treeadfaecb5b6c4e3f0ebb39019e8c818f02e506705
parent39194d5fc584199fad690939b362e61b1aa4a12d (diff)
downloadchrome-ec-5019551e1d63bdd95e8b358a409e923c16e604fd.tar.gz
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
-rw-r--r--common/charge_state_v1.c32
-rw-r--r--common/charge_state_v2.c31
-rw-r--r--include/charge_state.h15
-rw-r--r--include/charge_state_v1.h8
4 files changed, 42 insertions, 44 deletions
diff --git a/common/charge_state_v1.c b/common/charge_state_v1.c
index 1de56e34fa..1b1ed8272d 100644
--- a/common/charge_state_v1.c
+++ b/common/charge_state_v1.c
@@ -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);
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c
index 6ca6222370..f5adc45b17 100644
--- a/common/charge_state_v2.c
+++ b/common/charge_state_v2.c
@@ -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);
}
diff --git a/include/charge_state.h b/include/charge_state.h
index 581acfd285..35c2041d45 100644
--- a/include/charge_state.h
+++ b/include/charge_state.h
@@ -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 */
diff --git a/include/charge_state_v1.h b/include/charge_state_v1.h
index d0637a2d21..8d0afe32a0 100644
--- a/include/charge_state_v1.h
+++ b/include/charge_state_v1.h
@@ -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 */