From 55c3b6d4b86bbb7ca66659db599bd2fbb08a1404 Mon Sep 17 00:00:00 2001 From: mahj8 Date: Wed, 24 Nov 2021 11:44:56 +0800 Subject: [PATCH] charging: set register 3250ma when icl >=3A As TI bq25890 chip accuracy issue, so when policy set icl >=3A, we need to set 3250ma at register for BQ25890H Change-Id: I74cd75fdae300b50a8a9581b751dff6890258e11 Signed-off-by: mahj8 Reviewed-on: https://gerrit.mot.com/2125735 Reviewed-by: Huosheng Liao SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Submit-Approved: Jira Key --- drivers/power/bq2589x_chg_mmi/bq2589x_charger.c | 3 ++- drivers/power/bq2589x_chg_mmi/bq2589x_reg.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c b/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c index 40d1b193d1ed..d4dbed656a6b 100644 --- a/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c +++ b/drivers/power/bq2589x_chg_mmi/bq2589x_charger.c @@ -506,7 +506,8 @@ int bq2589x_set_input_current_limit(struct bq2589x *bq, int curr) if (curr < BQ2589X_IINLIM_BASE) val = 0; - else if (curr > BQ2589X_IINLIM_MAX) + /*for HW accuracy issue, so icl >= 3A we need to set 0x3F*/ + else if (curr >= BQ2589X_IINLIM_MAX) val = 0x3F; else val = (curr - BQ2589X_IINLIM_BASE) / BQ2589X_IINLIM_LSB; diff --git a/drivers/power/bq2589x_chg_mmi/bq2589x_reg.h b/drivers/power/bq2589x_chg_mmi/bq2589x_reg.h index 3b20715406d8..0f7bca2dd0b8 100644 --- a/drivers/power/bq2589x_chg_mmi/bq2589x_reg.h +++ b/drivers/power/bq2589x_chg_mmi/bq2589x_reg.h @@ -17,7 +17,8 @@ #define BQ2589X_IINLIM_SHIFT 0 #define BQ2589X_IINLIM_BASE 100 #define BQ2589X_IINLIM_LSB 50 -#define BQ2589X_IINLIM_MAX 3250 +/*for HW accuracy issue, so icl >= 3A we need to set 0x3F*/ +#define BQ2589X_IINLIM_MAX 3000 /* Register 01h */ #define BQ2589X_REG_01 0x01