OSDN Git Service

hwmon: (abx500) Decomission abx500 driver
authorGuenter Roeck <linux@roeck-us.net>
Mon, 21 Dec 2020 18:59:33 +0000 (10:59 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 28 Jan 2021 01:44:18 +0000 (17:44 -0800)
commitd349626b42f5dbd08ffcb3f2c383b1f6f433b3c1
tree6b73e21a7b9429128a60492a8a658069e973933f
parent5707c8dbdea30be916e3cd831a6dd84ca007407f
hwmon: (abx500) Decomission abx500 driver

This deletes the ABx500 hwmon driver, the only supported
variant being the AB8500.

This driver has been replaced by generic frameworks. By
inspecting the abx500 sysfs files we see that it contains
things such as temp1_max, temp1_max_alarm, temp1_max_hyst,
temp1_max_hyst_alarm, temp1_min, temp1_min_alarm.

It becomes obvious that the abx500.c is a reimplementation
of thermal zones. This is not very strange as the generic
thermal zones were not invented when this driver was merged
so people were rolling their own.

The ab8500.c driver contains conversion tables for handling
a thermistor on ADC channels AUX1 and AUX2.

I managed to replace the functionality of the driver with:

- Activation of the ntc_thermistor.c driver,
  CONFIG_SENSORS_NTC_THERMISTOR
- Activation of thermal zones, CONFIG_THERMAL
- In the device tree, connecting the NTC driver to the
  processed IIO channels from the AB8500 GPADC ADC forming
  two instances of NTC sensors.
- Connecting the two NTC sensors to a "chassis" thermal zone
  in the device tree and setting that to hit the CPU frequency
  at 50 degrees celsius and do a critical shutdown at 70
  degrees celsius, deploying a policy using the sensors.

After talking to the original authors we concluded that the
driver was never properly parameterized in production so
what we now have in the device tree is already puts the
thermistors to better use than what the hwmon driver did.

The two remaining channels for two battery temperatures is
already handled in the charging algorithms but can be
optionally extended to thermal zones as well if we want
these to trigger critical shutdown for the platform.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20201221125521.768082-1-linus.walleij@linaro.org
[groeck: Removed documentation and fixed up Makefile, Kconfig]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/ab8500.rst [deleted file]
Documentation/hwmon/abx500.rst [deleted file]
Documentation/hwmon/index.rst
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/hwmon/ab8500.c [deleted file]
drivers/hwmon/abx500.c [deleted file]
drivers/hwmon/abx500.h [deleted file]