[PATCH 1/1] arm64: dts: freescale: Add PWM fan support
Alexander Stein
alexander.stein at ew.tq-group.com
Mon Oct 31 23:50:04 PDT 2022
Am Samstag, 29. Oktober 2022, 06:01:53 CET schrieb Shawn Guo:
> On Tue, Oct 18, 2022 at 11:33:41AM +0200, Alexander Stein wrote:
> > This adds the support for optional PWM fan 422J/2HP.
> >
> > Signed-off-by: Alexander Stein <alexander.stein at ew.tq-group.com>
>
> Board name should be specified in the patch subject to tell this is a
> board specific change, maybe something like `arm64: dts: mba8mpxl: ...`?
Yes, you are right. Will fix that. Thanks
Alexander
> Shawn
>
> > ---
> > Now with inverted polarity support for pwm-fan in place, add PWM fan DT
> > nodes for TQMa8MPQL + MBa8MPxL. As this is optional, it's disabled by
> > default. This is based on next-20221018.
> >
> > Note: This device needs 'pwm1_enable' set to 3. E.g. using udev rule:
> > SUBSYSTEM=="hwmon", DRIVERS=="pwm-fan", ATTR{pwm1_enable}="3"
> >
> > .../freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 76 +++++++++++++++++++
> > 1 file changed, 76 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
> > b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts index
> > 7a32379cd006..ffd117f17bbe 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
> > @@ -55,6 +55,21 @@ clk_xtal25: clk-xtal25 {
> >
> > clock-frequency = <25000000>;
> >
> > };
> >
> > + fan0: pwm-fan {
> > + compatible = "pwm-fan";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_pwmfan>;
> > + fan-supply = <®_pwm_fan>;
> > + #cooling-cells = <2>;
> > + /* typical 25 kHz -> 40.000 nsec */
> > + pwms = <&pwm3 0 40000 PWM_POLARITY_INVERTED>;
> > + cooling-levels = <0 32 64 128 196 240>;
> > + pulses-per-revolution = <2>;
> > + interrupt-parent = <&gpio5>;
> > + interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
> > + status = "disabled";
> > + };
> > +
> >
> > gpio-keys {
> >
> > compatible = "gpio-keys";
> > pinctrl-names = "default";
> >
> > @@ -115,6 +130,18 @@ display: display {
> >
> > status = "disabled";
> >
> > };
> >
> > + reg_pwm_fan: regulator-pwm-fan {
> > + compatible = "regulator-fixed";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_regpwmfan>;
> > + regulator-name = "FAN_PWR";
> > + regulator-min-microvolt = <12000000>;
> > + regulator-max-microvolt = <12000000>;
> > + gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + vin-supply = <®_vcc_12v0>;
> > + };
> > +
> >
> > reg_usdhc2_vmmc: regulator-usdhc2 {
> >
> > compatible = "regulator-fixed";
> > pinctrl-names = "default";
> >
> > @@ -172,6 +199,47 @@ linux,cma {
> >
> > linux,cma-default;
> >
> > };
> >
> > };
> >
> > +
> > + thermal-zones {
> > + soc-thermal {
> > + trips {
> > + soc_active0: trip-active0 {
> > + temperature = <40000>;
> > + hysteresis = <5000>;
> > + type = "active";
> > + };
> > +
> > + soc_active1: trip-active1 {
> > + temperature = <48000>;
> > + hysteresis = <3000>;
> > + type = "active";
> > + };
> > +
> > + soc_active2: trip-active2 {
> > + temperature = <60000>;
> > + hysteresis = <10000>;
> > + type = "active";
> > + };
> > + };
> > +
> > + cooling-maps {
> > + map1 {
> > + trip = <&soc_active0>;
> > + cooling-device = <&fan0 1
1>;
> > + };
> > +
> > + map2 {
> > + trip = <&soc_active1>;
> > + cooling-device = <&fan0 2
2>;
> > + };
> > +
> > + map3 {
> > + trip = <&soc_active2>;
> > + cooling-device = <&fan0 3
3>;
> > + };
> > + };
> > + };
> > + };
> >
> > };
> >
> > &ecspi1 {
> >
> > @@ -725,10 +793,18 @@ pinctrl_pwm3: pwm3grp {
> >
> > fsl,pins = <MX8MP_IOMUXC_I2C3_SDA__PWM3_OUT
0x14>;
> >
> > };
> >
> > + pinctrl_pwmfan: pwmfangrp {
> > + fsl,pins = <MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18
0x80>; /* FAN RPM */
> > + };
> > +
> >
> > pinctrl_reg12v0: reg12v0grp {
> >
> > fsl,pins = <MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06
0x140>; /* VCC12V
> > enable */
> >
> > };
> >
> > + pinctrl_regpwmfan: regpwmfangrp {
> > + fsl,pins = <MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27
0x80>;
> > + };
> > +
> >
> > /* X61 */
> > pinctrl_uart1: uart1grp {
> >
> > fsl,pins = <MX8MP_IOMUXC_SD1_CLK__UART1_DCE_TX
0x140>,
More information about the linux-arm-kernel
mailing list