arm64: dts: freescale: imx93-phyboard-nash: Add pwm-fan overlay

Add overlay to support PWM fan on the phyBOARD-Nash-i.MX93 board. Fan
can be connected to the FAN (X48) connector on the board and will be
controlled according to the following CPU temperature trips table:

 - bellow 50 degrees - fan is off (<1% duty cycle)
 - between 50 and 58 degrees - low fan speed (~35% duty cycle)
 - between 58 and 65 degrees - fan medium speed (~60% duty cycle)
 - above 65 degrees - fan at full speed (>99% duty cycle)

The output frequency of PWM signal is set to 25 kHz.

Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
Reviewed-by: Alberto Merciai <alb3rt0.m3rciai@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
Primoz Fiser
2025-10-28 12:58:20 +01:00
committed by Shawn Guo
parent af21bfd1f7
commit 09b33db32e
2 changed files with 77 additions and 0 deletions

View File

@@ -382,11 +382,13 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
imx93-phyboard-nash-jtag-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-jtag.dtbo
imx93-phyboard-nash-peb-wlbt-07-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-peb-wlbt-07.dtbo
imx93-phyboard-nash-pwm-fan-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-pwm-fan.dtbo
imx93-phyboard-segin-peb-eval-01-dtbs += imx93-phyboard-segin.dtb imx93-phyboard-segin-peb-eval-01.dtbo
imx93-phyboard-segin-peb-wlbt-05-dtbs += imx93-phyboard-segin.dtb imx93-phyboard-segin-peb-wlbt-05.dtbo
imx93-phycore-rpmsg-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-rpmsg.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash-jtag.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash-peb-wlbt-07.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash-pwm-fan.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin-peb-eval-01.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin-peb-wlbt-05.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-rpmsg.dtb

View File

@@ -0,0 +1,75 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2025 PHYTEC Messtechnik GmbH
* Author: Primoz Fiser <primoz.fiser@norik.com>
*/
#include <dt-bindings/pwm/pwm.h>
#include "imx93-pinfunc.h"
/dts-v1/;
/plugin/;
&{/} {
fan0: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fan>;
cooling-levels = <1 90 150 200 255>;
pwms = <&tpm6 1 40000 PWM_POLARITY_INVERTED>;
};
thermal-zones {
cpu-thermal {
trips {
cpu_low: cpu-low {
hysteresis = <3000>;
temperature = <50000>;
type = "active";
};
cpu_med: cpu-med {
hysteresis = <3000>;
temperature = <58000>;
type = "active";
};
cpu_high: cpu-high {
hysteresis = <3000>;
temperature = <65000>;
type = "active";
};
};
cooling-maps {
map1 {
cooling-device = <&fan0 1 1>;
trip = <&cpu_low>;
};
map2 {
cooling-device = <&fan0 2 2>;
trip = <&cpu_med>;
};
map3 {
cooling-device = <&fan0 4 4>;
trip = <&cpu_high>;
};
};
};
};
};
&tpm6 {
status = "okay";
};
&iomuxc {
pinctrl_fan: fangrp {
fsl,pins = <
MX93_PAD_GPIO_IO23__TPM6_CH1 0x31e
>;
};
};