diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-10-25 11:18:45 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2013-10-28 21:13:02 +0000 |
commit | 02a770d5a5e89a845d55dba1fa93ed6756bee752 (patch) | |
tree | 5e2aad58a3207330293b964662473882d8bc2df8 | |
parent | 685c45ef46efe4a3e0b099ce43dddc65bbe2f672 (diff) | |
download | chrome-ec-02a770d5a5e89a845d55dba1fa93ed6756bee752.tar.gz |
rambi: Enable battery charging
Using best-guess numbers for input current limit. Battery voltage and
temperature limits are set from actual battery spec.
BUG=chrome-os-partner:23597
BRANCH=none
TEST=battery and charger commands print reasonable info
battery charges when system plugged in
Change-Id: I812276cbe46c8463a855c7ba3e0bfec4852e6f97
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/174766
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
-rw-r--r-- | board/rambi/battery.c | 32 | ||||
-rw-r--r-- | board/rambi/board.h | 19 | ||||
-rw-r--r-- | board/rambi/build.mk | 2 | ||||
-rw-r--r-- | board/rambi/ec.tasklist | 2 |
4 files changed, 41 insertions, 14 deletions
diff --git a/board/rambi/battery.c b/board/rambi/battery.c new file mode 100644 index 0000000000..2c28f6a07b --- /dev/null +++ b/board/rambi/battery.c @@ -0,0 +1,32 @@ +/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Battery pack vendor provided charging profile + */ + +#include "battery.h" +#include "gpio.h" + +const struct battery_temperature_ranges bat_temp_ranges = { + .start_charging_min_c = 0, + .start_charging_max_c = 45, + .charging_min_c = 0, + .charging_max_c = 45, + .discharging_min_c = 0, + .discharging_max_c = 60, +}; + +static const struct battery_info info = { + .voltage_max = 8400, /* mV */ + .voltage_normal = 7400, + .voltage_min = 6000, + .precharge_current = 256, /* mA */ +}; + +const struct battery_info *battery_get_info(void) +{ + return &info; +} + +/* TODO(crosbug.com/p/23597): Battery cutoff command; need vendor info */ diff --git a/board/rambi/board.h b/board/rambi/board.h index 09161df3f6..1f37f36a8e 100644 --- a/board/rambi/board.h +++ b/board/rambi/board.h @@ -10,7 +10,14 @@ /* Optional features */ #define CONFIG_BACKLIGHT_LID +#define CONFIG_BATTERY_SMART #define CONFIG_BOARD_VERSION +#define CONFIG_CHARGER +#define CONFIG_CHARGER_BQ24715 +/* TODO(crosbug.com/p/23597): Real number for input current limit */ +#define CONFIG_CHARGER_INPUT_CURRENT 4032 +#define CONFIG_CHARGER_SENSE_RESISTOR 10 /* Charge sense resistor, mOhm */ +#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 /* Input senso resistor, mOhm */ #define CONFIG_CHIPSET_BAYTRAIL #define CONFIG_CHIPSET_CAN_THROTTLE #define CONFIG_CHIPSET_X86 @@ -29,18 +36,6 @@ #define CONFIG_USB_PORT_POWER_SMART #define CONFIG_WIRELESS -/* TODO(rspangler): port these to Rambi, or remove if not needed */ -#if 0 -#define CONFIG_BATTERY_CHECK_CONNECTED -#define CONFIG_BATTERY_SMART -#define CONFIG_CHARGER -#define CONFIG_CHARGER_BQ24707A -#define CONFIG_CHARGER_DISCHARGE_ON_AC -#define CONFIG_CHARGER_INPUT_CURRENT 4032 /* mA, about half max */ -#define CONFIG_CHARGER_SENSE_RESISTOR 10 /* Charge sense resistor, mOhm */ -#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 /* Input sensor resistor, mOhm */ -#endif - #ifndef __ASSEMBLER__ /* I2C ports */ diff --git a/board/rambi/build.mk b/board/rambi/build.mk index ea89781339..f771f4f0ec 100644 --- a/board/rambi/build.mk +++ b/board/rambi/build.mk @@ -9,4 +9,4 @@ # the IC is TI Stellaris LM4 CHIP:=lm4 -board-y=board.o led.o +board-y=battery.o board.o led.o diff --git a/board/rambi/ec.tasklist b/board/rambi/ec.tasklist index fd3c29ac1b..f6e061cb4c 100644 --- a/board/rambi/ec.tasklist +++ b/board/rambi/ec.tasklist @@ -21,7 +21,7 @@ #define CONFIG_TASK_LIST \ TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \ TASK_NOTEST(VBOOTHASH, vboot_hash_task, NULL, LARGER_TASK_STACK_SIZE) \ - /* TASK_ALWAYS(CHARGER, charger_task, NULL, TASK_STACK_SIZE) */ \ + TASK_ALWAYS(CHARGER, charger_task, NULL, TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE) \ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \ |