summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parker <dparker@chromium.org>2013-07-09 10:51:44 -0700
committerChromeBot <chrome-bot@google.com>2013-07-09 16:20:13 -0700
commit186a28fd95d9a70b38e20f80b37e24ecc94884bd (patch)
treef310a524992b88be1adc5a3146a796e2b2a499fb
parentaca89b05bbbdb760cf3d85d47c4e1f32371c779f (diff)
downloadchrome-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.c18
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));