From 062f33658aabdfb9255a0deda301e88b09d04804 Mon Sep 17 00:00:00 2001 From: Caveh Jalali Date: Thu, 11 Nov 2021 17:43:10 -0800 Subject: 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 Change-Id: Ie3a6aa2d585d7975ada2863fd20ad296b23d504c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3277938 Reviewed-by: Keith Short Reviewed-by: Boris Mittelberg Commit-Queue: Keith Short --- baseboard/intelrvp/adlrvp.h | 1 + board/anahera/board.h | 1 + board/brya/board.h | 1 + board/gimble/board.h | 1 + board/primus/board.h | 1 + board/redrix/board.h | 1 + board/taeko/board.h | 1 + driver/charger/bq25710.c | 38 +++++++++++++++++++++++--------------- driver/charger/bq25710.h | 2 -- include/config.h | 3 +++ zephyr/shim/include/config_chip.h | 7 ++++++- 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, ®)) { - 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, + ®)) { + 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, ®)) { 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 -- cgit v1.2.1