2023-07-14 18:15:20

by Rivera-Matos, Ricardo

[permalink] [raw]
Subject: [PATCH] power: supply: bq24190: Considers FORCE_20PCT when getting IPRECHG

Adds a check of the FORCE_20PCT bit when getting the precharge
current value.

According to the bit description for the FORCE_20PCT bit, when
FORCE_20PCT is true, the precharge current target is 50% of
what is configured in the IPRECHG bit field.

Signed-off-by: Ricardo Rivera-Matos <[email protected]>
Reviewed-by: David Rhodes <[email protected]>
---
drivers/power/supply/bq24190_charger.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
index ef8235848f56..3f99cb9590ba 100644
--- a/drivers/power/supply/bq24190_charger.c
+++ b/drivers/power/supply/bq24190_charger.c
@@ -965,7 +965,7 @@ static int bq24190_charger_get_precharge(struct bq24190_dev_info *bdi,
union power_supply_propval *val)
{
u8 v;
- int ret;
+ int curr, ret;

ret = bq24190_read_mask(bdi, BQ24190_REG_PCTCC,
BQ24190_REG_PCTCC_IPRECHG_MASK,
@@ -973,7 +973,20 @@ static int bq24190_charger_get_precharge(struct bq24190_dev_info *bdi,
if (ret < 0)
return ret;

- val->intval = ++v * 128 * 1000;
+ curr = ++v * 128 * 1000;
+
+ ret = bq24190_read_mask(bdi, BQ24190_REG_CCC,
+ BQ24190_REG_CCC_FORCE_20PCT_MASK,
+ BQ24190_REG_CCC_FORCE_20PCT_SHIFT, &v);
+ if (ret < 0)
+ return ret;
+
+ /* If FORCE_20PCT is enabled, then current is 50% of IPRECHG value */
+ if (v)
+ curr /= 2;
+
+ val->intval = curr;
+
return 0;
}

--
2.34.1



2023-07-19 21:47:22

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH] power: supply: bq24190: Considers FORCE_20PCT when getting IPRECHG

Hi,

On Fri, Jul 14, 2023 at 12:45:29PM -0500, Ricardo Rivera-Matos wrote:
> Adds a check of the FORCE_20PCT bit when getting the precharge
> current value.
>
> According to the bit description for the FORCE_20PCT bit, when
> FORCE_20PCT is true, the precharge current target is 50% of
> what is configured in the IPRECHG bit field.
>
> Signed-off-by: Ricardo Rivera-Matos <[email protected]>
> Reviewed-by: David Rhodes <[email protected]>
> ---

Thanks, queued.

-- Sebastian

> drivers/power/supply/bq24190_charger.c | 17 +++++++++++++++--
> 1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
> index ef8235848f56..3f99cb9590ba 100644
> --- a/drivers/power/supply/bq24190_charger.c
> +++ b/drivers/power/supply/bq24190_charger.c
> @@ -965,7 +965,7 @@ static int bq24190_charger_get_precharge(struct bq24190_dev_info *bdi,
> union power_supply_propval *val)
> {
> u8 v;
> - int ret;
> + int curr, ret;
>
> ret = bq24190_read_mask(bdi, BQ24190_REG_PCTCC,
> BQ24190_REG_PCTCC_IPRECHG_MASK,
> @@ -973,7 +973,20 @@ static int bq24190_charger_get_precharge(struct bq24190_dev_info *bdi,
> if (ret < 0)
> return ret;
>
> - val->intval = ++v * 128 * 1000;
> + curr = ++v * 128 * 1000;
> +
> + ret = bq24190_read_mask(bdi, BQ24190_REG_CCC,
> + BQ24190_REG_CCC_FORCE_20PCT_MASK,
> + BQ24190_REG_CCC_FORCE_20PCT_SHIFT, &v);
> + if (ret < 0)
> + return ret;
> +
> + /* If FORCE_20PCT is enabled, then current is 50% of IPRECHG value */
> + if (v)
> + curr /= 2;
> +
> + val->intval = curr;
> +
> return 0;
> }
>
> --
> 2.34.1
>


Attachments:
(No filename) (1.70 kB)
signature.asc (849.00 B)
Download all attachments