thermal: dove: Fix thermal sensor formula

The currently formula has been taken from the 88AP510 SoC datasheet,
which is not exactly correct. The correct value for the temperature
in Celcius of the sensor present in this SoC is:

  Celsius = (322-reg)/1.3625

Signed-off-by: Lior Amsalem <alior@marvell.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
Ezequiel Garcia 2013-03-22 09:23:03 -03:00 коммит произвёл Zhang Rui
Родитель 696b6075af
Коммит 2fd1db8819
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -107,12 +107,13 @@ static int dove_get_temp(struct thermal_zone_device *thermal,
}
/*
* Calculate temperature. See Section 8.10.1 of 88AP510,
* Documentation/arm/Marvell/README
* Calculate temperature. According to Marvell internal
* documentation the formula for this is:
* Celsius = (322-reg)/1.3625
*/
reg = readl_relaxed(priv->sensor);
reg = (reg >> DOVE_THERMAL_TEMP_OFFSET) & DOVE_THERMAL_TEMP_MASK;
*temp = ((2281638UL - (7298*reg)) / 10);
*temp = ((3220000000UL - (10000000UL * reg)) / 13625);
return 0;
}