summaryrefslogtreecommitdiff
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 18:48:32 +0000
commitaa0ad27cf26c6b796a60ff0c20f2fc62f847a538 (patch)
tree1a2c765bef563573fc2b9ed0d1c958efd2cb52bd
parent41cd36cc213b7d9f37448c5591915d3c6374dd20 (diff)
downloadchrome-ec-aa0ad27cf26c6b796a60ff0c20f2fc62f847a538.tar.gz
CHERRY-PICK: 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: Icb28d25416ae8bd573f904387885ae6d86130881 Original-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> Reviewed-on: https://chromium-review.googlesource.com/222865
-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,