diff mbox

[PATCH/RFC] ARM: shmobile: r8a7794: Add thermal device to DT

Message ID 1453955575-32008-1-git-send-email-horms+renesas@verge.net.au (mailing list archive)
State RFC
Delegated to: Simon Horman
Headers show

Commit Message

Simon Horman Jan. 28, 2016, 4:32 a.m. UTC
*** Currently does not work
*** Not for upstream merge
*** For informational purposes only

Instantiate the thermal sensor in the r8a7794 device tree.

Based on very similar work for the r8a7790 by Magnus Damm.

Cc: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>

---

Hi Morimoto-san,

as discussed briefly last week I am having some trouble enabling thermal
for the r8a7794/alt. With this patch applied on top of
renesas-devel-20160127-v4.5-rc1 I see:

# dmesg | grep thermal
[    1.089897] rcar_thermal e61f0000.thermal: thermal sensor was broken
[    1.101225] rcar_thermal: probe of e61f0000.thermal failed with error -22

I also see this with "[PATCH] thermal: core: don't call unsupported trip on
thermal_tripped_notify()" applied.

Is this a kernel issue that you are aware of?
Is there a possibility that there is a problem with my hardware?

Any insight would be greatly appreciated.

AFIK this is not urgent.

---
 arch/arm/boot/dts/r8a7794.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Kuninori Morimoto Jan. 28, 2016, 5:35 a.m. UTC | #1
Hi Simon

> as discussed briefly last week I am having some trouble enabling thermal
> for the r8a7794/alt. With this patch applied on top of
> renesas-devel-20160127-v4.5-rc1 I see:
> 
> # dmesg | grep thermal
> [    1.089897] rcar_thermal e61f0000.thermal: thermal sensor was broken
> [    1.101225] rcar_thermal: probe of e61f0000.thermal failed with error -22

Hmm... strange
It can happen if thermal didn't work.
It seems driver can't read data from register.

> I also see this with "[PATCH] thermal: core: don't call unsupported trip on
> thermal_tripped_notify()" applied.

Oops, really ?
I think you can't apply it on renesas-devel-20160127-v4.5-rc1

# I'm not sure why, but latest thermal branch, linus/master, linux-next/master
# doesn't have problem patch 850ddee1144("thermal: improve hot trip handling")
# So above patch is not needed

> IS this a kernel issue that you are aware of?
> Is there a possibility that there is a problem with my hardware?

I think this is r8a7794 specific issue, but your patch looks sane for me...

> Any insight would be greatly appreciated.
> 
> AFIK this is not urgent.
> 
> ---
>  arch/arm/boot/dts/r8a7794.dtsi | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
> index 5d5d8cb41191..3b84bf3c1124 100644
> --- a/arch/arm/boot/dts/r8a7794.dtsi
> +++ b/arch/arm/boot/dts/r8a7794.dtsi
> @@ -187,6 +187,14 @@
>  		status = "disabled";
>  	};
>  
> +	thermal@e61f0000 {
> +		compatible = "renesas,thermal-r8a7794", "renesas,rcar-thermal";
> +		reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
> +		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
> +		clocks = <&mstp5_clks R8A7794_CLK_THERMAL>;
> +		power-domains = <&cpg_clocks>;
> +	};
> +
>  	timer {
>  		compatible = "arm,armv7-timer";
>  		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
> @@ -1045,6 +1053,14 @@
>  			clock-indices = <R8A7794_CLK_IRQC>;
>  			clock-output-names = "irqc";
>  		};
> +		mstp5_clks: mstp5_clks@e6150144 {
> +			compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
> +			reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
> +			clocks = <&extal_clk>;
> +			#clock-cells = <1>;
> +			clock-indices = <R8A7794_CLK_THERMAL>;
> +			clock-output-names = "thermal";
> +		};
>  		mstp7_clks: mstp7_clks@e615014c {
>  			compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
>  			reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
> -- 
> 2.1.4
>
Simon Horman Jan. 28, 2016, 9:30 a.m. UTC | #2
On Thu, Jan 28, 2016 at 05:35:07AM +0000, Kuninori Morimoto wrote:
> 
> Hi Simon
> 
> > as discussed briefly last week I am having some trouble enabling thermal
> > for the r8a7794/alt. With this patch applied on top of
> > renesas-devel-20160127-v4.5-rc1 I see:
> > 
> > # dmesg | grep thermal
> > [    1.089897] rcar_thermal e61f0000.thermal: thermal sensor was broken
> > [    1.101225] rcar_thermal: probe of e61f0000.thermal failed with error -22
> 
> Hmm... strange
> It can happen if thermal didn't work.
> It seems driver can't read data from register.
> 
> > I also see this with "[PATCH] thermal: core: don't call unsupported trip on
> > thermal_tripped_notify()" applied.
> 
> Oops, really ?
> I think you can't apply it on renesas-devel-20160127-v4.5-rc1

Yes, you are correct. What I did try was:

"[PATCH] thermal: of-thermal: return -EAGAIN until thermal_zone_of_sensor_register() was called"

> # I'm not sure why, but latest thermal branch, linus/master, linux-next/master
> # doesn't have problem patch 850ddee1144("thermal: improve hot trip handling")
> # So above patch is not needed
> 
> > IS this a kernel issue that you are aware of?
> > Is there a possibility that there is a problem with my hardware?
> 
> I think this is r8a7794 specific issue, but your patch looks sane for me...
> 
> > Any insight would be greatly appreciated.
> > 
> > AFIK this is not urgent.

[snip]
diff mbox

Patch

diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 5d5d8cb41191..3b84bf3c1124 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -187,6 +187,14 @@ 
 		status = "disabled";
 	};
 
+	thermal@e61f0000 {
+		compatible = "renesas,thermal-r8a7794", "renesas,rcar-thermal";
+		reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
+		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&mstp5_clks R8A7794_CLK_THERMAL>;
+		power-domains = <&cpg_clocks>;
+	};
+
 	timer {
 		compatible = "arm,armv7-timer";
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
@@ -1045,6 +1053,14 @@ 
 			clock-indices = <R8A7794_CLK_IRQC>;
 			clock-output-names = "irqc";
 		};
+		mstp5_clks: mstp5_clks@e6150144 {
+			compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
+			reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
+			clocks = <&extal_clk>;
+			#clock-cells = <1>;
+			clock-indices = <R8A7794_CLK_THERMAL>;
+			clock-output-names = "thermal";
+		};
 		mstp7_clks: mstp7_clks@e615014c {
 			compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
 			reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;