mvebu: split thermal zone for puzzle chassis
authorChristian Marangi <ansuelsmth@gmail.com>
Tue, 21 May 2024 15:33:02 +0000 (17:33 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Sat, 1 Jun 2024 15:40:10 +0000 (16:40 +0100)
Split thermal zone for puzzle chassis. Thermal platform supports only
one sensor per thermal zone.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts
target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/cn9132-puzzle-m902.dts
target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/puzzle-thermal.dtsi

index b3e3d0a1e00eaad0f4619a19f5624a5085206dce..90d6e855be8e368f202cca3cba2add847b4d68c2 100644 (file)
        };
 
        thermal-zones {
-               chassis-thermal {
-                       polling-delay = <5000>;
-                       thermal-sensors = <&puzzle_hwmon 0>, <&puzzle_hwmon 1>;
-
-                       trips {
-                               chassis_very_hot: trip-point3 {
-                                       temperature = <55000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-
-                               chassis_hot: trip-point2 {
-                                       temperature = <50000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-
-                               chassis_warm: trip-point1 {
-                                       temperature = <45000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-
-                               chassis_cold: trip-point0 {
-                                       temperature = <40000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-                       };
+               chassis0-thermal {
+                       thermal-sensors = <&puzzle_hwmon 0>;
+                       PUZZLE_FAN_CHASSIS_THERMAL(chassis0, &chassis_fan_group0);
+               };
 
-                       cooling-maps {
-                               map3 {
-                                       trip = <&chassis_very_hot>;
-                                       cooling-device = <&chassis_fan_group0 6 6>;
-                               };
-
-                               map2 {
-                                       trip = <&chassis_hot>;
-                                       cooling-device = <&chassis_fan_group0 3 3>;
-                               };
-
-                               map1 {
-                                       trip = <&chassis_warm>;
-                                       cooling-device = <&chassis_fan_group0 1 1>;
-                               };
-
-                               map0 {
-                                       trip = <&chassis_cold>;
-                                       cooling-device = <&chassis_fan_group0 0 0>;
-                               };
-                       };
+               chassis1-thermal {
+                       thermal-sensors = <&puzzle_hwmon 1>;
+                       PUZZLE_FAN_CHASSIS_THERMAL(chassis1, &chassis_fan_group0);
                };
 
                cp0-phy0-thermal {
index 1394f2010a2aae92f97e2163fb64a720a5ea2eac..67dace488866bce50489e5788835c14249035a8e 100644 (file)
        };
 
        thermal-zones {
-               chassis-thermal {
-                       polling-delay = <5000>;
-                       thermal-sensors = <&puzzle_hwmon 0>, <&puzzle_hwmon 1>;
-
-                       trips {
-                               chassis_very_hot: trip-point2 {
-                                       temperature = <55000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-
-                               chassis_hot: trip-point1 {
-                                       temperature = <50000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-
-                               chassis_warm: trip-point0 {
-                                       temperature = <45000>;
-                                       hysteresis = <5000>;
-                                       type = "active";
-                               };
-                       };
+               chassis0-thermal {
+                       thermal-sensors = <&puzzle_hwmon 0>;
+                       PUZZLE_FAN_CHASSIS_THERMAL(chassis0, &chassis_fan_group0);
+               };
 
-                       cooling-maps {
-                               map2 {
-                                       trip = <&chassis_very_hot>;
-                                       cooling-device = <&chassis_fan_group0 6 6>;
-                               };
-
-                               map1 {
-                                       trip = <&chassis_hot>;
-                                       cooling-device = <&chassis_fan_group0 3 3>;
-                               };
-
-                               map0 {
-                                       trip = <&chassis_warm>;
-                                       cooling-device = <&chassis_fan_group0 1 1>;
-                               };
-                       };
+               chassis1-thermal {
+                       thermal-sensors = <&puzzle_hwmon 1>;
+                       PUZZLE_FAN_CHASSIS_THERMAL(chassis1, &chassis_fan_group0);
                };
 
                cp0-phy0-thermal {
index d347a429ae23a12e20b14ec4d6249212b3533abc..093f9105587f3d01055abd8633e08396b075cdd9 100644 (file)
                        cooling-device = <_fan 1 1>;                    \
                };                                                      \
        }
+
+#define PUZZLE_FAN_CHASSIS_THERMAL(_cname, _fan)                       \
+       polling-delay-passive = <0>;                                    \
+       polling-delay = <5000>;                                         \
+                                                                       \
+       trips {                                                         \
+               _cname##_active_full: trip-point2 {                     \
+                       temperature = <70000>;                          \
+                       hysteresis = <3000>;                            \
+                       type = "active";                                \
+               };                                                      \
+               _cname##_active_med: trip-point1 {                      \
+                       temperature = <62500>;                          \
+                       hysteresis = <3000>;                            \
+                       type = "active";                                \
+               };                                                      \
+               _cname##_active_min: trip-point0 {                      \
+                       temperature = <55000>;                          \
+                       hysteresis = <5000>;                            \
+                       type = "active";                                \
+               };                                                      \
+       };                                                              \
+       cooling-maps {                                                  \
+               map2 {                                                  \
+                       trip = <&_cname##_active_full>;                 \
+                       cooling-device = <_fan 6 6>;                    \
+               };                                                      \
+               map1 {                                                  \
+                       trip = <&_cname##_active_med>;                  \
+                       cooling-device = <_fan 3 3>;                    \
+               };                                                      \
+               map0 {                                                  \
+                       trip = <&_cname##_active_min>;                  \
+                       cooling-device = <_fan 1 1>;                    \
+               };                                                      \
+       }