Re: [PATCH] ARM: dts: exynos: Use thermal fuse value for thermal zone 0 on Exynos5420

Krzysztof Kozlowski
2017-03-04T08:03:25Z

On Fri, Mar 03, 2017 at 06:50:06PM -0300, Javier Martinez Canillas wrote:
> Hello Krzysztof,
>
> On 02/11/2017 05:14 PM, Krzysztof Kozlowski wrote:
> > In Odroid XU3 Lite board, the temperature levels reported for thermal
> > zone 0 were weird. In warm room:
> > /sys/class/thermal/thermal_zone0/temp:32000
> > /sys/class/thermal/thermal_zone1/temp:51000
> > /sys/class/thermal/thermal_zone2/temp:55000
> > /sys/class/thermal/thermal_zone3/temp:54000
> > /sys/class/thermal/thermal_zone4/temp:51000
> >
> > Sometimes after booting the value was even equal to ambient temperature
> > which is highly unlikely to be a real temperature of sensor in SoC.
> >
> > The thermal sensor's calibration (trimming) is based on fused values.
> > In case of the board above, the fused values are: 35, 52, 43, 58 and 43
> > (corresponding to each TMU device). However driver defined a minimum value
> > for fused data as 40 and for smaller values it was using a hard-coded 55
> > instead. This lead to mapping data from sensor to wrong temperatures
> > for thermal zone 0.
> >
> > Various vendor 3.10 trees (Hardkernel's based on Samsung LSI, Artik 10)
> > do not impose any limits on fused values. Since we do not have any
> > knowledge about these limits, use 0 as a minimum accepted fused value.
> > This should essentially allow accepting any reasonable fused value thus
> > behaving like vendor driver.
> >
> > The exynos5420-tmu-sensor-conf.dtsi is copied directly from existing
> > exynso4412 with one change - the samsung,tmu_min_efuse_value.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> >
> > ---
> >
> > Testing on other Exynos542x boards is much appreciated. Especially I
> > wonder what efuse values are there.
>
> I tested on both Exynos5422 Odroid XU4 and Exynos5800 Peach Pi boards.
>
> The temperatures levels reported for these two boards on a warm room are:
>
> Odroid XU4
>
> # cat /sys/class/thermal/thermal_zone*/temp
> 50000
> 50000
> 54000
> 51000
> 48000
>
> Peach Pi
>
> # cat /sys/class/thermal/thermal_zone*/temp
> 42000
> 44000
> 27000 <-- weird value for thermal zone 2 like zone 0 in your XU3 lite
> 45000
> 45000
>
> And the efuse values for the TMU devices are:
>
> Odroid XU4
>
> TMU0 = 45
> TMU1 = 44
> TMU2 = 44
> TMU3 = 46
> TMU3 = 46
>
> Peach Pi
>
> TMU0 = 44
> TMU1 = 46
> TMU2 = 36
> TMU3 = 53
> TMU3 = 46
>
> The fused value for TMU2 is < 40 so that explains the weird temperature
> level for thermal zone 2 in Peach. So after your patch, makes more sense:
>
> # cat /sys/class/thermal/thermal_zone*/temp
> 41000
> 42000
> 45000
> 43000
> 43000

Great! Thanks for testing!

> I wonder though if 0 is the best value or if we should just lower more
> to cover the used e-fuse values in Exynos5 boards. But as you said,
> we have no knowledge about these limits...

Yeah... we could set value of 10 or 20... but that would be blind shot.
>
> Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
> Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>
>

Thanks,
Krzysztof