Commit 7f2fc184 authored by Balsam CHIHI's avatar Balsam CHIHI Committed by Matthias Brugger
Browse files

arm64: dts: mediatek: mt8195: Add temperature mitigation threshold



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: default avatarBalsam CHIHI <bchihi@baylibre.com>
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20230209105628.50294-7-bchihi@baylibre.com


Signed-off-by: default avatarMatthias Brugger <matthias.bgg@gmail.com>
parent fd1c6f13
Loading
Loading
Loading
Loading
+153 −16
Original line number Diff line number Diff line
@@ -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>

/ {
@@ -3002,107 +3003,243 @@

	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>;
				};
			};
		};
	};
};