Thread (10 messages) 10 messages, 3 authors, 2020-07-13

Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal zone support

From: Amit Kucheria <hidden>
Date: 2020-06-30 06:47:01
Also in: linux-devicetree, lkml

On Tue, Jun 30, 2020 at 12:07 PM Andy Tang [off-list ref] wrote:

quoted
-----Original Message-----
From: Amit Kucheria <redacted>
Sent: 2020年6月30日 13:37
To: Andy Tang <redacted>
Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <redacted>; Rob
Herring [off-list ref]; lakml [off-list ref];
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
[off-list ref]; LKML [off-list ref]
Subject: Re: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal
zone support

Caution: EXT Email

On Tue, Jun 30, 2020 at 10:58 AM Andy Tang [off-list ref] wrote:
quoted

quoted
-----Original Message-----
From: Amit Kucheria <redacted>
Sent: 2020年6月30日 13:12
To: Andy Tang <redacted>
Cc: Shawn Guo <shawnguo@kernel.org>; Leo Li <redacted>;
Rob Herring [off-list ref]; lakml
[off-list ref];
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
[off-list ref]; LKML [off-list ref]
Subject: [EXT] Re: [PATCH 1/2] arm64: dts: ls1088a: add more thermal
zone support

Caution: EXT Email

On Tue, Jun 30, 2020 at 8:56 AM [off-list ref] wrote:
quoted
From: Yuantian Tang <redacted>

There are 2 thermal zones in ls1088a soc. Add the other thermal
zone node to enable it.
Also update the values in calibration table to make the
temperatures monitored more precise.

Signed-off-by: Yuantian Tang <redacted>
---
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 100
+++++++++++-------
 1 file changed, 62 insertions(+), 38 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 36a799554620..ccbbc23e6c85 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -129,19 +129,19 @@
        };

        thermal-zones {
-               cpu_thermal: cpu-thermal {
+               core-cluster {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 0>;

                        trips {
-                               cpu_alert: cpu-alert {
+                               core_cluster_alert:
core-cluster-alert
quoted
+ {
                                        temperature =
<85000>;
quoted
quoted
quoted
                                        hysteresis = <2000>;
                                        type = "passive";
                                };

-                               cpu_crit: cpu-crit {
+                               core_cluster_crit:
+ core-cluster-crit {
                                        temperature =
<95000>;
quoted
quoted
quoted
                                        hysteresis = <2000>;
                                        type = "critical"; @@
-150,7
quoted
+150,7 @@

                        cooling-maps {
                                map0 {
-                                       trip = <&cpu_alert>;
+                                       trip =
<&core_cluster_alert>;
quoted
                                        cooling-device =
                                                <&cpu0
THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
quoted
                                                <&cpu1
THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, @@ -163,6 +163,26 @@
                                };
                        };
                };
+
+               soc {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&tmu 1>;
+
+                       trips {
+                               soc-alert {
+                                       temperature =
<85000>;
quoted
quoted
quoted
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               soc-crit {
+                                       temperature =
<95000>;
quoted
quoted
quoted
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
You should also add a cooling-maps section for this thermal zone
given that it has a passive trip type. Otherwise there is no use for a
passive trip type.
quoted
It is better to have a cooling device. But there is only one cooling
device on this platform which is used by core-cluster. So there is no extra
cooling device for it.
quoted
This zone can take action when critical temp is reached. So it is still useful.
What do you suggest?
If the action taken by the core-cluster cooling-maps is the only one that can
be taken, I suggest getting rid of the the soc-alert passive trip completely. It is
not of any use.

If there is a chance that your soc thermal-zone can heat up before your
cpu-cluster zone (unlikely), you could use the same cooling device (cpu0, cpu1)
for soc thermal zone too.
Thanks for your suggestion.
I was told that a cooling-maps can not be applied to more than one thermal zone.
So the only option is to remove the alert trip.
The cooling-map is unique to the thermal-zone. But the cooling devices
may be reused.

See arch/arm64/boot/dts/qcom/sdm845.dtsi for an example.

So, in your case, you would have a cooling-map section that ties the
soc-alert trip to the same cooling devices as in cpu-cluster cooling
map.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help