Add a simple cooling map for the GPU.

This cooling map come from the vendor kernel 4.9 with a
2°C hysteresis added.

Signed-off-by: Clément Péron <peron.c...@gmail.com>
---
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 51 +++++++++++++++++++-
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi 
b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index 5a28303d3d4c..1259ab0c3956 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -186,6 +186,7 @@ gpu: gpu@1800000 {
                        clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>;
                        clock-names = "core", "bus";
                        resets = <&ccu RST_BUS_GPU>;
+                       #cooling-cells = <2>;
                        status = "disabled";
                };
 
@@ -1072,9 +1073,55 @@ map0 {
                };
 
                gpu-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+                       polling-delay-passive = <1000>;
+                       polling-delay = <2000>;
                        thermal-sensors = <&ths 1>;
+
+                       trips {
+                               gpu_alert0: gpu-alert-0 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_alert1: gpu-alert-1 {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_alert2: gpu-alert-2 {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               // Fordid the GPU to go over 756MHz
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device = <&gpu 1 
THERMAL_NO_LIMIT>;
+                               };
+
+                               // Fordid the GPU to go over 624MHz
+                               map1 {
+                                       trip = <&gpu_alert1>;
+                                       cooling-device = <&gpu 2 
THERMAL_NO_LIMIT>;
+                               };
+
+                               // Fordid the GPU to go over 576MHz
+                               map2 {
+                                       trip = <&gpu_alert2>;
+                                       cooling-device = <&gpu 3 
THERMAL_NO_LIMIT>;
+                               };
+                       };
                };
        };
 };
-- 
2.34.1

Reply via email to