diff mbox

[v13,4/5] ARM: dts: add main Thermal info to rk3288

Message ID 1414057207-1576-5-git-send-email-caesar.wang@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

Wang Caesar Oct. 23, 2014, 9:40 a.m. UTC
This patch is depend on rk3288-thermal.dtsi,or
it will compile error.

If the temperature over a period of time High,over 120C
the resulting TSHUT gave CRU module,let it reset
the entire chip,or via GPIO give PMIC.

Signed-off-by: Caesar Wang <caesar.wang@rock-chips.com>
---
 arch/arm/boot/dts/rk3288.dtsi | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Dmitry Torokhov Oct. 24, 2014, 12:46 a.m. UTC | #1
Hi Caesar,

On Thu, Oct 23, 2014 at 05:40:06PM +0800, Caesar Wang wrote:
> This patch is depend on rk3288-thermal.dtsi,or
> it will compile error.
> 
> If the temperature over a period of time High,over 120C
> the resulting TSHUT gave CRU module,let it reset
> the entire chip,or via GPIO give PMIC.
> 
> Signed-off-by: Caesar Wang <caesar.wang@rock-chips.com>
> ---
>  arch/arm/boot/dts/rk3288.dtsi | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
> index cb18bb4..85fc17a 100644
> --- a/arch/arm/boot/dts/rk3288.dtsi
> +++ b/arch/arm/boot/dts/rk3288.dtsi
> @@ -15,6 +15,7 @@
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  #include <dt-bindings/pinctrl/rockchip.h>
>  #include <dt-bindings/clock/rk3288-cru.h>
> +#include <dt-bindings/thermal/thermal.h>
>  #include "skeleton.dtsi"
>  
>  / {
> @@ -66,6 +67,7 @@
>  				 216000  900000
>  				 126000  900000
>  			>;
> +			#cooling-cells = <2>; /* min followed by max */
>  			clock-latency = <40000>;
>  			clocks = <&cru ARMCLK>;
>  		};
> @@ -346,6 +348,19 @@
>  		status = "disabled";
>  	};
>  
> +	tsadc: tsadc@ff280000 {
> +		compatible = "rockchip,rk3288-tsadc";
> +		reg = <0xff280000 0x100>;
> +		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
> +		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
> +		clock-names = "tsadc", "apb_pclk";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&otp_out>;
> +		#thermal-sensor-cells = <1>;
> +		hw-shut-temp = <120000>;

I do not think this is a good value. You have (in the other DTS file)
passive trip point at 80 and critical (which should result in orderly
shutdown) at 125. But here you define hardware-controlled shutdown at
120C, which is backwards. You should have:

passive <= critical <= hardware

Thanks.
Dmitry Torokhov Oct. 24, 2014, 1:37 a.m. UTC | #2
On October 23, 2014 6:08:52 PM PDT, Caesar Wang <caesar.wang@rock-chips.com> wrote:
>Dmitry,
>
>? 2014/10/24 8:46, Dmitry Torokhov ??:
>> Hi Caesar,
>>
>> On Thu, Oct 23, 2014 at 05:40:06PM +0800, Caesar Wang wrote:
>>> This patch is depend on rk3288-thermal.dtsi,or
>>> it will compile error.
>>>
>>> If the temperature over a period of time High,over 120C
>>> the resulting TSHUT gave CRU module,let it reset
>>> the entire chip,or via GPIO give PMIC.
>>>
>>> Signed-off-by: Caesar Wang <caesar.wang@rock-chips.com>
>>> ---
>>>   arch/arm/boot/dts/rk3288.dtsi | 21 +++++++++++++++++++++
>>>   1 file changed, 21 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/rk3288.dtsi
>b/arch/arm/boot/dts/rk3288.dtsi
>>> index cb18bb4..85fc17a 100644
>>> --- a/arch/arm/boot/dts/rk3288.dtsi
>>> +++ b/arch/arm/boot/dts/rk3288.dtsi
>>> @@ -15,6 +15,7 @@
>>>   #include <dt-bindings/interrupt-controller/arm-gic.h>
>>>   #include <dt-bindings/pinctrl/rockchip.h>
>>>   #include <dt-bindings/clock/rk3288-cru.h>
>>> +#include <dt-bindings/thermal/thermal.h>
>>>   #include "skeleton.dtsi"
>>>   
>>>   / {
>>> @@ -66,6 +67,7 @@
>>>   				 216000  900000
>>>   				 126000  900000
>>>   			>;
>>> +			#cooling-cells = <2>; /* min followed by max */
>>>   			clock-latency = <40000>;
>>>   			clocks = <&cru ARMCLK>;
>>>   		};
>>> @@ -346,6 +348,19 @@
>>>   		status = "disabled";
>>>   	};
>>>   
>>> +	tsadc: tsadc@ff280000 {
>>> +		compatible = "rockchip,rk3288-tsadc";
>>> +		reg = <0xff280000 0x100>;
>>> +		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
>>> +		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
>>> +		clock-names = "tsadc", "apb_pclk";
>>> +		pinctrl-names = "default";
>>> +		pinctrl-0 = <&otp_out>;
>>> +		#thermal-sensor-cells = <1>;
>>> +		hw-shut-temp = <120000>;
>> I do not think this is a good value. You have (in the other DTS file)
>> passive trip point at 80 and critical (which should result in orderly
>> shutdown) at 125. But here you define hardware-controlled shutdown at
>> 120C, which is backwards. You should have:
>>
>> passive <= critical <= hardware
>Hmmm....
>but, the system will shutdown when temperature over critial value,
>there is no chance of triggering the TSHUT.
>
>If the temperature over a period of time High,as we know,
>the resulting TSHUT gave CRU module,let it hot-reset the entire chip,
>or via GPIO give PMIC cold-reset the entire chip.

Having tshut trigger is not the goal, tshut is the measure of last resort. If we can handle thermal conditions without triggering tshut, we achieved our goal.

Tshut triggering is " oh, crap, nothing we tried works" scenario.


Thanks.
Dmitry Torokhov Oct. 24, 2014, 2:32 a.m. UTC | #3
On Fri, Oct 24, 2014 at 10:06:43AM +0800, Caesar Wang wrote:
> 
> ? 2014/10/24 9:37, Dmitry Torokhov ??:
> >On October 23, 2014 6:08:52 PM PDT, Caesar Wang <caesar.wang@rock-chips.com> wrote:
> >>Dmitry,
> >>
> >>? 2014/10/24 8:46, Dmitry Torokhov ??:
> >>>Hi Caesar,
> >>>
> >>>On Thu, Oct 23, 2014 at 05:40:06PM +0800, Caesar Wang wrote:
> >>>>This patch is depend on rk3288-thermal.dtsi,or
> >>>>it will compile error.
> >>>>
> >>>>If the temperature over a period of time High,over 120C
> >>>>the resulting TSHUT gave CRU module,let it reset
> >>>>the entire chip,or via GPIO give PMIC.
> >>>>
> >>>>Signed-off-by: Caesar Wang <caesar.wang@rock-chips.com>
> >>>>---
> >>>>   arch/arm/boot/dts/rk3288.dtsi | 21 +++++++++++++++++++++
> >>>>   1 file changed, 21 insertions(+)
> >>>>
> >>>>diff --git a/arch/arm/boot/dts/rk3288.dtsi
> >>b/arch/arm/boot/dts/rk3288.dtsi
> >>>>index cb18bb4..85fc17a 100644
> >>>>--- a/arch/arm/boot/dts/rk3288.dtsi
> >>>>+++ b/arch/arm/boot/dts/rk3288.dtsi
> >>>>@@ -15,6 +15,7 @@
> >>>>   #include <dt-bindings/interrupt-controller/arm-gic.h>
> >>>>   #include <dt-bindings/pinctrl/rockchip.h>
> >>>>   #include <dt-bindings/clock/rk3288-cru.h>
> >>>>+#include <dt-bindings/thermal/thermal.h>
> >>>>   #include "skeleton.dtsi"
> >>>>   / {
> >>>>@@ -66,6 +67,7 @@
> >>>>   				 216000  900000
> >>>>   				 126000  900000
> >>>>   			>;
> >>>>+			#cooling-cells = <2>; /* min followed by max */
> >>>>   			clock-latency = <40000>;
> >>>>   			clocks = <&cru ARMCLK>;
> >>>>   		};
> >>>>@@ -346,6 +348,19 @@
> >>>>   		status = "disabled";
> >>>>   	};
> >>>>+	tsadc: tsadc@ff280000 {
> >>>>+		compatible = "rockchip,rk3288-tsadc";
> >>>>+		reg = <0xff280000 0x100>;
> >>>>+		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
> >>>>+		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
> >>>>+		clock-names = "tsadc", "apb_pclk";
> >>>>+		pinctrl-names = "default";
> >>>>+		pinctrl-0 = <&otp_out>;
> >>>>+		#thermal-sensor-cells = <1>;
> >>>>+		hw-shut-temp = <120000>;
> >>>I do not think this is a good value. You have (in the other DTS file)
> >>>passive trip point at 80 and critical (which should result in orderly
> >>>shutdown) at 125. But here you define hardware-controlled shutdown at
> >>>120C, which is backwards. You should have:
> >>>
> >>>passive <= critical <= hardware
> >>Hmmm....
> >>but, the system will shutdown when temperature over critial value,
> >>there is no chance of triggering the TSHUT.
> >>
> >>If the temperature over a period of time High,as we know,
> >>the resulting TSHUT gave CRU module,let it hot-reset the entire chip,
> >>or via GPIO give PMIC cold-reset the entire chip.
> >Having tshut trigger is not the goal, tshut is the measure of last resort. If we can handle thermal conditions without triggering tshut, we achieved our goal.
> >
> >Tshut triggering is " oh, crap, nothing we tried works" scenario.
> 
> I don't think so.
> 
> In general,We should have:
> passive <= hardware(reset entire chip) <= critical(shutdown)
> 
> The temperature be rising qulckly if have some other conditions,
> the "critical" will play a role.

No, I think it should be the other way around: if we are unable to cool
down the laptop under load we need to shut it down and let it cool. If
for some reason we are unable to shut it down in orderly fashion (kernel
is stuck holding a lock or similar) then hardware will reset it.

At least that's how I understand it.

Thanks.
Dmitry Torokhov Oct. 24, 2014, 8:17 a.m. UTC | #4
Caesar,

On Fri, Oct 24, 2014 at 11:21:46AM +0800, Caesar Wang wrote:
> Dmitry,
> 
> ? 2014/10/24 10:32, Dmitry Torokhov ??:
> >On Fri, Oct 24, 2014 at 10:06:43AM +0800, Caesar Wang wrote:
> >>? 2014/10/24 9:37, Dmitry Torokhov ??:
> >>>On October 23, 2014 6:08:52 PM PDT, Caesar Wang <caesar.wang@rock-chips.com> wrote:
> >>>>Dmitry,
> >>>>
> >>>>? 2014/10/24 8:46, Dmitry Torokhov ??:
> >>>>>Hi Caesar,
> >>>>>
> >>>>>On Thu, Oct 23, 2014 at 05:40:06PM +0800, Caesar Wang wrote:
> >>>>>>This patch is depend on rk3288-thermal.dtsi,or
> >>>>>>it will compile error.
> >>>>>>
> >>>>>>If the temperature over a period of time High,over 120C
> >>>>>>the resulting TSHUT gave CRU module,let it reset
> >>>>>>the entire chip,or via GPIO give PMIC.
> >>>>>>
> >>>>>>Signed-off-by: Caesar Wang <caesar.wang@rock-chips.com>
> >>>>>>---
> >>>>>>   arch/arm/boot/dts/rk3288.dtsi | 21 +++++++++++++++++++++
> >>>>>>   1 file changed, 21 insertions(+)
> >>>>>>
> >>>>>>diff --git a/arch/arm/boot/dts/rk3288.dtsi
> >>>>b/arch/arm/boot/dts/rk3288.dtsi
> >>>>>>index cb18bb4..85fc17a 100644
> >>>>>>--- a/arch/arm/boot/dts/rk3288.dtsi
> >>>>>>+++ b/arch/arm/boot/dts/rk3288.dtsi
> >>>>>>@@ -15,6 +15,7 @@
> >>>>>>   #include <dt-bindings/interrupt-controller/arm-gic.h>
> >>>>>>   #include <dt-bindings/pinctrl/rockchip.h>
> >>>>>>   #include <dt-bindings/clock/rk3288-cru.h>
> >>>>>>+#include <dt-bindings/thermal/thermal.h>
> >>>>>>   #include "skeleton.dtsi"
> >>>>>>   / {
> >>>>>>@@ -66,6 +67,7 @@
> >>>>>>   				 216000  900000
> >>>>>>   				 126000  900000
> >>>>>>   			>;
> >>>>>>+			#cooling-cells = <2>; /* min followed by max */
> >>>>>>   			clock-latency = <40000>;
> >>>>>>   			clocks = <&cru ARMCLK>;
> >>>>>>   		};
> >>>>>>@@ -346,6 +348,19 @@
> >>>>>>   		status = "disabled";
> >>>>>>   	};
> >>>>>>+	tsadc: tsadc@ff280000 {
> >>>>>>+		compatible = "rockchip,rk3288-tsadc";
> >>>>>>+		reg = <0xff280000 0x100>;
> >>>>>>+		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
> >>>>>>+		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
> >>>>>>+		clock-names = "tsadc", "apb_pclk";
> >>>>>>+		pinctrl-names = "default";
> >>>>>>+		pinctrl-0 = <&otp_out>;
> >>>>>>+		#thermal-sensor-cells = <1>;
> >>>>>>+		hw-shut-temp = <120000>;
> >>>>>I do not think this is a good value. You have (in the other DTS file)
> >>>>>passive trip point at 80 and critical (which should result in orderly
> >>>>>shutdown) at 125. But here you define hardware-controlled shutdown at
> >>>>>120C, which is backwards. You should have:
> >>>>>
> >>>>>passive <= critical <= hardware
> >>>>Hmmm....
> >>>>but, the system will shutdown when temperature over critial value,
> >>>>there is no chance of triggering the TSHUT.
> >>>>
> >>>>If the temperature over a period of time High,as we know,
> >>>>the resulting TSHUT gave CRU module,let it hot-reset the entire chip,
> >>>>or via GPIO give PMIC cold-reset the entire chip.
> >>>Having tshut trigger is not the goal, tshut is the measure of last resort. If we can handle thermal conditions without triggering tshut, we achieved our goal.
> >>>
> >>>Tshut triggering is " oh, crap, nothing we tried works" scenario.
> >>I don't think so.
> >>
> >>In general,We should have:
> >>passive <= hardware(reset entire chip) <= critical(shutdown)
> >>
> >>The temperature be rising qulckly if have some other conditions,
> >>the "critical" will play a role.
> >No, I think it should be the other way around: if we are unable to cool
> >down the laptop under load we need to shut it down and let it cool. If
> >for some reason we are unable to shut it down in orderly fashion (kernel
> >is stuck holding a lock or similar) then hardware will reset it.
> >
> >At least that's how I understand it.
> hmmm....
> 
> OK,agree,this is a option.
> 
> I think I should set hw-shut-temp = <125000>;
> and critical = <120000>;
> 

Yes, this should work, thanks!
diff mbox

Patch

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index cb18bb4..85fc17a 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -15,6 +15,7 @@ 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/rockchip.h>
 #include <dt-bindings/clock/rk3288-cru.h>
+#include <dt-bindings/thermal/thermal.h>
 #include "skeleton.dtsi"
 
 / {
@@ -66,6 +67,7 @@ 
 				 216000  900000
 				 126000  900000
 			>;
+			#cooling-cells = <2>; /* min followed by max */
 			clock-latency = <40000>;
 			clocks = <&cru ARMCLK>;
 		};
@@ -346,6 +348,19 @@ 
 		status = "disabled";
 	};
 
+	tsadc: tsadc@ff280000 {
+		compatible = "rockchip,rk3288-tsadc";
+		reg = <0xff280000 0x100>;
+		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
+		clock-names = "tsadc", "apb_pclk";
+		pinctrl-names = "default";
+		pinctrl-0 = <&otp_out>;
+		#thermal-sensor-cells = <1>;
+		hw-shut-temp = <120000>;
+		status = "disabled";
+	};
+
 	usb_host0_ehci: usb@ff500000 {
 		compatible = "generic-ehci";
 		reg = <0xff500000 0x100>;
@@ -965,6 +980,12 @@ 
 			};
 		};
 
+		tsadc {
+			otp_out: otp-out {
+				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
+			};
+		};
+
 		pwm0 {
 			pwm0_pin: pwm0-pin {
 				rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;