• Guenter Roeck's avatar
    hwmon: (abx500) Decomission abx500 driver · d349626b
    Guenter Roeck authored
    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: default avatarLinus 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: default avatarGuenter Roeck <linux@roeck-us.net>
    d349626b
Kconfig 65.1 KB