/* 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.
 *
 * Smart battery driver for BQ20Z453.
 */

#include "battery_smart.h"
#include "hooks.h"
#include "host_command.h"

#define PARAM_CUT_OFF 0x0010

static void cutoff(void)
{
	/* Claim i2c and send cutoff command to battery. */
	sb_write(SB_MANUFACTURER_ACCESS, PARAM_CUT_OFF);
}
DECLARE_DEFERRED(cutoff);

int battery_command_cut_off(struct host_cmd_handler_args *args)
{
	/*
	 * Queue battery cutoff.  This must be deferred so we can send the
	 * response to the host first.  Some platforms (snow) share an I2C bus
	 * between the EC, AP, and battery, so we need the host to complete the
	 * transaction and release the I2C bus before we'll be abl eto send the
	 * cutoff command.
	 */
	hook_call_deferred(&cutoff_data, 1000);

	return EC_RES_SUCCESS;
}
DECLARE_HOST_COMMAND(EC_CMD_BATTERY_CUT_OFF, battery_command_cut_off,
		     EC_VER_MASK(0));
