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