summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaveh Jalali <caveh@chromium.org>2021-11-11 17:43:10 -0800
committerCommit Bot <commit-bot@chromium.org>2021-11-13 00:24:03 +0000
commit062f33658aabdfb9255a0deda301e88b09d04804 (patch)
treefe450a85d36aa3be77b5023df022f3a464389c28
parenta2cdbd60e4de8b45054f1c032868d6c7232d3299 (diff)
downloadchrome-ec-062f33658aabdfb9255a0deda301e88b09d04804.tar.gz
bq25710: Make VSYS_TH2 Kconfig friendly
This adds the CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM config option to decide if CONFIG_CHARGER_BQ25720_VSYS_TH2_DV should be applied. It is no longer sufficient to set CONFIG_CHARGER_BQ25720_VSYS_TH2_DV to the desired value. This matches how defines are generated by kconfig and allows IS_ENABLED() to be used. BRANCH=none BUG=b:185190976 TEST=buildall passes Signed-off-by: Caveh Jalali <caveh@chromium.org> Change-Id: Ie3a6aa2d585d7975ada2863fd20ad296b23d504c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3277938 Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: Keith Short <keithshort@chromium.org>
-rw-r--r--baseboard/intelrvp/adlrvp.h1
-rw-r--r--board/anahera/board.h1
-rw-r--r--board/brya/board.h1
-rw-r--r--board/gimble/board.h1
-rw-r--r--board/primus/board.h1
-rw-r--r--board/redrix/board.h1
-rw-r--r--board/taeko/board.h1
-rw-r--r--driver/charger/bq25710.c38
-rw-r--r--driver/charger/bq25710.h2
-rw-r--r--include/config.h3
-rw-r--r--zephyr/shim/include/config_chip.h7
11 files changed, 39 insertions, 18 deletions
diff --git a/baseboard/intelrvp/adlrvp.h b/baseboard/intelrvp/adlrvp.h
index ab0471adaf..4edc9a9da3 100644
--- a/baseboard/intelrvp/adlrvp.h
+++ b/baseboard/intelrvp/adlrvp.h
@@ -124,6 +124,7 @@
#define CONFIG_CHARGER_ISL9241
/* Charger chip on ADL-N */
#define CONFIG_CHARGER_BQ25720
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR_AC 10
diff --git a/board/anahera/board.h b/board/anahera/board.h
index f9809906c8..591e18bced 100644
--- a/board/anahera/board.h
+++ b/board/anahera/board.h
@@ -136,6 +136,7 @@
/* Charger defines */
#define CONFIG_CHARGER_BQ25720
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGE_RAMP_HW
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
diff --git a/board/brya/board.h b/board/brya/board.h
index 113c7e7e40..f7ce860fe9 100644
--- a/board/brya/board.h
+++ b/board/brya/board.h
@@ -203,6 +203,7 @@
/* Charger defines */
#define CONFIG_CHARGER_BQ25720
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGE_RAMP_SW
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
diff --git a/board/gimble/board.h b/board/gimble/board.h
index ad32957653..96c8e6326d 100644
--- a/board/gimble/board.h
+++ b/board/gimble/board.h
@@ -179,6 +179,7 @@
/* Charger defines */
#define CONFIG_CHARGER_BQ25720
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGE_RAMP_SW
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
diff --git a/board/primus/board.h b/board/primus/board.h
index 8586d09887..22ee215aca 100644
--- a/board/primus/board.h
+++ b/board/primus/board.h
@@ -134,6 +134,7 @@
/* Charger defines */
#define CONFIG_CHARGER_BQ25720
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGE_RAMP_SW
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
diff --git a/board/redrix/board.h b/board/redrix/board.h
index cb548384b6..fa6a5b7dd5 100644
--- a/board/redrix/board.h
+++ b/board/redrix/board.h
@@ -187,6 +187,7 @@
* rebooting with low charge level batteries.
*/
#define CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA 8192
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGE_RAMP_HW
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
diff --git a/board/taeko/board.h b/board/taeko/board.h
index b84099d13d..66905bb82d 100644
--- a/board/taeko/board.h
+++ b/board/taeko/board.h
@@ -170,6 +170,7 @@
/* Charger defines */
#define CONFIG_CHARGER_BQ25720
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV 70
#define CONFIG_CHARGE_RAMP_SW
#define CONFIG_CHARGER_BQ25710_SENSE_RESISTOR 10
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c
index 1b59881249..c8e0efd6ee 100644
--- a/driver/charger/bq25710.c
+++ b/driver/charger/bq25710.c
@@ -31,6 +31,13 @@
#error "BQ25710 is a NVDC charger, please enable CONFIG_CHARGER_NARROW_VDC."
#endif
+#ifndef CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV GET_BQ_FIELD(BQ25720, \
+ VMIN_AP, \
+ VSYS_TH2, \
+ UINT16_MAX)
+#endif
+
/*
* Helper macros
*/
@@ -66,9 +73,7 @@
#define REG_TO_CHARGING_CURRENT(REG) ((REG) / CHARGING_RESISTOR_RATIO)
#define CHARGING_CURRENT_TO_REG(CUR) ((CUR) * CHARGING_RESISTOR_RATIO)
-#ifdef CONFIG_CHARGER_BQ25720
#define VMIN_AP_VSYS_TH2_TO_REG(DV) ((DV) - 32)
-#endif
/* Console output macros */
#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
@@ -405,20 +410,23 @@ static void bq25710_init(int chgnum)
raw_write16(chgnum, BQ25710_REG_PROCHOT_OPTION_1, reg);
}
-#ifdef CONFIG_CHARGER_BQ25720_VSYS_TH2_DV
- /*
- * The default VSYS_TH2 is 5.9v for a 2S config. Boards
- * may need to increase this for stability. PROCHOT is
- * asserted when the threshold is reached.
- */
- if (!raw_read16(chgnum, BQ25720_REG_VMIN_ACTIVE_PROTECTION, &reg)) {
- int th2_dv = VMIN_AP_VSYS_TH2_TO_REG(
- CONFIG_CHARGER_BQ25720_VSYS_TH2_DV);
-
- reg = SET_BQ_FIELD(BQ25720, VMIN_AP, VSYS_TH2, th2_dv, reg);
- raw_write16(chgnum, BQ25720_REG_VMIN_ACTIVE_PROTECTION, reg);
+ if (IS_ENABLED(CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM)) {
+ /*
+ * The default VSYS_TH2 is 5.9v for a 2S config. Boards
+ * may need to increase this for stability. PROCHOT is
+ * asserted when the threshold is reached.
+ */
+ if (!raw_read16(chgnum, BQ25720_REG_VMIN_ACTIVE_PROTECTION,
+ &reg)) {
+ int th2_dv = VMIN_AP_VSYS_TH2_TO_REG(
+ CONFIG_CHARGER_BQ25720_VSYS_TH2_DV);
+
+ reg = SET_BQ_FIELD(BQ25720, VMIN_AP, VSYS_TH2,
+ th2_dv, reg);
+ raw_write16(chgnum, BQ25720_REG_VMIN_ACTIVE_PROTECTION,
+ reg);
+ }
}
-#endif
/* Reduce ILIM from default of 150% to 105% */
if (!raw_read16(chgnum, BQ25710_REG_PROCHOT_OPTION_0, &reg)) {
diff --git a/driver/charger/bq25710.h b/driver/charger/bq25710.h
index f6359cdc53..3357a3fc4f 100644
--- a/driver/charger/bq25710.h
+++ b/driver/charger/bq25710.h
@@ -30,10 +30,8 @@
#define BQ25710_REG_PROCHOT_OPTION_0 0x33
#define BQ25710_REG_PROCHOT_OPTION_1 0x34
#define BQ25710_REG_ADC_OPTION 0x35
-#ifdef CONFIG_CHARGER_BQ25720
#define BQ25720_REG_CHARGE_OPTION_4 0x36
#define BQ25720_REG_VMIN_ACTIVE_PROTECTION 0x37
-#endif
#define BQ25710_REG_OTG_VOLTAGE 0x3B
#define BQ25710_REG_OTG_CURRENT 0x3C
#define BQ25710_REG_INPUT_VOLTAGE 0x3D
diff --git a/include/config.h b/include/config.h
index 6ac318efa7..5622e43d39 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1037,6 +1037,9 @@
*/
#undef CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA
+/* Enable if CONFIG_CHARGER_BQ25720_VSYS_TH2_DV should be applied */
+#undef CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
+
/*
* This config option is used to set the charger's VSYS voltage
* threshold. When the voltage drops to this level, PROCHOT is asserted
diff --git a/zephyr/shim/include/config_chip.h b/zephyr/shim/include/config_chip.h
index 665d7ade58..305173eaeb 100644
--- a/zephyr/shim/include/config_chip.h
+++ b/zephyr/shim/include/config_chip.h
@@ -1714,8 +1714,13 @@
#define CONFIG_CHARGER_BQ25720
#endif
-#undef CONFIG_CHARGER_BQ25720_VSYS_TH2_DV
+#undef CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
#ifdef CONFIG_PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_CUSTOM
+#define CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
+#endif
+
+#undef CONFIG_CHARGER_BQ25720_VSYS_TH2_DV
+#ifdef CONFIG_PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_DV
#define CONFIG_CHARGER_BQ25720_VSYS_TH2_DV \
CONFIG_PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_DV
#endif