summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorMohammed Habibulla <moch@chromium.org>2014-10-09 14:43:08 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-10-10 04:36:46 +0000
commitf92f70d04cc90bb313b1a7ceadb7bcc0bfc82bb4 (patch)
tree9d2a7ad946d8cb8c0f9ac4e7fbf6fe3579699bd7 /driver
parentfd7846fe094ae70fbbdc3026c4500999a0adf737 (diff)
downloadchrome-ec-f92f70d04cc90bb313b1a7ceadb7bcc0bfc82bb4.tar.gz
Disable LEARN option during charger init
When charger is initialized disable the LEARN option i.e. reenable charging on AC power BUG=chrome-os-partner:32320 TEST=set DUT to discharge on AC and then reflash EC. Ensure that charging begins again. BRANCH=none Change-Id: I3e83db27ab49548d5491548fa624899865c11bfb Signed-off-by: Mohammed Habibulla <moch@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/222644 Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r--driver/charger/bq24715.c1
-rw-r--r--driver/charger/bq24725.c11
-rw-r--r--driver/charger/bq24735.c11
-rw-r--r--driver/charger/bq24738.c1
-rw-r--r--driver/charger/bq24773.c12
5 files changed, 35 insertions, 1 deletions
diff --git a/driver/charger/bq24715.c b/driver/charger/bq24715.c
index e3a9b25797..4386c3a17d 100644
--- a/driver/charger/bq24715.c
+++ b/driver/charger/bq24715.c
@@ -182,6 +182,7 @@ int charger_post_init(void)
/* Always monitor adapter current (40X multiplier). */
option |= OPT_FIX_IOUT_ALWAYS;
option &= ~OPT_IOUT_MASK;
+ option &= ~OPT_LEARN_MASK;
/* Enable dynamic power management */
option |= OPT_IDPM_ENABLE;
diff --git a/driver/charger/bq24725.c b/driver/charger/bq24725.c
index be6f223df2..794d4f9a02 100644
--- a/driver/charger/bq24725.c
+++ b/driver/charger/bq24725.c
@@ -161,6 +161,17 @@ int charger_post_init(void)
* charging current = 0 mA
*/
+ int rv, option;
+
+ rv = charger_get_option(&option);
+ if (rv)
+ return rv;
+
+ option &= ~OPTION_LEARN_ENABLE;
+ rv = charger_set_option(option);
+ if (rv)
+ return rv;
+
/* Set charger input current limit */
return charger_set_input_current(CONFIG_CHARGER_INPUT_CURRENT);
}
diff --git a/driver/charger/bq24735.c b/driver/charger/bq24735.c
index 829bbd41a4..3c40d674f2 100644
--- a/driver/charger/bq24735.c
+++ b/driver/charger/bq24735.c
@@ -161,6 +161,17 @@ int charger_post_init(void)
* charging current = 0 mA
*/
+ int rv, option;
+
+ rv = charger_get_option(&option);
+ if (rv)
+ return rv;
+
+ option &= ~OPTION_LEARN_ENABLE;
+ rv = charger_set_option(option);
+ if (rv)
+ return rv;
+
/* Set charger input current limit */
return charger_set_input_current(CONFIG_CHARGER_INPUT_CURRENT);
}
diff --git a/driver/charger/bq24738.c b/driver/charger/bq24738.c
index 7bd8e42a02..752b8b0457 100644
--- a/driver/charger/bq24738.c
+++ b/driver/charger/bq24738.c
@@ -161,6 +161,7 @@ int charger_post_init(void)
if (rv)
return rv;
val &= ~OPTION_IFAULT_HI_ENABLE;
+ val &= ~OPTION_LEARN_ENABLE;
rv = charger_set_option(val);
if (rv)
return rv;
diff --git a/driver/charger/bq24773.c b/driver/charger/bq24773.c
index 5ea62d7e4b..45faff9d23 100644
--- a/driver/charger/bq24773.c
+++ b/driver/charger/bq24773.c
@@ -169,11 +169,21 @@ int charger_set_voltage(int voltage)
/* Charging power state initialization */
int charger_post_init(void)
{
+ int rv, option;
#ifdef CONFIG_CHARGER_ILIM_PIN_DISABLED
- int rv;
int option2;
#endif
+ rv = charger_get_option(&option);
+ if (rv)
+ return rv;
+
+ option &= ~OPTION0_LEARN_ENABLE;
+
+ rv = charger_set_option(option);
+ if (rv)
+ return rv;
+
#ifdef CONFIG_CHARGER_ILIM_PIN_DISABLED
/* Read the external ILIM pin enabled flag. */
rv = i2c_read16(I2C_PORT_CHARGER, BQ24773_ADDR,