coreboot-libre-fam15h-rdimm/3rdparty/chromeec/driver/battery/bq20z453.c

36 lines
1.0 KiB
C

/* Copyright 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);
enum ec_status 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));