mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-08 16:41:55 +00:00
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
53 lines
1.4 KiB
C
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
|
|
}
|