arm64: dts: mediatek: mt8195: Add temperature mitigation threshold
authorBalsam CHIHI <bchihi@baylibre.com>
Thu, 9 Feb 2023 10:56:28 +0000 (11:56 +0100)
committerMatthias Brugger <matthias.bgg@gmail.com>
Fri, 31 Mar 2023 10:34:58 +0000 (12:34 +0200)
The mt8195 SoC has several hotspots around the CPUs. Specify the
targeted temperature threshold when to apply the mitigation and define
the associated cooling devices.

Signed-off-by: Balsam CHIHI <bchihi@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20230209105628.50294-7-bchihi@baylibre.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
arch/arm64/boot/dts/mediatek/mt8195.dtsi

index 39dc571..aaef893 100644 (file)
@@ -14,6 +14,7 @@
 #include <dt-bindings/pinctrl/mt8195-pinfunc.h>
 #include <dt-bindings/power/mt8195-power.h>
 #include <dt-bindings/reset/mt8195-resets.h>
+#include <dt-bindings/thermal/thermal.h>
 #include <dt-bindings/thermal/mediatek,lvts-thermal.h>
 
 / {
 
        thermal_zones: thermal-zones {
                cpu0-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU0>;
+
                        trips {
+                               cpu0_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu0_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu0_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu1-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU1>;
+
                        trips {
+                               cpu1_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu1_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu1_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu2-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU2>;
+
                        trips {
+                               cpu2_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu2_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu2_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu3-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU3>;
+
                        trips {
+                               cpu3_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu3_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu3_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu4-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_BIG_CPU0>;
+
                        trips {
+                               cpu4_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu4_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu4_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu5-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_BIG_CPU1>;
+
                        trips {
+                               cpu5_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu5_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu5_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu6-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_BIG_CPU2>;
+
                        trips {
+                               cpu6_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu6_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu6_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                cpu7-thermal {
-                       polling-delay = <0>;
-                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_mcu MT8195_MCU_BIG_CPU3>;
+
                        trips {
+                               cpu7_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
                                cpu7_crit: trip-crit {
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu7_alert>;
+                                       cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                               <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
        };
 };