Re: [PATCH v2 1/2] power: supply: max17042_battery: use VFSOC for capacity when no rsns

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 9/29/21 8:14 PM, Henrik Grimler wrote:
> On Galaxy S3 (i9300/i9305), which has the max17047 fuel gauge and no
> current sense resistor (rsns), the RepSOC register does not provide an
> accurate state of charge value. The reported value is wrong, and does
> not change over time. VFSOC however, which uses the voltage fuel gauge
> to determine the state of charge, always shows an accurate value.
> 
> For devices without current sense, VFSOC is already used for the
> soc-alert (0x0003 is written to MiscCFG register), so with this change
> the source of the alert and the PROP_CAPACITY value match.
> 
> Fixes: 359ab9f5b154 ("power_supply: Add MAX17042 Fuel Gauge Driver")
> Cc: <stable@xxxxxxxxxxxxxxx>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
> Suggested-by: Wolfgang Wiedmeyer <wolfgit@xxxxxxxxxxxx>
> Signed-off-by: Henrik Grimler <henrik@xxxxxxxxxx>
> ---
> Changes in v2:
> Re-write commit message to highlight that VFSOC is already used for
> alert, after Krzysztof's comments

Thanks, both patches looks good to me:

Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>

for the series.


Regards,

Hans


> ---
>  drivers/power/supply/max17042_battery.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c
> index 8dffae76b6a3..5809ba997093 100644
> --- a/drivers/power/supply/max17042_battery.c
> +++ b/drivers/power/supply/max17042_battery.c
> @@ -313,7 +313,10 @@ static int max17042_get_property(struct power_supply *psy,
>  		val->intval = data * 625 / 8;
>  		break;
>  	case POWER_SUPPLY_PROP_CAPACITY:
> -		ret = regmap_read(map, MAX17042_RepSOC, &data);
> +		if (chip->pdata->enable_current_sense)
> +			ret = regmap_read(map, MAX17042_RepSOC, &data);
> +		else
> +			ret = regmap_read(map, MAX17042_VFSOC, &data);
>  		if (ret < 0)
>  			return ret;
>  
> 
> base-commit: 5816b3e6577eaa676ceb00a848f0fd65fe2adc29
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux