ab8500_btemp: Allign battery temperature resolution with the framework
The Linux Power Supply framework expects battery temperatures to have a resolution of 0.1 degree Celsius; however, the AB8500 btemp driver supplies a battery temperature resolution of 1 degree Celsius. We therefore have to use a factor 10 on the measured values. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Anton Vorontsov <anton@enomsg.org>
This commit is contained in:
parent
129d583b44
commit
5b41aa9f2b
|
@ -746,22 +746,22 @@ static int ab8500_btemp_get_temp(struct ab8500_btemp *di)
|
||||||
} else {
|
} else {
|
||||||
if (di->events.btemp_low) {
|
if (di->events.btemp_low) {
|
||||||
if (temp > di->btemp_ranges.btemp_low_limit)
|
if (temp > di->btemp_ranges.btemp_low_limit)
|
||||||
temp = di->btemp_ranges.btemp_low_limit;
|
temp = di->btemp_ranges.btemp_low_limit * 10;
|
||||||
else
|
else
|
||||||
temp = di->bat_temp * 10;
|
temp = di->bat_temp * 10;
|
||||||
} else if (di->events.btemp_high) {
|
} else if (di->events.btemp_high) {
|
||||||
if (temp < di->btemp_ranges.btemp_high_limit)
|
if (temp < di->btemp_ranges.btemp_high_limit)
|
||||||
temp = di->btemp_ranges.btemp_high_limit;
|
temp = di->btemp_ranges.btemp_high_limit * 10;
|
||||||
else
|
else
|
||||||
temp = di->bat_temp * 10;
|
temp = di->bat_temp * 10;
|
||||||
} else if (di->events.btemp_lowmed) {
|
} else if (di->events.btemp_lowmed) {
|
||||||
if (temp > di->btemp_ranges.btemp_med_limit)
|
if (temp > di->btemp_ranges.btemp_med_limit)
|
||||||
temp = di->btemp_ranges.btemp_med_limit;
|
temp = di->btemp_ranges.btemp_med_limit * 10;
|
||||||
else
|
else
|
||||||
temp = di->bat_temp * 10;
|
temp = di->bat_temp * 10;
|
||||||
} else if (di->events.btemp_medhigh) {
|
} else if (di->events.btemp_medhigh) {
|
||||||
if (temp < di->btemp_ranges.btemp_med_limit)
|
if (temp < di->btemp_ranges.btemp_med_limit)
|
||||||
temp = di->btemp_ranges.btemp_med_limit;
|
temp = di->btemp_ranges.btemp_med_limit * 10;
|
||||||
else
|
else
|
||||||
temp = di->bat_temp * 10;
|
temp = di->bat_temp * 10;
|
||||||
} else
|
} else
|
||||||
|
@ -1030,8 +1030,8 @@ static int ab8500_btemp_probe(struct platform_device *pdev)
|
||||||
ab8500_btemp_periodic_work);
|
ab8500_btemp_periodic_work);
|
||||||
|
|
||||||
/* Set BTEMP thermal limits. Low and Med are fixed */
|
/* Set BTEMP thermal limits. Low and Med are fixed */
|
||||||
di->btemp_ranges.btemp_low_limit = BTEMP_THERMAL_LOW_LIMIT;
|
di->btemp_ranges.btemp_low_limit = BTEMP_THERMAL_LOW_LIMIT * 10;
|
||||||
di->btemp_ranges.btemp_med_limit = BTEMP_THERMAL_MED_LIMIT;
|
di->btemp_ranges.btemp_med_limit = BTEMP_THERMAL_MED_LIMIT * 10;
|
||||||
|
|
||||||
ret = abx500_get_register_interruptible(di->dev, AB8500_CHARGER,
|
ret = abx500_get_register_interruptible(di->dev, AB8500_CHARGER,
|
||||||
AB8500_BTEMP_HIGH_TH, &val);
|
AB8500_BTEMP_HIGH_TH, &val);
|
||||||
|
|
Loading…
Reference in New Issue