hwmon: (ftsteutates) Fix scaling of measurements
authorArmin Wolf <W_Armin@gmx.de>
Sat, 24 Dec 2022 04:18:53 +0000 (05:18 +0100)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 3 Jan 2023 21:26:45 +0000 (13:26 -0800)
commitca8fd8c16a8b77dfcf7f6ce52d2c863220693a78
treee6c9bd21e2b79b7ba86f321dd5ac887637672553
parent88603b6dc419445847923fcb7fe5080067a30f98
hwmon: (ftsteutates) Fix scaling of measurements

A user complained that the ftsteutates driver was displaying
bogus values since its introduction. This happens because the
sensor measurements need to be scaled in order to produce
meaningful results:
- the fan speed needs to be multiplied by 60 since its in RPS
- the temperature is in degrees celsius and needs an offset of 64
- the voltage is in 1/256 of 3.3V

The offical datasheet says the voltage needs to be divided by 256,
but this is likely an off-by-one-error, since even the BIOS
devides by 255 (otherwise 3.3V could not be measured).

The voltage channels additionally need a board-specific multiplier,
however this can be done by the driver since its board-specific.

The reason the missing scaling of measurements is the way Fujitsu
used this driver when it was still out-of-tree. Back then, all
scaling was done in userspace by libsensors, even the generic one.

Tested on a Fujitsu DS3401-B1.

Fixes: 08426eda58e0 ("hwmon: Add driver for FTS BMC chip "Teutates"")
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20221224041855.83981-2-W_Armin@gmx.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/ftsteutates.rst
drivers/hwmon/ftsteutates.c