Unlike the CPU, the CDSP does not throttle its speed automatically
when it reaches high temperatures in monaco.

Set up CDSP cooling for both instances by throttling the cdsp, when
it reaches 115°C.

Add polling-delay-passive so the governor periodically evaluates
the zone during passive cooling and steps up cooling levels when
temperature stabilizes below the next trip.

Signed-off-by: Gaurav Kohli <[email protected]>
---
 arch/arm64/boot/dts/qcom/monaco.dtsi | 99 ++++++++++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi 
b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 64fc0d592282..cf30939b4cbb 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -22,6 +22,7 @@
 #include <dt-bindings/soc/qcom,gpr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+#include <dt-bindings/thermal/qcom,qmi-tmd.h>
 #include <dt-bindings/thermal/thermal.h>
 
 / {
@@ -7738,6 +7739,8 @@ remoteproc_cdsp: remoteproc@26300000 {
                        qcom,smem-states = <&smp2p_cdsp_out 0>;
                        qcom,smem-state-names = "stop";
 
+                       #cooling-cells = <3>;
+
                        status = "disabled";
 
                        glink-edge {
@@ -8170,39 +8173,87 @@ cpu-critical {
                };
 
                nsp-0-0-0-thermal {
+                       polling-delay-passive = <200>;
+
                        thermal-sensors = <&tsens2 5>;
 
                        trips {
+                               nsp_0_0_0_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
                                nsp-critical {
                                        temperature = <125000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&nsp_0_0_0_alert0>;
+                                       cooling-device = <&remoteproc_cdsp 
QCOM_TMD_CDSP_SW
+                                                        THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                nsp-0-1-0-thermal {
+                       polling-delay-passive = <200>;
+
                        thermal-sensors = <&tsens2 6>;
 
                        trips {
+                               nsp_0_1_0_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
                                nsp-critical {
                                        temperature = <125000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&nsp_0_1_0_alert0>;
+                                       cooling-device = <&remoteproc_cdsp 
QCOM_TMD_CDSP_SW
+                                                        THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                nsp-0-2-0-thermal {
+                       polling-delay-passive = <200>;
+
                        thermal-sensors = <&tsens2 7>;
 
                        trips {
+                               nsp_0_2_0_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
                                nsp-critical {
                                        temperature = <125000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&nsp_0_2_0_alert0>;
+                                       cooling-device = <&remoteproc_cdsp 
QCOM_TMD_CDSP_SW
+                                                        THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                ddrss-0-thermal {
@@ -8290,39 +8341,87 @@ cpu-critical {
                };
 
                nsp-0-0-1-thermal {
+                       polling-delay-passive = <200>;
+
                        thermal-sensors = <&tsens3 5>;
 
                        trips {
+                               nsp_0_0_1_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
                                nsp-critical {
                                        temperature = <125000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&nsp_0_0_1_alert0>;
+                                       cooling-device = <&remoteproc_cdsp 
QCOM_TMD_CDSP_SW
+                                                        THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                nsp-0-1-1-thermal {
+                       polling-delay-passive = <200>;
+
                        thermal-sensors = <&tsens3 6>;
 
                        trips {
+                               nsp_0_1_1_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
                                nsp-critical {
                                        temperature = <125000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&nsp_0_1_1_alert0>;
+                                       cooling-device = <&remoteproc_cdsp 
QCOM_TMD_CDSP_SW
+                                                        THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                nsp-0-2-1-thermal {
+                       polling-delay-passive = <200>;
+
                        thermal-sensors = <&tsens3 7>;
 
                        trips {
+                               nsp_0_2_1_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
                                nsp-critical {
                                        temperature = <125000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&nsp_0_2_1_alert0>;
+                                       cooling-device = <&remoteproc_cdsp 
QCOM_TMD_CDSP_SW
+                                                        THERMAL_NO_LIMIT 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
 
                ddrss-1-thermal {

-- 
2.34.1


Reply via email to