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>
This commit is contained in:
Shawn Nematbakhsh
2016-05-31 18:16:00 -07:00
committed by chrome-bot
parent 1242805ba5
commit 0b55308198
2 changed files with 9 additions and 0 deletions

View File

@@ -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);

View File

@@ -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