Skip to contentSkip to conversation

thermal: mediatek: add sensors-support

PATCH Superseded Frank Wunderlich 3 participants 7 messages Mar 20, 2021 – Apr 20, 2021

Subsystems (2)

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 thermal: mediatek: add sensors-support

From: Frank Wunderlich <[email protected]>

add HWMON-support to mediateks thermanl driver to allow lm-sensors userspace tools read soc temperature

---
 drivers/thermal/mtk_thermal.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
drivers/thermal/mtk_thermal.c +22 -0
index 149c6d7fd5a0..e22d77d57458 100644
@@ -23,6 +23,8 @@
 #include <linux/reset.h>
 #include <linux/types.h>
 
+#include "thermal_hwmon.h"
+
 /* AUXADC Registers */
 #define AUXADC_CON1_SET_V	0x008
 #define AUXADC_CON1_CLR_V	0x00c
@@ -983,6 +985,13 @@ static void mtk_thermal_release_periodic_ts(struct mtk_thermal *mt,
 	writel((tmp & (~0x10e)), mt->thermal_base + TEMP_MSRCTL1);
 }
 
+static void mtk_thermal_hwmon_action(void *data)
+{
+	struct thermal_zone_device *zone = data;
+
+	thermal_remove_hwmon_sysfs(zone);
+}
+
 static int mtk_thermal_probe(struct platform_device *pdev)
 {
 	int ret, i, ctrl_id;
@@ -1087,6 +1096,19 @@ static int mtk_thermal_probe(struct platform_device *pdev)
 		goto err_disable_clk_peri_therm;
 	}
 
+#ifdef CONFIG_THERMAL_HWMON
+	tzdev->tzp->no_hwmon = false;
+	ret = thermal_add_hwmon_sysfs(tzdev);
+	if (ret)
+		dev_err(&pdev->dev, "error in thermal_add_hwmon_sysfs");
+
+	ret = devm_add_action(&pdev->dev, mtk_thermal_hwmon_action, tzdev);
+	if (ret) {
+		dev_err(&pdev->dev, "error in devm_add_action");
+		mtk_thermal_hwmon_action(tzdev);
+	}
+#endif
+
 	return 0;
 
 err_disable_clk_peri_therm:
Signature · 7 lines
2.25.1


_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek
#1 lore raw

Hi,

any opinion (except typo)?

thermanl => thermal

regards Frank

Quoted 4 lines

Gesendet: Samstag, 20. März 2021 um 10:06 Uhr
Von: "Frank Wunderlich" <[email protected]>
add HWMON-support to mediateks thermanl driver to allow lm-sensors userspace tools read soc temperature

#2 lore raw
In reply to Frank Wunderlich
Quoted 38 lines · Frank Wunderlich

From: Frank Wunderlich <[email protected]>

add HWMON-support to mediateks thermanl driver to allow lm-sensors userspace tools read soc temperature

---
 drivers/thermal/mtk_thermal.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
drivers/thermal/mtk_thermal.c +9 -0
index 149c6d7fd5a0..e22d77d57458 100644
@@ -23,6 +23,8 @@
 #include <linux/reset.h>
 #include <linux/types.h>
 
+#include "thermal_hwmon.h"
+
 /* AUXADC Registers */
 #define AUXADC_CON1_SET_V	0x008
 #define AUXADC_CON1_CLR_V	0x00c
@@ -983,6 +985,13 @@ static void mtk_thermal_release_periodic_ts(struct mtk_thermal *mt,
 	writel((tmp & (~0x10e)), mt->thermal_base + TEMP_MSRCTL1);
 }
 
+static void mtk_thermal_hwmon_action(void *data)
+{
+	struct thermal_zone_device *zone = data;
+
+	thermal_remove_hwmon_sysfs(zone);
+}
+
 static int mtk_thermal_probe(struct platform_device *pdev)
 {
 	int ret, i, ctrl_id;

drivers/thermal/mtk_thermal.c static int mtk_thermal_probe(struct platform_device *pdev) · line 1099

Quoted 4 lines
drivers/thermal/mtk_thermal.c +1 -0
@@ -1087,6 +1096,19 @@ static int mtk_thermal_probe(struct platform_device *pdev)
 		goto err_disable_clk_peri_therm;
 	}
 
+#ifdef CONFIG_THERMAL_HWMON

No #ifdef in C file.

drivers/thermal/mtk_thermal.c static int mtk_thermal_probe(struct platform_device *pdev) · line 1105

Quoted 6 lines
drivers/thermal/mtk_thermal.c +6 -0
+	tzdev->tzp->no_hwmon = false;
+	ret = thermal_add_hwmon_sysfs(tzdev);
+	if (ret)
+		dev_err(&pdev->dev, "error in thermal_add_hwmon_sysfs");
+
+	ret = devm_add_action(&pdev->dev, mtk_thermal_hwmon_action, tzdev);

devm_thermal_add_hwmon_sysfs() ?

Quoted 10 lines
drivers/thermal/mtk_thermal.c +6 -0
+	if (ret) {
+		dev_err(&pdev->dev, "error in devm_add_action");
+		mtk_thermal_hwmon_action(tzdev);
+	}
+#endif
+
 	return 0;
 
 err_disable_clk_peri_therm:
Signature · 5 lines
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
#3 lore raw

Hi,

Quoted 4 lines

Gesendet: Dienstag, 20. April 2021 um 14:07 Uhr
Von: "Daniel Lezcano" <[email protected]>

No #ifdef in C file.

...

Quoted 1 line

devm_thermal_add_hwmon_sysfs() ?

based on your comments this should be enough/right?

#if IS_ENABLED(CONFIG_THERMAL_HWMON)
    tzdev->tzp->no_hwmon = false;
    ret = devm_thermal_add_hwmon_sysfs(tzdev);
    if (ret)
        dev_err(&pdev->dev, "error in thermal_add_hwmon_sysfs");

#endif

if yes i send out v2, at least it works on my device

regards Frank

#4 lore raw

Hi Frank,

Quoted 12 lines · Frank Wunderlich

Hi,

Quoted 4 lines

Gesendet: Dienstag, 20. April 2021 um 14:07 Uhr
Von: "Daniel Lezcano" <[email protected]>

No #ifdef in C file.

...

Quoted 1 line

devm_thermal_add_hwmon_sysfs() ?

based on your comments this should be enough/right?

Quoted 7 lines
#if IS_ENABLED(CONFIG_THERMAL_HWMON)
    tzdev->tzp->no_hwmon = false;>     ret = devm_thermal_add_hwmon_sysfs(tzdev);
    if (ret)
        dev_err(&pdev->dev, "error in thermal_add_hwmon_sysfs");

#endif

if yes i send out v2, at least it works on my device

just the following lines should work:

	ret = devm_thermal_add_hwmon_sysfs(tzdev);
	if (ret)
		dev_err(&pdev->dev, "error in thermal_add_hwmon_sysfs");

The no_hwmon usage is a bit fuzzy in the thermal core code.

Signature · 5 lines
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
#5 lore raw

Am 20. April 2021 17:18:32 MESZ schrieb Daniel Lezcano <[email protected]>:

Quoted 4 lines

Hi Frank,

The no_hwmon usage is a bit fuzzy in the thermal core code.

Maybe add depency in Kconfig? Else we can get undefined symbols on linking

regards Frank

#6 lore raw
Quoted 9 lines · Frank Wunderlich

Am 20. April 2021 17:18:32 MESZ schrieb Daniel Lezcano <[email protected]>:

Quoted 4 lines

Hi Frank,

The no_hwmon usage is a bit fuzzy in the thermal core code.

Maybe add depency in Kconfig? Else we can get undefined symbols on linking

regards Frank

Nope, there are the stubs in thermal_hwmon.h

Signature · 5 lines
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog