diff options
author | Divya Jyothi <divya.jyothi@intel.com> | 2015-02-06 13:51:12 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-04-01 19:38:50 +0000 |
commit | 4c1bad17aa0ad015971ab0e446c87e12003d4a6d (patch) | |
tree | 4a150e96238b64ffec6603a0c2ad6d3bc9afb9c4 | |
parent | c72628b8e7fa539da5a8ba249a138d57ec1aa160 (diff) | |
download | chrome-ec-4c1bad17aa0ad015971ab0e446c87e12003d4a6d.tar.gz |
Strago: Enable battery charging
Setting up numbers for Battery info like input current limit,
Battery voltage, temperature limits as per the actual battery spec.
BUG=None
TEST=Tested on Braswell Ref Design
BRANCH=None
Change-Id: I66c3dfe6166d03d2cb79d80a887168f08753d22d
Signed-off-by: Divya Jyothi <divya.jyothi@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/260631
Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r-- | board/strago/battery.c | 63 | ||||
-rw-r--r-- | board/strago/build.mk | 2 |
2 files changed, 65 insertions, 0 deletions
diff --git a/board/strago/battery.c b/board/strago/battery.c new file mode 100644 index 0000000000..064f630f82 --- /dev/null +++ b/board/strago/battery.c @@ -0,0 +1,63 @@ +/* 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 "battery_smart.h" +#include "console.h" +#include "gpio.h" +#include "host_command.h" +#include "util.h" + +/* Shutdown mode parameter to write to manufacturer access register */ +#define SB_SHUTDOWN_DATA 0x0010 + +static const struct battery_info info = { + .voltage_max = 8700,/* mV */ + .voltage_normal = 7600, + .voltage_min = 6000, + .precharge_current = 150,/* mA */ + .start_charging_min_c = 0, + .start_charging_max_c = 45, + .charging_min_c = 0, + .charging_max_c = 45, + .discharging_min_c = -20, + .discharging_max_c = 60, +}; + +const struct battery_info *battery_get_info(void) +{ + return &info; +} + +static int cutoff(void) +{ + int rv; + + /* Ship mode command must be sent twice to take effect */ + rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA); + + if (rv != EC_SUCCESS) + return rv; + + return sb_write(SB_MANUFACTURER_ACCESS, SB_SHUTDOWN_DATA); +} + +static int battery_command_cut_off(struct host_cmd_handler_args *args) +{ + return cutoff() ? EC_RES_ERROR : EC_RES_SUCCESS; +} +DECLARE_HOST_COMMAND(EC_CMD_BATTERY_CUT_OFF, battery_command_cut_off, + EC_VER_MASK(0)); + +static int command_battcutoff(int argc, char **argv) +{ + return cutoff(); +} +DECLARE_CONSOLE_COMMAND(battcutoff, command_battcutoff, + NULL, + "Enable battery cutoff (ship mode)", + NULL); diff --git a/board/strago/build.mk b/board/strago/build.mk index d6559b43c9..23c88a95a9 100644 --- a/board/strago/build.mk +++ b/board/strago/build.mk @@ -11,6 +11,8 @@ CHIP:=mec1322 CHIP_SPI_SIZE_KB:=4096 board-y=board.o +board-$(CONFIG_BATTERY_SMART)+=battery.o + # As this file is read more than once, must put the rules # elsewhere (Makefile.rules) and just use variable to trigger them PROJECT_EXTRA+=${out}/ec.spi.bin |