diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-09-07 14:14:42 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-16 21:59:31 -0700 |
commit | cca986c9b4a3d078cfc8cfffd3201b32216a298d (patch) | |
tree | 81f52a78d5b5904622bcb03d5e81d27fdd678354 | |
parent | 7cb5f24596af261a46f0fab9f3f6106cb8d33b99 (diff) | |
download | chrome-ec-cca986c9b4a3d078cfc8cfffd3201b32216a298d.tar.gz |
charger: bd99955: Adjust charger params at init
- Use 1200KHz DCDC clock.
- Set reverse current threshold to -50mV.
- Set internal gain to 2x.
BUG=chrome-os-partner:57118,chrome-os-partner:56255
TEST=Manual on kevin and reef, verify charging w/ zinger.
BRANCH=None
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: Ib7188764206743543fb873f303acb7b62977dc3d
Reviewed-on: https://chromium-review.googlesource.com/382451
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | driver/charger/bd99955.c | 19 | ||||
-rw-r--r-- | driver/charger/bd99955.h | 11 |
2 files changed, 25 insertions, 5 deletions
diff --git a/driver/charger/bd99955.c b/driver/charger/bd99955.c index c392997594..110e03103a 100644 --- a/driver/charger/bd99955.c +++ b/driver/charger/bd99955.c @@ -659,11 +659,13 @@ static void bd99995_init(void) ch_raw_write16(BD99955_CMD_CHGOP_SET1, reg, BD99955_EXTENDED_COMMAND); - /* Enable BC1.2 USB charging and DC/DC converter */ + /* Enable BC1.2 USB charging and DC/DC converter @ 1200KHz */ if (ch_raw_read16(BD99955_CMD_CHGOP_SET2, ®, BD99955_EXTENDED_COMMAND)) return; - reg &= ~(BD99955_CMD_CHGOP_SET2_USB_SUS); + reg &= ~(BD99955_CMD_CHGOP_SET2_USB_SUS | + BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL); + reg |= BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL_1200; ch_raw_write16(BD99955_CMD_CHGOP_SET2, reg, BD99955_EXTENDED_COMMAND); @@ -714,6 +716,19 @@ static void bd99995_init(void) ch_raw_write16(BD99955_CMD_VCC_TH_SET, BD99955_VBUS_DISCHARGE_TH, BD99955_EXTENDED_COMMAND); #endif + + /* Unlock debug regs */ + ch_raw_write16(BD99955_CMD_PROTECT_SET, 0x3c, BD99955_EXTENDED_COMMAND); + ch_raw_write16(BD99955_CMD_MAP_SET, 0x2, BD99955_EXTENDED_COMMAND); + + /* Undocumented - reverse current threshold = -50mV */ + ch_raw_write16(0x14, 0x0202, BD99955_DEBUG_COMMAND); + /* Undocumented - internal gain = 2x */ + ch_raw_write16(0x1a, 0x80, BD99955_DEBUG_COMMAND); + + /* Re-lock debug regs */ + ch_raw_write16(BD99955_CMD_PROTECT_SET, 0x0, BD99955_EXTENDED_COMMAND); + ch_raw_write16(BD99955_CMD_MAP_SET, 0x1, 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 3cfb9f5192..2c38d5878f 100644 --- a/driver/charger/bd99955.h +++ b/driver/charger/bd99955.h @@ -104,9 +104,14 @@ enum bd99955_charge_port { #define BD99955_CMD_CHGOP_SET1_SDP_CHG_TRIG (1 << 8) #define BD99955_CMD_CHGOP_SET2 0x0C -#define BD99955_CMD_CHGOP_SET2_BATT_LEARN (1 << 8) -#define BD99955_CMD_CHGOP_SET2_CHG_EN (1 << 7) -#define BD99955_CMD_CHGOP_SET2_USB_SUS (1 << 6) +#define BD99955_CMD_CHGOP_SET2_BATT_LEARN (1 << 8) +#define BD99955_CMD_CHGOP_SET2_CHG_EN (1 << 7) +#define BD99955_CMD_CHGOP_SET2_USB_SUS (1 << 6) +#define BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL (3 << 2) +#define BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL_600 (0 << 2) +#define BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL_857 (1 << 2) +#define BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL_1000 (2 << 2) +#define BD99955_CMD_CHGOP_SET2_DCDC_CLK_SEL_1200 (3 << 2) #define BD99955_CMD_VBUSCLPS_TH_SET 0x0D #define BD99955_CMD_VCCCLPS_TH_SET 0x0E |