b99152d4f0
This adds the enable attribute which is used to select if zero PWM duty means to switch off regulator and PWM or to keep them enabled but at inactive PWM output level. Depending on the select enable mode, turn off the regulator and PWM if the PWM duty is zero, or keep them enabled. This is especially important for fan using inverted PWM signal polarity. Having regulator supplied and PWM disabled, some PWM controllers provide the active, rather than inactive signal. With this change the shutdown as well as suspend/resume paths require modifcations as well. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Link: https://lore.kernel.org/r/20220914153137.613982-6-alexander.stein@ew.tq-group.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
33 lines
1.3 KiB
ReStructuredText
33 lines
1.3 KiB
ReStructuredText
Kernel driver pwm-fan
|
|
=====================
|
|
|
|
This driver enables the use of a PWM module to drive a fan. It uses the
|
|
generic PWM interface thus it is hardware independent. It can be used on
|
|
many SoCs, as long as the SoC supplies a PWM line driver that exposes
|
|
the generic PWM API.
|
|
|
|
Author: Kamil Debski <k.debski@samsung.com>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The driver implements a simple interface for driving a fan connected to
|
|
a PWM output. It uses the generic PWM interface, thus it can be used with
|
|
a range of SoCs. The driver exposes the fan to the user space through
|
|
the hwmon's sysfs interface.
|
|
|
|
The fan rotation speed returned via the optional 'fan1_input' is extrapolated
|
|
from the sampled interrupts from the tachometer signal within 1 second.
|
|
|
|
The driver provides the following sensor accesses in sysfs:
|
|
|
|
=============== ======= =======================================================
|
|
fan1_input ro fan tachometer speed in RPM
|
|
pwm1_enable rw keep enable mode, defines behaviour when pwm1=0
|
|
0 -> disable pwm and regulator
|
|
1 -> enable pwm; if pwm==0, disable pwm, keep regulator enabled
|
|
2 -> enable pwm; if pwm==0, keep pwm and regulator enabled
|
|
3 -> enable pwm; if pwm==0, disable pwm and regulator
|
|
pwm1 rw relative speed (0-255), 255=max. speed.
|
|
=============== ======= =======================================================
|