thermal: kirkwood: Fix thermal sensor formula
authorEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Fri, 22 Mar 2013 12:23:02 +0000 (09:23 -0300)
committerZhang Rui <rui.zhang@intel.com>
Tue, 26 Mar 2013 14:12:20 +0000 (22:12 +0800)
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>
drivers/thermal/kirkwood_thermal.c

index d2e05eec722aa4e8bf388cf3687ba2e316b146ca..dfeceaffbc03c3f462170d721124ad3b3eac1db9 100644 (file)
@@ -49,13 +49,13 @@ static int kirkwood_get_temp(struct thermal_zone_device *thermal,
        }
 
        /*
-        * Calculate temperature. See Section 8.10.1 of the 88AP510,
-        * datasheet, which has the same sensor.
-        * Documentation/arm/Marvell/README
+        * Calculate temperature. According to Marvell internal
+        * documentation the formula for this is:
+        * Celsius = (322-reg)/1.3625
         */
        reg = (reg >> KIRKWOOD_THERMAL_TEMP_OFFSET) &
                KIRKWOOD_THERMAL_TEMP_MASK;
-       *temp = ((2281638UL - (7298*reg)) / 10);
+       *temp = ((3220000000UL - (10000000UL * reg)) / 13625);
 
        return 0;
 }
This page took 0.025961 seconds and 5 git commands to generate.