ARM: dts: at91: sama7g5: add thermal zones node
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Wed, 26 Oct 2022 12:41:09 +0000 (15:41 +0300)
committerClaudiu Beznea <claudiu.beznea@microchip.com>
Tue, 1 Nov 2022 10:28:34 +0000 (12:28 +0200)
Add thermal zones node with its associated trips and cooling-maps.
It uses CPUFreq as cooling device for temperatures in the interval
[90, 100) degrees Celsius and describe the temperature of 100 degrees
Celsius as critical temperature. System will be is shutting down when
reaching critical temperature.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20221026124114.985876-7-claudiu.beznea@microchip.com
arch/arm/boot/dts/sama7g5.dtsi

index db59094..4c736db 100644 (file)
@@ -17,6 +17,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/mfd/at91-usart.h>
 #include <dt-bindings/nvmem/microchip,sama7g5-otpc.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        model = "Microchip SAMA7G5 family SoC";
@@ -36,6 +37,7 @@
                        clocks = <&pmc PMC_TYPE_CORE PMC_CPUPLL>;
                        clock-names = "cpu";
                        operating-points-v2 = <&cpu_opp_table>;
+                       #cooling-cells = <2>; /* min followed by max */
                };
        };
 
                };
        };
 
+       thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&thermal_sensor>;
+
+                       trips {
+                               cpu_normal: cpu-alert0 {
+                                       temperature = <90000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               cpu_hot: cpu-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               cpu_critical: cpu-critical {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_normal>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+
+                               map1 {
+                                       trip = <&cpu_hot>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
        clocks {
                slow_xtal: slow_xtal {
                        compatible = "fixed-clock";