diff options
author | Mohammed Habibulla <moch@chromium.org> | 2014-10-09 14:43:08 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-10-10 04:36:46 +0000 |
commit | f92f70d04cc90bb313b1a7ceadb7bcc0bfc82bb4 (patch) | |
tree | 9d2a7ad946d8cb8c0f9ac4e7fbf6fe3579699bd7 /driver | |
parent | fd7846fe094ae70fbbdc3026c4500999a0adf737 (diff) | |
download | chrome-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.c | 1 | ||||
-rw-r--r-- | driver/charger/bq24725.c | 11 | ||||
-rw-r--r-- | driver/charger/bq24735.c | 11 | ||||
-rw-r--r-- | driver/charger/bq24738.c | 1 | ||||
-rw-r--r-- | driver/charger/bq24773.c | 12 |
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, |