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@xxxxxxxxxxxxxxx> Board name should be specified in the patch subject to tell this is a board specific change, maybe something like `arm64: dts: mba8mpxl: ...`? 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>, > -- > 2.25.1 >