n810bm: Set minimum voltage threshold to 3200

SVN-Revision: 25433
This commit is contained in:
Michael Büsch 2011-02-09 20:09:49 +00:00
parent 2d3ed6dc2d
commit 970b4c6a72

View File

@ -41,8 +41,8 @@ Index: linux-2.6.37/drivers/cbus/Makefile
Index: linux-2.6.37/drivers/cbus/n810bm_main.c Index: linux-2.6.37/drivers/cbus/n810bm_main.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.37/drivers/cbus/n810bm_main.c 2011-02-09 13:47:23.831144291 +0100 +++ linux-2.6.37/drivers/cbus/n810bm_main.c 2011-02-09 19:05:18.435536304 +0100
@@ -0,0 +1,1169 @@ @@ -0,0 +1,1168 @@
+/* +/*
+ * Nokia n810 battery management + * Nokia n810 battery management
+ * + *
@ -86,7 +86,7 @@ Index: linux-2.6.37/drivers/cbus/n810bm_main.c
+#define N810BM_PMM_BLOCK_SIZE 0x600 +#define N810BM_PMM_BLOCK_SIZE 0x600
+ +
+#define N810BM_CHECK_INTERVAL (HZ * 2) +#define N810BM_CHECK_INTERVAL (HZ * 2)
+#define N810BM_MIN_VOLTAGE_THRES 3300 /* Absolute minimum voltage threshold */ +#define N810BM_MIN_VOLTAGE_THRES 3200 /* Absolute minimum voltage threshold */
+ +
+ +
+/* RETU_ADC_BSI +/* RETU_ADC_BSI
@ -612,7 +612,6 @@ Index: linux-2.6.37/drivers/cbus/n810bm_main.c
+ struct n810bm, periodic_check_work); + struct n810bm, periodic_check_work);
+ u16 status; + u16 status;
+ bool battery_was_present, charger_was_present; + bool battery_was_present, charger_was_present;
+ bool force_charge = 0;
+ int mv; + int mv;
+ +
+ mutex_lock(&bm->mutex); + mutex_lock(&bm->mutex);
@ -646,23 +645,23 @@ Index: linux-2.6.37/drivers/cbus/n810bm_main.c
+ bm->charger_present ? "plugged in" : "removed"); + bm->charger_present ? "plugged in" : "removed");
+ } + }
+ +
+ if (bm->battery_present && !lipocharge_is_charging(&bm->charger)) { + if ((bm->battery_present && !bm->charger_present) ||
+ !n810bm_known_battery_present(bm)){
+ /* We're draining the battery */ + /* We're draining the battery */
+ mv = n810bm_measure_batt_voltage(bm); + mv = n810bm_measure_batt_voltage(bm);
+ if (mv < 0) + if (mv < 0) {
+ n810bm_emergency(bm, "check timer: Failed to measure"); + n810bm_emergency(bm,
+ if (!bm->charger_present) { + "check: Failed to measure voltage");
+ if (mv < N810BM_MIN_VOLTAGE_THRES) { + }
+ n810bm_emergency(bm, "check timer: " + if (mv < N810BM_MIN_VOLTAGE_THRES) {
+ "Minimum voltage threshold reached"); + n810bm_emergency(bm,
+ } + "check: Minimum voltage threshold reached");
+ force_charge = 1;
+ } + }
+ } + }
+ +
+ if (bm->charger_present && n810bm_known_battery_present(bm)) { + if (bm->charger_present && n810bm_known_battery_present(bm)) {
+ /* Known battery and charger are connected */ + /* Known battery and charger are connected */
+ if (bm->charger_enabled || force_charge) { + if (bm->charger_enabled) {
+ /* Charger is enabled */ + /* Charger is enabled */
+ if (!lipocharge_is_charging(&bm->charger)) { + if (!lipocharge_is_charging(&bm->charger)) {
+ //TODO start charging, if battery is below some threshold + //TODO start charging, if battery is below some threshold