diff options
author | Scott Chao <scott_chao@wistron.corp-partner.google.com> | 2021-08-11 11:17:50 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-08-12 07:25:58 +0000 |
commit | f1b65fc912aa4adefb69ed8f264ef85d43bdc21e (patch) | |
tree | 76aad186e922572249e1f6e9aa3abebea8f1443e | |
parent | 0c3494fa8ef4fddee18a3022e4cfb256ea6683da (diff) | |
download | chrome-ec-f1b65fc912aa4adefb69ed8f264ef85d43bdc21e.tar.gz |
bq25710: add min system voltage configuration
Add this function to let each board can control it.
BUG=b:196184163
BRANCH=none
TEST=make -j BOARD=gimble
Signed-off-by: Scott Chao <scott_chao@wistron.corp-partner.google.com>
Change-Id: Ic47c67e11eba1bfadef5f5942cff9fcad8b49ad2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3086786
Reviewed-by: caveh jalali <caveh@chromium.org>
-rw-r--r-- | driver/charger/bq25710.c | 14 | ||||
-rw-r--r-- | driver/charger/bq25710.h | 19 |
2 files changed, 33 insertions, 0 deletions
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c index 8221852ded..df898467be 100644 --- a/driver/charger/bq25710.c +++ b/driver/charger/bq25710.c @@ -102,6 +102,12 @@ static inline enum ec_error_list raw_read16(int chgnum, int offset, int *value) offset, value); } +static inline int min_system_voltage_to_reg(int voltage_mv) +{ + return (voltage_mv / BQ25710_MIN_SYSTEM_VOLTAGE_STEP_MV) << + BQ25710_MIN_SYSTEM_VOLTAGE_SHIFT; +} + static inline enum ec_error_list raw_write16(int chgnum, int offset, int value) { return i2c_write16(chg_chips[chgnum].i2c_port, @@ -522,6 +528,14 @@ static enum ec_error_list bq25710_set_option(int chgnum, int option) return raw_write16(chgnum, BQ25710_REG_CHARGE_OPTION_0, option); } +int bq25710_set_min_system_voltage(int chgnum, int mv) +{ + int reg; + + reg = min_system_voltage_to_reg(mv); + return raw_write16(chgnum, BQ25710_REG_MIN_SYSTEM_VOLTAGE, reg); +} + #ifdef CONFIG_CHARGE_RAMP_HW static void bq25710_chg_ramp_handle(void) diff --git a/driver/charger/bq25710.h b/driver/charger/bq25710.h index 25e6c1546d..6cbd386a4c 100644 --- a/driver/charger/bq25710.h +++ b/driver/charger/bq25710.h @@ -118,6 +118,25 @@ BQ25720_VMIN_AP_VSYS_TH2_SHIFT) #endif +/* Min System Voltage Register */ +#if defined(CONFIG_CHARGER_BQ25720) +#define BQ25710_MIN_SYSTEM_VOLTAGE_STEP_MV 100 +#elif defined(CONFIG_CHARGER_BQ25710) +#define BQ25710_MIN_SYSTEM_VOLTAGE_STEP_MV 256 +#else +#error Only the BQ25720 and BQ25710 are supported by bq25710 driver. +#endif +#define BQ25710_MIN_SYSTEM_VOLTAGE_SHIFT 8 + extern const struct charger_drv bq25710_drv; +/** + * Set VSYS_MIN + * + * @param chgnum: Index into charger chips + * @param mv: min system voltage in mV + * @return EC_SUCCESS or error + */ +int bq25710_set_min_system_voltage(int chgnum, int mv); + #endif /* __CROS_EC_BQ25710_H */ |