From 675a8c8c34b917566901ac234b63b4768e0b2dea Mon Sep 17 00:00:00 2001 From: Aastha Pandey Date: Mon, 24 Aug 2026 13:03:43 +0530 Subject: [PATCH] PENDING: arm64: dts: qcom: nord: Add GPU cooling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unlike the CPU, the GPU does not throttle its speed automatically when it reaches high temperatures. Set up GPU cooling by throttling the GPU speed when reaching 105°C. Introduce a passive polling delay to ensure more than one "passive" thermal point is considered when throttling the GPU thermal zones. Signed-off-by: Aastha Pandey --- arch/arm64/boot/dts/qcom/nord-embedded.dtsi | 177 ++++++++++++++++++++ arch/arm64/boot/dts/qcom/nord.dtsi | 80 ++++----- 2 files changed, 217 insertions(+), 40 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi index 80e3dafb03c9..12c8e96acfca 100644 --- a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi +++ b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi @@ -18,6 +18,7 @@ #include #include #include +#include #include "nord.dtsi" @@ -3690,3 +3691,179 @@ clock-names = "hlos"; power-domains = <&gpucc GPU_CC_CX_GDSC>; }; + +&gpu_0_0_0_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpu_0_0_0_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpu_0_0_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpu_0_0_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpu_0_1_0_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpu_0_1_0_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpu_0_1_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpu_0_1_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_0_1_0_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_0_1_0_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_0_1_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_0_1_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_0_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_0_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_0_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss0_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_1_0_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_1_0_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_1_1_0_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_1_1_0_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_1_1_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_1_1_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_2_0_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_2_0_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_2_1_0_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_2_1_0_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_2_1_1_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss_2_1_1_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; + +&gpuss_2_thermal { + polling-delay-passive = <10>; + + cooling-maps { + map0 { + trip = <&gpuss2_alert0>; + cooling-device = <&gpu_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/nord.dtsi b/arch/arm64/boot/dts/qcom/nord.dtsi index 0b84596e0bd6..cb1db920bbaf 100644 --- a/arch/arm64/boot/dts/qcom/nord.dtsi +++ b/arch/arm64/boot/dts/qcom/nord.dtsi @@ -8498,13 +8498,13 @@ }; }; - gpuss-0-thermal { + gpuss_0_thermal: gpuss-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 1>; trips { - trip-point0 { + gpuss0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8518,13 +8518,13 @@ }; }; - gpuss-1-thermal { + gpuss_1_thermal: gpuss-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 2>; trips { - trip-point0 { + gpuss1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8538,13 +8538,13 @@ }; }; - gpuss-2-thermal { + gpuss_2_thermal: gpuss-2-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 3>; trips { - trip-point0 { + gpuss2_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8558,13 +8558,13 @@ }; }; - gpu-0-0-0-thermal { + gpu_0_0_0_thermal: gpu-0-0-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 4>; trips { - trip-point0 { + gpu_0_0_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8578,13 +8578,13 @@ }; }; - gpuss-1-0-thermal { + gpuss_1_0_thermal: gpuss-1-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 5>; trips { - trip-point0 { + gpuss_1_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8598,13 +8598,13 @@ }; }; - gpuss-1-1-thermal { + gpuss_1_1_thermal: gpuss-1-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 6>; trips { - trip-point0 { + gpuss_1_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8718,13 +8718,13 @@ }; }; - gpuss-0-1-1-thermal { + gpuss_0_1_1_thermal: gpuss-0-1-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 12>; trips { - trip-point0 { + gpuss_0_1_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8738,13 +8738,13 @@ }; }; - gpuss-1-1-1-thermal { + gpuss_1_1_1_thermal: gpuss-1-1-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 13>; trips { - trip-point0 { + gpuss_1_1_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8758,13 +8758,13 @@ }; }; - gpuss-2-1-1-thermal { + gpuss_2_1_1_thermal: gpuss-2-1-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 14>; trips { - trip-point0 { + gpuss_2_1_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8778,13 +8778,13 @@ }; }; - gpu-0-1-1-thermal { + gpu_0_1_1_thermal: gpu-0-1-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens6 15>; trips { - trip-point0 { + gpu_0_1_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8818,13 +8818,13 @@ }; }; - gpuss-0-1-0-thermal { + gpuss_0_1_0_thermal: gpuss-0-1-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 1>; trips { - trip-point0 { + gpuss_0_1_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8838,13 +8838,13 @@ }; }; - gpuss-1-1-0-thermal { + gpuss_1_1_0_thermal: gpuss-1-1-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 2>; trips { - trip-point0 { + gpuss_1_1_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8858,13 +8858,13 @@ }; }; - gpuss-2-1-0-thermal { + gpuss_2_1_0_thermal: gpuss-2-1-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 3>; trips { - trip-point0 { + gpuss_2_1_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8878,13 +8878,13 @@ }; }; - gpu-0-1-0-thermal { + gpu_0_1_0_thermal: gpu-0-1-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 4>; trips { - trip-point0 { + gpu_0_1_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8898,13 +8898,13 @@ }; }; - gpuss-1-2-thermal { + gpuss_1_2_thermal: gpuss-1-2-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 5>; trips { - trip-point0 { + gpuss_1_2_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -8918,13 +8918,13 @@ }; }; - gpu-1-0-thermal { + gpu_1_0_thermal: gpu-1-0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 6>; trips { - trip-point0 { + gpu_1_0_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -9038,13 +9038,13 @@ }; }; - gpuss-0-1-thermal { + gpuss_0_1_thermal: gpuss-0-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 12>; trips { - trip-point0 { + gpuss_0_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -9058,13 +9058,13 @@ }; }; - gpuss-1-0-1-thermal { + gpuss_1_0_1_thermal: gpuss-1-0-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 13>; trips { - trip-point0 { + gpuss_1_0_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -9078,13 +9078,13 @@ }; }; - gpuss-2-0-1-thermal { + gpuss_2_0_1_thermal: gpuss-2-0-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 14>; trips { - trip-point0 { + gpuss_2_0_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive"; @@ -9098,13 +9098,13 @@ }; }; - gpu-0-0-1-thermal { + gpu_0_0_1_thermal: gpu-0-0-1-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens7 15>; trips { - trip-point0 { + gpu_0_0_1_alert0: trip-point0 { temperature = <105000>; hysteresis = <10000>; type = "passive";