]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
thermal: rockchip: Enable hwmon
authorStefan Schaeckeler <schaecsn@gmx.net>
Thu, 12 Dec 2019 06:17:02 +0000 (22:17 -0800)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 27 Jan 2020 09:24:32 +0000 (10:24 +0100)
By default, of-based thermal drivers do not enable hwmon.
Explicitly enable hwmon for both, the soc and gpu temperature
sensor.

Signed-off-by: Stefan Schaeckeler <schaecsn@gmx.net>
Tested-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20191212061702.BFE2D6E85603@corona.crabdance.com
drivers/thermal/rockchip_thermal.c

index 9ed8085bb79243e24b5184abe18cd2c618ef3b9a..7c1a8bccdcba69477041c40bb71de14a161d4774 100644 (file)
@@ -58,6 +58,8 @@ enum adc_sort_mode {
        ADC_INCREMENT,
 };
 
+#include "thermal_hwmon.h"
+
 /**
  * The max sensors is two in rockchip SoCs.
  * Two sensors: CPU and GPU sensor.
@@ -1331,8 +1333,15 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
 
        thermal->chip->control(thermal->regs, true);
 
-       for (i = 0; i < thermal->chip->chn_num; i++)
+       for (i = 0; i < thermal->chip->chn_num; i++) {
                rockchip_thermal_toggle_sensor(&thermal->sensors[i], true);
+               thermal->sensors[i].tzd->tzp->no_hwmon = false;
+               error = thermal_add_hwmon_sysfs(thermal->sensors[i].tzd);
+               if (error)
+                       dev_warn(&pdev->dev,
+                                "failed to register sensor %d with hwmon: %d\n",
+                                i, error);
+       }
 
        platform_set_drvdata(pdev, thermal);
 
@@ -1354,6 +1363,7 @@ static int rockchip_thermal_remove(struct platform_device *pdev)
        for (i = 0; i < thermal->chip->chn_num; i++) {
                struct rockchip_thermal_sensor *sensor = &thermal->sensors[i];
 
+               thermal_remove_hwmon_sysfs(sensor->tzd);
                rockchip_thermal_toggle_sensor(sensor, false);
        }