diff options
author | Dave Parker <dparker@chromium.org> | 2013-07-09 10:51:44 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-07-09 16:20:13 -0700 |
commit | 186a28fd95d9a70b38e20f80b37e24ecc94884bd (patch) | |
tree | f310a524992b88be1adc5a3146a796e2b2a499fb | |
parent | aca89b05bbbdb760cf3d85d47c4e1f32371c779f (diff) | |
download | chrome-ec-186a28fd95d9a70b38e20f80b37e24ecc94884bd.tar.gz |
Falco: Implement battery cut off comamnd for factory
BUG=chrome-os-partner:20723
BRANCH=falco
TEST=Manual. On a DUT with a battery run "ectool batterycutoff"
and power down if still connected to AC. Unplug AC. The EC
should be unpowered. Verify the only way to boot the system is
to plug AC back in.
Change-Id: I7a4cef1f69efe673370a450385f6fa91722d2b50
Signed-off-by: Dave Parker <dparker@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/61294
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: Bill Richardson <wfrichar@chromium.org>
-rw-r--r-- | common/battery_falco.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/common/battery_falco.c b/common/battery_falco.c index 8f27a9e20e..c2430fa07e 100644 --- a/common/battery_falco.c +++ b/common/battery_falco.c @@ -6,6 +6,10 @@ */ #include "battery_pack.h" +#include "host_command.h" +#include "smart_battery.h" + +#define SB_SHIP_MODE_DATA 0x0010 /* FIXME: We need REAL values for all this stuff */ static const struct battery_info info = { @@ -46,3 +50,17 @@ void battery_vendor_params(struct batt_params *batt) } #endif } + +int battery_command_cut_off(struct host_cmd_handler_args *args) +{ + int rv; + + /* Ship mode command must be sent twice. */ + rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHIP_MODE_DATA); + if (rv != EC_SUCCESS) + return rv; + rv = sb_write(SB_MANUFACTURER_ACCESS, SB_SHIP_MODE_DATA); + return rv; +} +DECLARE_HOST_COMMAND(EC_CMD_BATTERY_CUT_OFF, battery_command_cut_off, + EC_VER_MASK(0)); |