summaryrefslogtreecommitdiff
path: root/common/battery_slippy.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/battery_slippy.c')
-rw-r--r--common/battery_slippy.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/common/battery_slippy.c b/common/battery_slippy.c
new file mode 100644
index 0000000000..75c9c2d4fb
--- /dev/null
+++ b/common/battery_slippy.c
@@ -0,0 +1,52 @@
+/* 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 = 12600,
+ .voltage_normal = 11100,
+ .voltage_min = 6000,
+
+ /*
+ * 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
+}