arm64: dts: marvell: clearfog-gt-8k: add cooling maps
authorRussell King <rmk+kernel@armlinux.org.uk>
Tue, 9 Mar 2021 15:20:13 +0000 (15:20 +0000)
committerGregory CLEMENT <gregory.clement@bootlin.com>
Fri, 2 Apr 2021 19:47:41 +0000 (21:47 +0200)
Add cooling maps suitable for a Noctua NF-A4/10 fan attached to the
heat sink.  The fan will toggle between two speeds in operation which
seems to be normal behaviour.  More fine-grained steps may help to
reduce this.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts

index b1723ac..0ec0d56 100644 (file)
                ethernet2 = &cp1_eth2;
        };
 
-       pwm {
+       fan: pwm {
                compatible = "pwm-fan";
+               /* 20% steps */
+               cooling-levels = <0 51 102 153 204 255>;
+               #cooling-cells = <2>;
                pinctrl-names = "default";
                pinctrl-0 = <&cp0_fan_pwm_pins>;
                pwms = <&cp0_gpio2 16 40000>;
        };
 };
 
+&ap_thermal_ic {
+       polling-delay = <1000>; /* milliseconds */
+       trips {
+               ap_active: trip-active {
+                       temperature = <40000>; /* millicelsius */
+                       hysteresis = <4000>; /* millicelsius */
+                       type = "active";
+               };
+       };
+       cooling-maps {
+               map0 {
+                       trip = <&ap_active>;
+                       cooling-device = <&fan THERMAL_NO_LIMIT 4>;
+               };
+               map1 {
+                       trip = <&ap_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
+&cp0_thermal_ic {
+       polling-delay = <1000>; /* milliseconds */
+       trips {
+               cp0_active0: trip-active0 {
+                       temperature = <40000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+               cp0_active1: trip-active1 {
+                       temperature = <45000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+               cp0_active2: trip-active2 {
+                       temperature = <50000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+               cp0_active3: trip-active3 {
+                       temperature = <60000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+       };
+       cooling-maps {
+               map0 {
+                       trip = <&cp0_active0>;
+                       cooling-device = <&fan 0 1>;
+               };
+               map1 {
+                       trip = <&cp0_active1>;
+                       cooling-device = <&fan 1 2>;
+               };
+               map2 {
+                       trip = <&cp0_active2>;
+                       cooling-device = <&fan 2 3>;
+               };
+               map3 {
+                       trip = <&cp0_active3>;
+                       cooling-device = <&fan 3 4>;
+               };
+               map4 {
+                       trip = <&cp0_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
+&cp1_thermal_ic {
+       polling-delay = <1000>; /* milliseconds */
+       trips {
+               cp1_active0: trip-active0 {
+                       temperature = <40000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+               cp1_active1: trip-active1 {
+                       temperature = <45000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+               cp1_active2: trip-active2 {
+                       temperature = <50000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+               cp1_active3: trip-active3 {
+                       temperature = <60000>; /* millicelsius */
+                       hysteresis = <2500>; /* millicelsius */
+                       type = "active";
+               };
+       };
+       cooling-maps {
+               map0 {
+                       trip = <&cp1_active0>;
+                       cooling-device = <&fan 0 1>;
+               };
+               map1 {
+                       trip = <&cp1_active1>;
+                       cooling-device = <&fan 1 2>;
+               };
+               map2 {
+                       trip = <&cp1_active2>;
+                       cooling-device = <&fan 2 3>;
+               };
+               map3 {
+                       trip = <&cp1_active3>;
+                       cooling-device = <&fan 3 4>;
+               };
+               map4 {
+                       trip = <&cp1_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
 &uart0 {
        status = "okay";
        pinctrl-0 = <&uart0_pins>;