[PATCH 6/7] arm64: dts: imx943-evk: Add fan node and enable active cooling on A55

From: Peng Fan (OSS)

Date: Sat Mar 14 2026 - 08:53:41 EST


From: Florin Leotescu <florin.leotescu@xxxxxxx>

Add pwm fan node and use it for A55 cooling.

Signed-off-by: Florin Leotescu <florin.leotescu@xxxxxxx>
Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 57 ++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index 36b76b3e27eedf76b80b1c19e2a152d42bdbe1d7..428a8dc1904cafa24d47a4f81dc70786f8516ef5 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -5,7 +5,9 @@

/dts-v1/;

+#include <dt-bindings/pwm/pwm.h>
#include "imx943.dtsi"
+
#define BRD_SM_CTRL_BT_WAKE 0x8000 /*!< PCAL6416A-3 */
#define BRD_SM_CTRL_SD3_WAKE 0x8001 /*!< PCAL6416A-4 */
#define BRD_SM_CTRL_PCIE1_WAKE 0x8002 /*!< PCAL6416A-5 */
@@ -270,6 +272,20 @@ i2c@4 {
#address-cells = <1>;
#size-cells = <0>;

+ fan_controller: pwm@2f {
+ compatible = "microchip,emc2301", "microchip,emc2305";
+ reg = <0x2f>;
+ #pwm-cells = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fan0: fan@0 {
+ reg = <0x0>;
+ pwms = <&fan_controller 26000 1 PWM_POLARITY_INVERTED>;
+ #cooling-cells = <2>;
+ };
+ };
+
wm8962: codec@1a {
compatible = "wlf,wm8962";
reg = <0x1a>;
@@ -834,6 +850,47 @@ BRD_SM_CTRL_PCIE2_WAKE 1
BRD_SM_CTRL_BUTTON 1>;
};

+&thermal_zones {
+ a55-thermal {
+ trips {
+ atrip2: trip2 {
+ temperature = <55000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+
+ atrip3: trip3 {
+ temperature = <65000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+
+ atrip4: trip4 {
+ temperature = <75000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map1 {
+ trip = <&atrip2>;
+ cooling-device = <&fan0 4 6>;
+ };
+
+ map2 {
+ trip = <&atrip3>;
+ cooling-device = <&fan0 6 8>;
+ };
+
+ map3 {
+ trip = <&atrip4>;
+ cooling-device = <&fan0 8 10>;
+ };
+ };
+ };
+};
+
&usdhc1 {
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;

--
2.37.1