2019-11-18 05:27:49

by Stefan Schaeckeler

[permalink] [raw]
Subject: [PATCH] thermal: rockchip: enable hwmon

Enable hwmon for the soc and gpu temperature sensors.

Signed-off-by: Stefan Schaeckeler <[email protected]>

---
drivers/thermal/rockchip_thermal.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
index 343c2f5c5a25..e47c60010259 100644
--- a/drivers/thermal/rockchip_thermal.c
+++ b/drivers/thermal/rockchip_thermal.c
@@ -19,6 +19,8 @@
#include <linux/mfd/syscon.h>
#include <linux/pinctrl/consumer.h>

+#include "thermal_hwmon.h"
+
/**
* If the temperature over a period of time High,
* the resulting TSHUT gave CRU module,let it reset the entire chip,
@@ -1321,8 +1323,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);

@@ -1344,6 +1353,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);
}

--
2.24.0


2019-12-02 14:56:59

by Stefan Schaeckeler

[permalink] [raw]
Subject: Re: [PATCH] thermal: rockchip: enable hwmon

Hello linux power management mailing list and others,

New month, new try. Could someone review this patch, please. I would really
like to see the Rockchip RK3399 temperature sensors hooked up to the hwmon API.

~ Stefan

> Enable hwmon for the soc and gpu temperature sensors.
>
> Signed-off-by: Stefan Schaeckeler <[email protected]>
>
> ---
> drivers/thermal/rockchip_thermal.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
> index 343c2f5c5a25..e47c60010259 100644
> --- a/drivers/thermal/rockchip_thermal.c
> +++ b/drivers/thermal/rockchip_thermal.c
> @@ -19,6 +19,8 @@
> #include <linux/mfd/syscon.h>
> #include <linux/pinctrl/consumer.h>
>
> +#include "thermal_hwmon.h"
> +
> /**
> * If the temperature over a period of time High,
> * the resulting TSHUT gave CRU module,let it reset the entire chip,
> @@ -1321,8 +1323,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);
>
> @@ -1344,6 +1353,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);
> }
>
> --
> 2.24.0
>

2019-12-09 17:10:00

by Daniel Lezcano

[permalink] [raw]
Subject: Re: [PATCH] thermal: rockchip: enable hwmon


Hi Stefan,


On 02/12/2019 15:52, Stefan Schaeckeler wrote:
> Hello linux power management mailing list and others,
>
> New month, new try. Could someone review this patch, please. I would reall=
> y
> like to see the Rockchip RK3399 temperature sensors hooked up to the hwmon=
> API.

I don't know what is happening but there are some spurious '3D'
characters. Please fix it, elaborate a bit the changelog and resend.
I'll review it.

Thanks


>> Enable hwmon for the soc and gpu temperature sensors.
>>
>> Signed-off-by: Stefan Schaeckeler <[email protected]>
>>
>> ---
>> drivers/thermal/rockchip_thermal.c | 12 +++++++++++-
>> 1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockch=
> ip_thermal.c
>> index 343c2f5c5a25..e47c60010259 100644
>> --- a/drivers/thermal/rockchip_thermal.c
>> +++ b/drivers/thermal/rockchip_thermal.c
>> @@ -19,6 +19,8 @@
>> #include <linux/mfd/syscon.h>
>> #include <linux/pinctrl/consumer.h>
>>
>> +#include "thermal_hwmon.h"
>> +
>> /**
>> * If the temperature over a period of time High,
>> * the resulting TSHUT gave CRU module,let it reset the entire chip,
>> @@ -1321,8 +1323,15 @@ static int rockchip_thermal_probe(struct platform=
> _device *pdev)
>>
>> thermal->chip->control(thermal->regs, true);
>>
>> - for (i =3D 0; i < thermal->chip->chn_num; i++)
>> + for (i =3D 0; i < thermal->chip->chn_num; i++) {
>> rockchip_thermal_toggle_sensor(&thermal->sensors[i], true);
>> + thermal->sensors[i].tzd->tzp->no_hwmon =3D false;
>> + error =3D 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);
>>
>> @@ -1344,6 +1353,7 @@ static int rockchip_thermal_remove(struct platform=
> _device *pdev)
>> for (i =3D 0; i < thermal->chip->chn_num; i++) {
>> struct rockchip_thermal_sensor *sensor =3D &thermal->sensors[i];
>>
>> + thermal_remove_hwmon_sysfs(sensor->tzd);
>> rockchip_thermal_toggle_sensor(sensor, false);
>> }
>>
>> --
>> 2.24.0
>>


--
<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