[][MT7986a: Fix pwm fan support and update example cooling strategies]

[Description]
Add pwm fan support to mt7986a
example cooling strategies:
over 125  : reboot
120~125   : notify to driver callback (if callback function is set)
115~120   : FAN 100%
85~115    : FAN 50%
bellow 85 : FAN 0%

You need to connect the 'pwm' pin of PWM FAN to 'PWM1' (GPIO22) pin on mt7986,
and set 'status' properties of 'fan' node in the device tree to enable this.

[Release-log]
N/A

Change-Id: I220756e5ac8e154251943ca5d6a0303846b40195
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6183410
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-emmc-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-emmc-rfb.dts
index c12d50f..d190872 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-emmc-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-emmc-rfb.dts
@@ -44,6 +44,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-gsw-spim-nand-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-gsw-spim-nand-rfb.dts
index 47abc42..457c351 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-gsw-spim-nand-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-gsw-spim-nand-rfb.dts
@@ -33,6 +33,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-sd-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-sd-rfb.dts
index d22b90c..5163536 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-sd-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-sd-rfb.dts
@@ -35,6 +35,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nand-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nand-rfb.dts
index 4235ce9..53356cb 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nand-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nand-rfb.dts
@@ -26,6 +26,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nor-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nor-rfb.dts
index c5ca569..f7de3dd 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nor-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-2500wan-spim-nor-rfb.dts
@@ -26,6 +26,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-emmc-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-emmc-rfb.dts
index f47e87d..91c2234 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-emmc-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-emmc-rfb.dts
@@ -51,6 +51,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-snfi-nand-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-snfi-nand-rfb.dts
index 3fc699c..d7ec46c 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-snfi-nand-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-snfi-nand-rfb.dts
@@ -33,6 +33,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nand-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nand-rfb.dts
index a820237..9c06c6c 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nand-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nand-rfb.dts
@@ -33,6 +33,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nor-rfb.dts b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nor-rfb.dts
index e56e5e0..96778a5 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nor-rfb.dts
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a-spim-nor-rfb.dts
@@ -33,6 +33,11 @@
 	};
 };
 
+&fan {
+	pwms = <&pwm 1 50000 0>;
+	status = "disabled";
+};
+
 &pwm {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pwm0_pin &pwm1_pin_g1>;
diff --git a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a.dtsi b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a.dtsi
index ba27b95..92b585b 100644
--- a/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a.dtsi
+++ b/target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7986a.dtsi
@@ -313,35 +313,48 @@
 			polling-delay = <1000>;
 			thermal-sensors = <&thermal 0>;
 			trips {
+				cpu_trip_crit: crit {
+					temperature = <125000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+
 				cpu_trip_hot: hot {
-					temperature = <60000>;
+					temperature = <120000>;
 					hysteresis = <2000>;
 					type = "hot";
 				};
 
-				cpu_trip_active: active {
-					temperature = <40000>;
+				cpu_trip_active_high: active-high {
+					temperature = <115000>;
+					hysteresis = <2000>;
+					type = "active";
+				};
+
+				cpu_trip_active_low: active-low {
+					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "active";
 				};
 
 				cpu_trip_passive: passive {
-					temperature = <20000>;
+					temperature = <40000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
 			};
+
 			cooling-maps {
-				cpu-hot {
-					/* hot: set fan to cooling level 2 */
+				cpu-active-high {
+					/* active: set fan to cooling level 2 */
 					cooling-device = <&fan 2 2>;
-					trip = <&cpu_trip_hot>;
+					trip = <&cpu_trip_active_high>;
 				};
 
-				cpu-active {
+				cpu-active-low {
 					/* active: set fan to cooling level 1 */
 					cooling-device = <&fan 1 1>;
-					trip = <&cpu_trip_active>;
+					trip = <&cpu_trip_active_low>;
 				};
 
 				cpu-passive {