summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-05-31 18:16:00 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-06-01 18:16:03 -0700
commit0b55308198bb0833ae99eeb71facf470daffe596 (patch)
tree6c23fe89c291fce031a579cf72b53ca2589f8ccd
parent1242805ba54daba82cfe79b732ac82c530e4fd57 (diff)
downloadchrome-ec-0b55308198bb0833ae99eeb71facf470daffe596.tar.gz
bd99955: Clear IADP enable bit on init
After the EC is powered, we are no longer concerned with the IADP-selected current limit, so disable IADP measurement. On some platforms, this prevents IADP from interfering with register-selected current limits. BUG=chrome-os-partner:53693 BRANCH=None TEST=Verify reef selects a new input current limit when external charger is plugged. Change-Id: I1acadc03e3c978368dc96fd478970960106c18fb Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/348520 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: David Hendricks <dhendrix@chromium.org> Reviewed-by: Rachel Nancollas <rachelsn@google.com>
-rw-r--r--driver/charger/bd99955.c8
-rw-r--r--driver/charger/bd99955.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/driver/charger/bd99955.c b/driver/charger/bd99955.c
index 6953592fb1..77923f5bbb 100644
--- a/driver/charger/bd99955.c
+++ b/driver/charger/bd99955.c
@@ -549,6 +549,14 @@ static void bd99995_init(void)
ch_raw_write16(BD99955_CMD_VBATOVP_SET,
(bi->voltage_max + 500) & 0x7ff0,
BD99955_EXTENDED_COMMAND);
+
+ /* Disable IADP pin current limit */
+ if (ch_raw_read16(BD99955_CMD_VM_CTRL_SET, &reg,
+ BD99955_EXTENDED_COMMAND))
+ return;
+ reg &= ~BD99955_CMD_VM_CTRL_SET_EXTIADPEN;
+ ch_raw_write16(BD99955_CMD_VM_CTRL_SET, reg,
+ BD99955_EXTENDED_COMMAND);
}
DECLARE_HOOK(HOOK_INIT, bd99995_init, HOOK_PRIO_INIT_EXTPOWER);
diff --git a/driver/charger/bd99955.h b/driver/charger/bd99955.h
index 7deae54b09..c03c349935 100644
--- a/driver/charger/bd99955.h
+++ b/driver/charger/bd99955.h
@@ -183,6 +183,7 @@ enum bd99955_charge_port {
#define BD99955_CMD_EXT_PROTECT_SET 0x3E
#define BD99955_CMD_EXT_MAP_SET 0x3F
#define BD99955_CMD_VM_CTRL_SET 0x40
+#define BD99955_CMD_VM_CTRL_SET_EXTIADPEN (1 << 9)
#define BD99955_CMD_THERM_WINDOW_SET1 0x41
#define BD99955_CMD_THERM_WINDOW_SET2 0x42
#define BD99955_CMD_THERM_WINDOW_SET3 0x43