summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Chuang <jchuang@chromium.org>2014-01-15 18:27:38 +0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-01-20 23:39:53 +0000
commit577809db91e0ed5ee124236e5366790992b12790 (patch)
treeaa0a1e5cd01ab726cd90b849167302ac61299aa9
parent357c9ab98c5e6c676e7246a51a35a1849c8c51b3 (diff)
downloadchrome-ec-577809db91e0ed5ee124236e5366790992b12790.tar.gz
Clapper: Support discharge on BQ24715
BUG=None Original-BUG=chrome-os-partner:25031 BRANCH=None TEST=Manually make BOARD=peppy make BOARD=falco make BOARD=rambi make BOARD=squawks On rambi and squawks, connect charger ectool chargecontrol discharge ectool i2cread 16 0 0x16 0x0a It should return 16-bit negative integer. Original-Change-Id: I8a8dfa90d2ad82595ac7a420c3c8ffc13b12cde6 Signed-off-by: Justin Chuang <jchuang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182790 Reviewed-by: Dave Parker <dparker@chromium.org> Conflicts: board/clapper/board.h board/falco/board.c Change-Id: I5e19001d6b215230e305885700cf7e2f73a9b2f1 Reviewed-on: https://chromium-review.googlesource.com/183183 Reviewed-by: Dave Parker <dparker@chromium.org> Commit-Queue: Dave Parker <dparker@chromium.org> Tested-by: Dave Parker <dparker@chromium.org>
-rw-r--r--board/clapper/board.c11
-rw-r--r--board/clapper/board.h4
-rw-r--r--board/rambi/board.c9
-rw-r--r--board/rambi/board.h4
-rw-r--r--driver/charger/bq24715.c19
-rw-r--r--driver/charger/bq24738.h3
-rw-r--r--include/charger.h3
7 files changed, 50 insertions, 3 deletions
diff --git a/board/clapper/board.c b/board/clapper/board.c
index 5cf7b50c1d..3c729784f5 100644
--- a/board/clapper/board.c
+++ b/board/clapper/board.c
@@ -7,6 +7,7 @@
#include "adc.h"
#include "adc_chip.h"
#include "backlight.h"
+#include "charger.h"
#include "common.h"
#include "driver/temp_sensor/tmp432.h"
#include "extpower.h"
@@ -203,3 +204,13 @@ struct ec_thermal_config thermal_params[] = {
{{0, 0, 0}, 0, 0},
};
BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
+
+#ifdef HAS_TASK_CHARGER
+/**
+ * Discharge battery when on AC power for factory test.
+ */
+int board_discharge_on_ac(int enable)
+{
+ return charger_discharge_on_ac(enable);
+}
+#endif
diff --git a/board/clapper/board.h b/board/clapper/board.h
index 686e528145..5f394372ae 100644
--- a/board/clapper/board.h
+++ b/board/clapper/board.h
@@ -16,6 +16,7 @@
#define CONFIG_CHARGER
#define CONFIG_CHARGER_BQ24715
/* TODO(crosbug.com/p/24374): Set input current to match adapter. */
+#define CONFIG_CHARGER_DISCHARGE_ON_AC
#define CONFIG_CHARGER_INPUT_CURRENT 1700 /* 33 W adapter, 19 V, 1.75 A */
#define CONFIG_CHARGER_SENSE_RESISTOR 10 /* Charge sense resistor, mOhm */
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 /* Input senso resistor, mOhm */
@@ -177,6 +178,9 @@ enum temp_sensor_id {
TEMP_SENSOR_COUNT
};
+/* Discharge battery when on AC power for factory test. */
+int board_discharge_on_ac(int enable);
+
#endif /* !__ASSEMBLER__ */
#endif /* __BOARD_H */
diff --git a/board/rambi/board.c b/board/rambi/board.c
index 2ad37debdf..cdef1c11b1 100644
--- a/board/rambi/board.c
+++ b/board/rambi/board.c
@@ -7,6 +7,7 @@
#include "adc.h"
#include "adc_chip.h"
#include "backlight.h"
+#include "charger.h"
#include "common.h"
#include "driver/temp_sensor/tmp432.h"
#include "extpower.h"
@@ -197,3 +198,11 @@ struct ec_thermal_config thermal_params[] = {
{{0, 0, 0}, 0, 0},
};
BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
+
+/**
+ * Discharge battery when on AC power for factory test.
+ */
+int board_discharge_on_ac(int enable)
+{
+ return charger_discharge_on_ac(enable);
+}
diff --git a/board/rambi/board.h b/board/rambi/board.h
index 420d072620..d3ce348b7b 100644
--- a/board/rambi/board.h
+++ b/board/rambi/board.h
@@ -15,6 +15,7 @@
#define CONFIG_BOARD_VERSION
#define CONFIG_CHARGER
#define CONFIG_CHARGER_BQ24715
+#define CONFIG_CHARGER_DISCHARGE_ON_AC
#define CONFIG_CHARGER_INPUT_CURRENT 1700 /* 33 W adapter, 19 V, 1.75 A */
#define CONFIG_CHARGER_SENSE_RESISTOR 10 /* Charge sense resistor, mOhm */
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 /* Input senso resistor, mOhm */
@@ -177,6 +178,9 @@ enum temp_sensor_id {
TEMP_SENSOR_COUNT
};
+/* Discharge battery when on AC power for factory test. */
+int board_discharge_on_ac(int enable);
+
#endif /* !__ASSEMBLER__ */
#endif /* __BOARD_H */
diff --git a/driver/charger/bq24715.c b/driver/charger/bq24715.c
index 14779225fc..5731057e4e 100644
--- a/driver/charger/bq24715.c
+++ b/driver/charger/bq24715.c
@@ -190,3 +190,22 @@ int charger_post_init(void)
rv = charger_set_input_current(CONFIG_CHARGER_INPUT_CURRENT);
return rv;
}
+
+int charger_discharge_on_ac(int enable)
+{
+ int rv;
+ int option;
+
+ rv = charger_get_option(&option);
+ if (rv)
+ return rv;
+
+ option &= ~OPT_LEARN_MASK;
+ if (enable)
+ option |= OPT_LEARN_ENABLE;
+ else
+ option |= OPT_LEARN_DISABLE;
+ rv = charger_set_option(option);
+
+ return rv;
+}
diff --git a/driver/charger/bq24738.h b/driver/charger/bq24738.h
index 402b801a0c..bb07f90480 100644
--- a/driver/charger/bq24738.h
+++ b/driver/charger/bq24738.h
@@ -54,7 +54,4 @@
#define ACPRES_DEGLITCH_150MS (0 << 15)
#define ACPRES_DEGLITCH_1300MS_DEFAULT (1 << 15)
-/* Discharge battery when on AC power. */
-int charger_discharge_on_ac(int enable);
-
#endif /* __CROS_EC_CHARGER_BQ24738_H */
diff --git a/include/charger.h b/include/charger.h
index c3c2b06cd4..23a4cebb42 100644
--- a/include/charger.h
+++ b/include/charger.h
@@ -76,6 +76,9 @@ int charger_set_current(int current);
int charger_get_voltage(int *voltage);
int charger_set_voltage(int voltage);
+/* Discharge battery when on AC power. */
+int charger_discharge_on_ac(int enable);
+
/* Other parameters that may be charger-specific, but are common so far. */
int charger_set_input_current(int input_current);
int charger_get_input_current(int *input_current);