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