summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorCaveh Jalali <caveh@chromium.org>2021-11-15 22:46:14 -0800
committerCommit Bot <commit-bot@chromium.org>2021-11-17 03:36:06 +0000
commitdef81b950c46f0f353f5c0617f0eed32ae88ea30 (patch)
tree4c7d38240370a3609b204f6c0fd63ba547fdfc76 /driver
parent57a3bcaf4f1e68376c883b8e0739bbaa9e2cde96 (diff)
downloadchrome-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.c13
-rw-r--r--driver/charger/bq25710.h8
-rw-r--r--driver/charger/bq257x0_regs.h16
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.