diff options
author | Katie Roberts-Hoffman <katierh@google.com> | 2014-10-23 17:29:31 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-10-25 08:14:16 +0000 |
commit | 908b3f559b2959173f55a2f3e32ea10047f00c0d (patch) | |
tree | 5e1c60caf98ad7aa8e69424fb1845c163ad5e061 /board/jerry/battery.c | |
parent | cadce20c1ac866833d15ad7d8360cda17ea344e2 (diff) | |
download | chrome-ec-908b3f559b2959173f55a2f3e32ea10047f00c0d.tar.gz |
Add initial support for jerry
BUG=chrome-os-partner:33269
TEST=make BOARD=jerry; ./util/flash_ec BOARD=jerry
(on a pinky rev2 as a sanity)
Change-Id: I2c54e4044a65a0014adb32dd46f74bf5ed11b02d
Signed-off-by: Katie Roberts-Hoffman <katierh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/225300
Reviewed-by: Alexandru Stan <amstan@chromium.org>
Diffstat (limited to 'board/jerry/battery.c')
-rw-r--r-- | board/jerry/battery.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/board/jerry/battery.c b/board/jerry/battery.c new file mode 100644 index 0000000000..02b491443f --- /dev/null +++ b/board/jerry/battery.c @@ -0,0 +1,54 @@ +/* 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 = 8400, /* mV */ + .voltage_normal = 7400, + .voltage_min = 6000, + .precharge_current = 256, /* mA */ + .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, +}; + +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); +} + + +int board_cut_off_battery(void) +{ + return cutoff(); +} + |