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-16 06:43:05 +0000
commitfc91a7f7fdb7f73ba96ae351e5d8d9e2d8b94958 (patch)
tree13e7f2a897537f843d35011d26430662ac38fbc3
parente73a228985742ff7ce23d25cf47d24b0be5a48e1 (diff)
downloadchrome-ec-fc91a7f7fdb7f73ba96ae351e5d8d9e2d8b94958.tar.gz
Support discharge on BQ24715 for Rambi and Squawks
BUG=chrome-os-partner:25031 BRANCH=rambi 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. Change-Id: I8a8dfa90d2ad82595ac7a420c3c8ffc13b12cde6 Signed-off-by: Justin Chuang <jchuang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182586 Reviewed-by: Dave Parker <dparker@chromium.org>
-rw-r--r--board/falco/board.c2
-rw-r--r--board/rambi/board.c9
-rw-r--r--board/rambi/board.h4
-rw-r--r--board/squawks/board.c9
-rw-r--r--board/squawks/board.h4
-rw-r--r--driver/charger/bq24715.c19
-rw-r--r--driver/charger/bq24738.h3
-rw-r--r--include/charger.h3
8 files changed, 49 insertions, 4 deletions
diff --git a/board/falco/board.c b/board/falco/board.c
index 54143cc6ce..97a7fccc53 100644
--- a/board/falco/board.c
+++ b/board/falco/board.c
@@ -8,8 +8,8 @@
#include "adc_chip.h"
#include "backlight.h"
#include "board.h"
+#include "charger.h"
#include "common.h"
-#include "driver/charger/bq24738.h"
#include "driver/temp_sensor/g781.h"
#include "extpower.h"
#include "fan.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/board/squawks/board.c b/board/squawks/board.c
index 825d551c78..2b783f655f 100644
--- a/board/squawks/board.c
+++ b/board/squawks/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"
@@ -199,3 +200,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/squawks/board.h b/board/squawks/board.h
index 0d184ace96..05393040f4 100644
--- a/board/squawks/board.h
+++ b/board/squawks/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 */
@@ -178,6 +179,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);