Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f48cee32 authored by Amit Kucheria's avatar Amit Kucheria Committed by Andy Gross
Browse files

arm64: dts: qcom: qcs404: Add thermal zones for each sensor



qcs404 has 10 sensors connected to the single TSENS IP. Define a thermal
zone for each of those sensors to expose the temperature of each zone.

Signed-off-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: default avatarAndy Gross <agross@kernel.org>
parent 64cf50d0
Loading
Loading
Loading
Loading
+252 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
#include <dt-bindings/clock/qcom,turingcc-qcs404.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/thermal/thermal.h>

/ {
	interrupt-parent = <&intc>;
@@ -34,6 +35,7 @@
			enable-method = "psci";
			cpu-idle-states = <&CPU_SLEEP_0>;
			next-level-cache = <&L2_0>;
			#cooling-cells= <2>;
		};

		CPU1: cpu@101 {
@@ -43,6 +45,7 @@
			enable-method = "psci";
			cpu-idle-states = <&CPU_SLEEP_0>;
			next-level-cache = <&L2_0>;
			#cooling-cells= <2>;
		};

		CPU2: cpu@102 {
@@ -52,6 +55,7 @@
			enable-method = "psci";
			cpu-idle-states = <&CPU_SLEEP_0>;
			next-level-cache = <&L2_0>;
			#cooling-cells= <2>;
		};

		CPU3: cpu@103 {
@@ -61,6 +65,7 @@
			enable-method = "psci";
			cpu-idle-states = <&CPU_SLEEP_0>;
			next-level-cache = <&L2_0>;
			#cooling-cells= <2>;
		};

		L2_0: l2-cache {
@@ -1063,4 +1068,251 @@
			#interrupt-cells = <2>;
		};
	};

	thermal-zones {
		aoss-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 0>;

			trips {
				aoss_alert0: trip-point@0 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "hot";
				};
			};
		};

		q6-hvx-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 1>;

			trips {
				q6_hvx_alert0: trip-point@0 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "hot";
				};
			};
		};

		lpass-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 2>;

			trips {
				lpass_alert0: trip-point@0 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "hot";
				};
			};
		};

		wlan-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 3>;

			trips {
				wlan_alert0: trip-point@0 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "hot";
				};
			};
		};

		cluster-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 4>;

			trips {
				cluster_alert0: trip-point@0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "hot";
				};
				cluster_alert1: trip-point@1 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};
				cluster_crit: cluster_crit {
					temperature = <120000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cluster_alert1>;
					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>;
				};
			};
		};

		cpu0-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 5>;

			trips {
				cpu0_alert0: trip-point@0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "hot";
				};
				cpu0_alert1: trip-point@1 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};
				cpu0_crit: cpu_crit {
					temperature = <120000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu0_alert1>;
					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-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 6>;

			trips {
				cpu1_alert0: trip-point@0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "hot";
				};
				cpu1_alert1: trip-point@1 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};
				cpu1_crit: cpu_crit {
					temperature = <120000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu1_alert1>;
					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-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 7>;

			trips {
				cpu2_alert0: trip-point@0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "hot";
				};
				cpu2_alert1: trip-point@1 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};
				cpu2_crit: cpu_crit {
					temperature = <120000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu2_alert1>;
					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-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 8>;

			trips {
				cpu3_alert0: trip-point@0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "hot";
				};
				cpu3_alert1: trip-point@1 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};
				cpu3_crit: cpu_crit {
					temperature = <120000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu3_alert1>;
					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>;
				};
			};
		};

		gpu-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 9>;

			trips {
				gpu_alert0: trip-point@0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "hot";
				};
			};
		};
	};
};