[PATCH 2/2] arm64: dts: qcom: shikra: Enable CDSP & Modem cooling
From: Dipa Ramesh Mantre
Date: Fri Sep 11 2026 - 01:05:02 EST
Unlike the CPU, the CDSP/Modem does not throttle its speed automatically
when it reaches high temperatures in shikra.
Set up CDSP/Modem cooling by throttling the CDSP and modem when they
reach 115°C using the QMI TMD cooling device framework.
Signed-off-by: Dipa Ramesh Mantre <dipa.mantre@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 71 ++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index c1f06f692f66..55bac1b57cba 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -10,6 +10,7 @@
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,osm-l3.h>
#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/thermal/qcom,pas.h>
#include <dt-bindings/interconnect/qcom,rpm-icc.h>
#include <dt-bindings/interconnect/qcom,shikra.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -2007,6 +2008,8 @@ remoteproc_mpss: remoteproc@6080000 {
qcom,smem-states = <&modem_smp2p_out 0>;
qcom,smem-state-names = "stop";
+ #cooling-cells = <3>;
+
status = "disabled";
glink-edge {
@@ -2047,6 +2050,8 @@ remoteproc_cdsp: remoteproc@b300000 {
qcom,smem-states = <&cdsp_smp2p_out 0>;
qcom,smem-state-names = "stop";
+ #cooling-cells = <3>;
+
status = "disabled";
glink-edge {
@@ -3868,6 +3873,8 @@ map0 {
};
nsp-thermal {
+ polling-delay-passive = <200>;
+
thermal-sensors = <&tsens0 7>;
trips {
@@ -3877,15 +3884,31 @@ trip-point0 {
type = "hot";
};
- nsp-critical {
+ nsp_alert1: nsp-alert1 {
temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
+ nsp-critical {
+ temperature = <118000>;
hysteresis = <0>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&nsp_alert1>;
+ cooling-device = <&remoteproc_cdsp QCOM_TMD_CDSP_SW
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
mdmss0-thermal {
+ polling-delay-passive = <200>;
+
thermal-sensors = <&tsens0 8>;
trips {
@@ -3895,15 +3918,37 @@ trip-point0 {
type = "hot";
};
- mdmss0-critical {
+ mdmss0_alert1: mdmss0-alert1 {
temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
+ mdmss0-critical {
+ temperature = <118000>;
hysteresis = <0>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&mdmss0_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_PA
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+
+ map1 {
+ trip = <&mdmss0_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_MODEM
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
mdmss1-thermal {
+ polling-delay-passive = <200>;
+
thermal-sensors = <&tsens0 9>;
trips {
@@ -3913,12 +3958,32 @@ trip-point0 {
type = "hot";
};
- mdmss1-critical {
+ mdmss1_alert1: mdmss1-alert1 {
temperature = <115000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+
+ mdmss1-critical {
+ temperature = <118000>;
hysteresis = <0>;
type = "critical";
};
};
+
+ cooling-maps {
+ map0 {
+ trip = <&mdmss1_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_PA
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+
+ map1 {
+ trip = <&mdmss1_alert1>;
+ cooling-device = <&remoteproc_mpss QCOM_TMD_MODEM
+ THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
};
camera-thermal {
--
2.34.1