summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
Diffstat (limited to 'driver')
-rw-r--r--driver/charger/bq25710.c14
-rw-r--r--driver/charger/bq25710.h19
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 */