summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorreno.wang <reno.wang@lcfc.corp-partner.google.com>2021-12-07 18:47:10 +0800
committerCommit Bot <commit-bot@chromium.org>2021-12-29 02:51:49 +0000
commit69d692ba7a3e6a961c002d84eb2ea6a28137b131 (patch)
tree770aa29dc31a71467b057282f80bd11aac982b23 /driver
parent9c8eaaae290e5082f321a8baae73b6348dfc8c7a (diff)
downloadchrome-ec-69d692ba7a3e6a961c002d84eb2ea6a28137b131.tar.gz
bq257x0: add customerized ILIM2 threshold
BRANCH=none BUG=b:210073795 TEST=buildall pass Signed-off-by: reno.wang <reno.wang@lcfc.corp-partner.google.com> Change-Id: I2a98db32daa12072d28c7e8e416cc048def15d80 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3319991 Reviewed-by: caveh jalali <caveh@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r--driver/charger/bq25710.c37
-rw-r--r--driver/charger/bq257x0_regs.h7
2 files changed, 37 insertions, 7 deletions
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c
index 0e0cf56725..2f5ac93e91 100644
--- a/driver/charger/bq25710.c
+++ b/driver/charger/bq25710.c
@@ -58,6 +58,12 @@
#define CONFIG_CHARGER_BQ25710_PKPWR_TOVLD_DEG 0
#endif
+#ifndef CONFIG_CHARGER_BQ257X0_ILIM2_VTH_CUSTOM
+/* Reduce ILIM from default of 150% to 110% */
+#define CONFIG_CHARGER_BQ257X0_ILIM2_VTH \
+ BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__1P10
+#endif
+
/*
* Helper macros
*/
@@ -90,6 +96,14 @@
CHARGE_OPTION_4, \
_field, _c, (_x))
+#define SET_PO0(_field, _v, _x) SET_BQ_FIELD(BQ257X0, \
+ PROCHOT_OPTION_0, \
+ _field, _v, (_x))
+
+#define SET_PO0_BY_NAME(_field, _c, _x) SET_BQ_FIELD_BY_NAME(BQ257X0, \
+ PROCHOT_OPTION_0, \
+ _field, _c, (_x))
+
#define SET_PO1(_field, _v, _x) SET_BQ_FIELD(BQ257X0, \
PROCHOT_OPTION_1, \
_field, _v, (_x))
@@ -334,6 +348,20 @@ static int bq257x0_init_charge_option_1(int chgnum)
return raw_write16(chgnum, BQ25710_REG_CHARGE_OPTION_1, reg);
}
+static int bq257x0_init_prochot_option_0(int chgnum)
+{
+ int rv;
+ int reg;
+
+ rv = raw_read16(chgnum, BQ25710_REG_PROCHOT_OPTION_0, &reg);
+ if (rv)
+ return rv;
+
+ reg = SET_PO0(ILIM2_VTH, CONFIG_CHARGER_BQ257X0_ILIM2_VTH, reg);
+
+ return raw_write16(chgnum, BQ25710_REG_PROCHOT_OPTION_0, reg);
+}
+
static int bq257x0_init_prochot_option_1(int chgnum)
{
int rv;
@@ -548,14 +576,9 @@ static void bq25710_init(int chgnum)
bq257x0_init_charge_option_1(chgnum);
- bq257x0_init_prochot_option_1(chgnum);
+ bq257x0_init_prochot_option_0(chgnum);
- /* Reduce ILIM from default of 150% to 105% */
- if (!raw_read16(chgnum, BQ25710_REG_PROCHOT_OPTION_0, &reg)) {
- reg = SET_BQ_FIELD(BQ257X0, PROCHOT_OPTION_0, ILIM2_VTH, 0,
- reg);
- raw_write16(chgnum, BQ25710_REG_PROCHOT_OPTION_0, reg);
- }
+ bq257x0_init_prochot_option_1(chgnum);
bq257x0_init_charge_option_2(chgnum);
diff --git a/driver/charger/bq257x0_regs.h b/driver/charger/bq257x0_regs.h
index 445a3f490d..58d203b55e 100644
--- a/driver/charger/bq257x0_regs.h
+++ b/driver/charger/bq257x0_regs.h
@@ -135,6 +135,13 @@
*/
#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH_SHIFT 11
#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH_BITS 5
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__1P10 1
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__1P40 7
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__1P50 9
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__2P30 25
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__2P50 26
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__4P50 30
+#define BQ257X0_PROCHOT_OPTION_0_ILIM2_VTH__NA 31
/*
* ProchotOption1 Register (0x34)