Re: [PATCH 3/3] power: supply: cpcap-charger: Improve battery detection

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

 



Hi!

> We are currently using a wrong ADC range for the battery detection.
> The ADC returns the battery temperature if connected.

This one looks good.

> Cc: Merlijn Wajer <merlijn@xxxxxxxxxx>

Acked-by: Pavel Machek <pavel@xxxxxx>

Would it also make sense to publish battery temperature somewhere? It
is somehow important for checking "what is going on" and it should
also be used to control charging. (Normal charging should only be
allowed in normal temperatures, like >10C and <30C or so..)

Thanks and best regards,
								Pavel


> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> ---
>  drivers/power/supply/cpcap-charger.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/power/supply/cpcap-charger.c b/drivers/power/supply/cpcap-charger.c
> --- a/drivers/power/supply/cpcap-charger.c
> +++ b/drivers/power/supply/cpcap-charger.c
> @@ -166,20 +166,21 @@ static enum power_supply_property cpcap_charger_props[] = {
>  	POWER_SUPPLY_PROP_CURRENT_NOW,
>  };
>  
> +/* No battery always shows temperature of -40000 */
>  static bool cpcap_charger_battery_found(struct cpcap_charger_ddata *ddata)
>  {
>  	struct iio_channel *channel;
> -	int error, value;
> +	int error, temperature;
>  
>  	channel = ddata->channels[CPCAP_CHARGER_IIO_BATTDET];
> -	error = iio_read_channel_raw(channel, &value);
> +	error = iio_read_channel_processed(channel, &temperature);
>  	if (error < 0) {
>  		dev_warn(ddata->dev, "%s failed: %i\n", __func__, error);
>  
>  		return false;
>  	}
>  
> -	return value == 1;
> +	return temperature > -20000 && temperature < 60000;
>  }
>  
>  static int cpcap_charger_get_charge_voltage(struct cpcap_charger_ddata *ddata)

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux