Files
OpenCellular/common/battery_slippy.c
Bill Richardson ffce85ac52 Slippy: Adjust battery voltages to be closer to reality.
I'm still not convinced that the Slippy battery voltages are right for all
cases, but these are closer to what seems to be working. It matches what the
battery we've tested with seems to want.

BUG=chrome-os-partner:18825
BRANCH=none
TEST=none

Change-Id: I2d86c5ef39a70d3826fec31207250617596baa33
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/58415
2013-06-12 15:01:01 -07:00

53 lines
1.4 KiB
C

/* 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_pack.h"
/* FIXME: We need REAL values for all this stuff */
static const struct battery_info info = {
.voltage_max = 16800,
.voltage_normal = 14800,
.voltage_min = 10800,
/*
* Operational temperature range
* 0 <= T_charge <= 50 deg C
* -20 <= T_discharge <= 60 deg C
*/
.temp_charge_min = CELSIUS_TO_DECI_KELVIN(0),
.temp_charge_max = CELSIUS_TO_DECI_KELVIN(50),
.temp_discharge_min = CELSIUS_TO_DECI_KELVIN(-20),
.temp_discharge_max = CELSIUS_TO_DECI_KELVIN(60),
/* Pre-charge values. */
.precharge_current = 256, /* mA */
};
const struct battery_info *battery_get_info(void)
{
return &info;
}
/* FIXME: The smart battery should do the right thing - that's why it's
* called "smart". Do we really want to second-guess it? For now, let's not. */
void battery_vendor_params(struct batt_params *batt)
{
#if 0
/* Limit charging voltage */
if (batt->desired_voltage > info.voltage_max)
batt->desired_voltage = info.voltage_max;
/* Don't charge if outside of allowable temperature range */
if (batt->temperature >= info.temp_charge_max ||
batt->temperature <= info.temp_charge_min) {
batt->desired_voltage = 0;
batt->desired_current = 0;
}
#endif
}