diff options
author | Caveh Jalali <caveh@chromium.org> | 2021-11-15 22:46:14 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-17 03:36:06 +0000 |
commit | def81b950c46f0f353f5c0617f0eed32ae88ea30 (patch) | |
tree | 4c7d38240370a3609b204f6c0fd63ba547fdfc76 /driver | |
parent | 57a3bcaf4f1e68376c883b8e0739bbaa9e2cde96 (diff) | |
download | chrome-ec-def81b950c46f0f353f5c0617f0eed32ae88ea30.tar.gz |
bq25710: Add VSYS_MIN to register definitions
This adds VSYS_MIN register definitions to bq257x0_regs.h. This register
is called MIN_SYSTEM_VOLTAGE on the bq25710, so that has also been
added for completeness.
Code referring to this register has been updated to use the chip
specific macros as the layout and encoding of the voltage field is
different.
BRANCH=none
BUG=b:185190976
TEST=buildall passes
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Change-Id: Ib456d66e10cb274282deca11a15262e8242ddb08
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3284639
Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/charger/bq25710.c | 13 | ||||
-rw-r--r-- | driver/charger/bq25710.h | 8 | ||||
-rw-r--r-- | driver/charger/bq257x0_regs.h | 16 |
3 files changed, 24 insertions, 13 deletions
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c index 5305614b21..9e78432628 100644 --- a/driver/charger/bq25710.c +++ b/driver/charger/bq25710.c @@ -146,8 +146,17 @@ static inline enum ec_error_list raw_read16(int chgnum, int offset, int *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; + int steps; + int reg; + + if (IS_ENABLED(CONFIG_CHARGER_BQ25720)) { + steps = voltage_mv / BQ25720_VSYS_MIN_VOLTAGE_STEP_MV; + reg = SET_BQ_FIELD(BQ25720, VSYS_MIN, VOLTAGE, steps, 0); + } else { + steps = voltage_mv / BQ25710_MIN_SYSTEM_VOLTAGE_STEP_MV; + reg = SET_BQ_FIELD(BQ25710, MIN_SYSTEM, VOLTAGE, steps, 0); + } + return reg; } static inline enum ec_error_list raw_write16(int chgnum, int offset, int value) diff --git a/driver/charger/bq25710.h b/driver/charger/bq25710.h index 3357a3fc4f..603f3bf140 100644 --- a/driver/charger/bq25710.h +++ b/driver/charger/bq25710.h @@ -60,14 +60,8 @@ #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 +#define BQ25720_VSYS_MIN_VOLTAGE_STEP_MV 256 extern const struct charger_drv bq25710_drv; diff --git a/driver/charger/bq257x0_regs.h b/driver/charger/bq257x0_regs.h index 5a8b1fdd96..073eb30b55 100644 --- a/driver/charger/bq257x0_regs.h +++ b/driver/charger/bq257x0_regs.h @@ -202,10 +202,18 @@ /* * ADCVBUS/PSYS Register (0x23) */ -#define BQ257X0_ADC_VBUS_PSYS_VBUS_SHIFT 8 -#define BQ257X0_ADC_VBUS_PSYS_VBUS_BITS 8 -#define BQ257X0_ADC_VBUS_PSYS_PSYS_SHIFT 0 -#define BQ257X0_ADC_VBUS_PSYS_PSYS_BITS 8 +#define BQ257X0_ADC_VBUS_PSYS_VBUS_SHIFT 8 +#define BQ257X0_ADC_VBUS_PSYS_VBUS_BITS 8 +#define BQ257X0_ADC_VBUS_PSYS_PSYS_SHIFT 0 +#define BQ257X0_ADC_VBUS_PSYS_PSYS_BITS 8 + +/* + * VSYS_MIN Register (0x3e) + */ +#define BQ25710_MIN_SYSTEM_VOLTAGE_SHIFT 8 +#define BQ25710_MIN_SYSTEM_VOLTAGE_BITS 6 +#define BQ25720_VSYS_MIN_VOLTAGE_SHIFT 8 +#define BQ25720_VSYS_MIN_VOLTAGE_BITS 8 /* * BQ257x0 register field accessor macros. |