diff mbox series

thermal: brcmstb: enable hwmon

Message ID 20191030163807.17817-1-wens@kernel.org (mailing list archive)
State New, archived
Delegated to: Eduardo Valentin
Headers show
Series thermal: brcmstb: enable hwmon | expand

Commit Message

Chen-Yu Tsai Oct. 30, 2019, 4:38 p.m. UTC
From: Chen-Yu Tsai <wens@csie.org>

By defaul of-based thermal driver do not have hwmon entries registered.

Do this explicitly so users can use standard hwmon interfaces and tools
to read the temperature.

This is based on similar changes for bcm2835_thermal in commit
d56c19d07e0b ("thermal: bcm2835: enable hwmon explicitly").

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---

This patch was only compile tested. A similar patch [1] was submitted to
the downstream kernel, which I did build and actually run on a Raspberry
Pi 4.

This one for mainline is much simpler, as it does not need to deal with
the error path or device removal, due to the use of devres.

 [1] https://github.com/raspberrypi/linux/pull/3307

---
 drivers/thermal/broadcom/brcmstb_thermal.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Florian Fainelli Oct. 30, 2019, 4:57 p.m. UTC | #1
Hi Chen-Yu,

On 10/30/19 9:38 AM, Chen-Yu Tsai wrote:
> From: Chen-Yu Tsai <wens@csie.org>
> 
> By defaul of-based thermal driver do not have hwmon entries registered.
> 
> Do this explicitly so users can use standard hwmon interfaces and tools
> to read the temperature.
> 
> This is based on similar changes for bcm2835_thermal in commit
> d56c19d07e0b ("thermal: bcm2835: enable hwmon explicitly").
> 
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>

Tested-by: Florian Fainelli <f.fainelli@gmail.com>

There a number of patches that I need to get upstream from our
downstream tree, because right now the temperatures reported are note
quite in the expected units..
Florian Fainelli Oct. 30, 2019, 5:15 p.m. UTC | #2
On 10/30/19 9:57 AM, Florian Fainelli wrote:
> Hi Chen-Yu,
> 
> On 10/30/19 9:38 AM, Chen-Yu Tsai wrote:
>> From: Chen-Yu Tsai <wens@csie.org>
>>
>> By defaul of-based thermal driver do not have hwmon entries registered.
>>
>> Do this explicitly so users can use standard hwmon interfaces and tools
>> to read the temperature.
>>
>> This is based on similar changes for bcm2835_thermal in commit
>> d56c19d07e0b ("thermal: bcm2835: enable hwmon explicitly").
>>
>> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> 
> Tested-by: Florian Fainelli <f.fainelli@gmail.com>
> 
> There a number of patches that I need to get upstream from our
> downstream tree, because right now the temperatures reported are note
> quite in the expected units..

Oh yes, because we call the standard thermal framework helpers to
extract the coefficients, and we never made that a mandatory property,
so our firmware does not provide that information and the raw DAC code
is not properly converted, will fix that as well.
Stefan Wahren Oct. 31, 2019, 1:08 p.m. UTC | #3
Hi Chen-Yu,

Am 30.10.19 um 17:38 schrieb Chen-Yu Tsai:
> From: Chen-Yu Tsai <wens@csie.org>
>
> By defaul of-based thermal driver do not have hwmon entries registered.
>
> Do this explicitly so users can use standard hwmon interfaces and tools
> to read the temperature.
>
> This is based on similar changes for bcm2835_thermal in commit
> d56c19d07e0b ("thermal: bcm2835: enable hwmon explicitly").
>
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
>
> This patch was only compile tested. A similar patch [1] was submitted to
> the downstream kernel, which I did build and actually run on a Raspberry
> Pi 4.

just a note: from my understanding [2] the brcmstb_thermal isn't the
right driver for BCM2711. Please consider the current downstream
solution for BCM2711 support as a quick hack to avoid writing a new
thermal driver. But must confess that i didn't test Florian's recent
changes yet.

Regards
Stefan

[2] -
https://github.com/raspberrypi/linux/issues/3101#issuecomment-527554223

>
> This one for mainline is much simpler, as it does not need to deal with
> the error path or device removal, due to the use of devres.
>
>  [1] https://github.com/raspberrypi/linux/pull/3307
>
> ---
>  drivers/thermal/broadcom/brcmstb_thermal.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
Florian Fainelli Nov. 1, 2019, 3:01 a.m. UTC | #4
On 10/31/2019 6:08 AM, Stefan Wahren wrote:
> Hi Chen-Yu,
> 
> Am 30.10.19 um 17:38 schrieb Chen-Yu Tsai:
>> From: Chen-Yu Tsai <wens@csie.org>
>>
>> By defaul of-based thermal driver do not have hwmon entries registered.
>>
>> Do this explicitly so users can use standard hwmon interfaces and tools
>> to read the temperature.
>>
>> This is based on similar changes for bcm2835_thermal in commit
>> d56c19d07e0b ("thermal: bcm2835: enable hwmon explicitly").
>>
>> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
>> ---
>>
>> This patch was only compile tested. A similar patch [1] was submitted to
>> the downstream kernel, which I did build and actually run on a Raspberry
>> Pi 4.
> 
> just a note: from my understanding [2] the brcmstb_thermal isn't the
> right driver for BCM2711. Please consider the current downstream
> solution for BCM2711 support as a quick hack to avoid writing a new
> thermal driver. But must confess that i didn't test Florian's recent
> changes yet.

The brcmstb_thermal driver is for chips with an AVS_TMON whereas the
2711 does not have it AFAICT, even if the registers are there, the
hardware is not present (or so have I been told).

The AVS_RO register you are being pointed out may work, although the
data is over 10 bits (not 11) and the valid bit is 10 (not 11). It looks
like you may have to check bit 16 as well for a measurement being done
or not.
Chen-Yu Tsai Nov. 1, 2019, 3:04 a.m. UTC | #5
On Thu, Oct 31, 2019 at 9:09 PM Stefan Wahren <wahrenst@gmx.net> wrote:
>
> Hi Chen-Yu,
>
> Am 30.10.19 um 17:38 schrieb Chen-Yu Tsai:
> > From: Chen-Yu Tsai <wens@csie.org>
> >
> > By defaul of-based thermal driver do not have hwmon entries registered.
> >
> > Do this explicitly so users can use standard hwmon interfaces and tools
> > to read the temperature.
> >
> > This is based on similar changes for bcm2835_thermal in commit
> > d56c19d07e0b ("thermal: bcm2835: enable hwmon explicitly").
> >
> > Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> > ---
> >
> > This patch was only compile tested. A similar patch [1] was submitted to
> > the downstream kernel, which I did build and actually run on a Raspberry
> > Pi 4.
>
> just a note: from my understanding [2] the brcmstb_thermal isn't the
> right driver for BCM2711. Please consider the current downstream
> solution for BCM2711 support as a quick hack to avoid writing a new
> thermal driver. But must confess that i didn't test Florian's recent
> changes yet.

Thanks for the tip. I only saw the thread after posting this patch.

ChenYu

> Regards
> Stefan
>
> [2] -
> https://github.com/raspberrypi/linux/issues/3101#issuecomment-527554223
>
> >
> > This one for mainline is much simpler, as it does not need to deal with
> > the error path or device removal, due to the use of devres.
> >
> >  [1] https://github.com/raspberrypi/linux/pull/3307
> >
> > ---
> >  drivers/thermal/broadcom/brcmstb_thermal.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
>
diff mbox series

Patch

diff --git a/drivers/thermal/broadcom/brcmstb_thermal.c b/drivers/thermal/broadcom/brcmstb_thermal.c
index 5825ac581f56..8353aaa4d624 100644
--- a/drivers/thermal/broadcom/brcmstb_thermal.c
+++ b/drivers/thermal/broadcom/brcmstb_thermal.c
@@ -21,6 +21,8 @@ 
 #include <linux/of_device.h>
 #include <linux/thermal.h>
 
+#include "../thermal_hwmon.h"
+
 #define AVS_TMON_STATUS			0x00
  #define AVS_TMON_STATUS_valid_msk	BIT(11)
  #define AVS_TMON_STATUS_data_msk	GENMASK(10, 1)
@@ -343,6 +345,12 @@  static int brcmstb_thermal_probe(struct platform_device *pdev)
 		return ret;
 	}
 
+	/* hwmon not enabled by default. Enable it here. */
+	thermal->tzp->no_hwmon = false;
+	ret = thermal_add_hwmon_sysfs(thermal);
+	if (ret)
+		return ret;
+
 	dev_info(&pdev->dev, "registered AVS TMON of-sensor driver\n");
 
 	return 0;