xref: /openbmc/linux/Documentation/hwmon/g762.rst (revision 7ebd8b66)
17ebd8b66SMauro Carvalho ChehabKernel driver g762
27ebd8b66SMauro Carvalho Chehab==================
37ebd8b66SMauro Carvalho Chehab
47ebd8b66SMauro Carvalho ChehabThe GMT G762 Fan Speed PWM Controller is connected directly to a fan
57ebd8b66SMauro Carvalho Chehaband performs closed-loop or open-loop control of the fan speed. Two
67ebd8b66SMauro Carvalho Chehabmodes - PWM or DC - are supported by the device.
77ebd8b66SMauro Carvalho Chehab
87ebd8b66SMauro Carvalho ChehabFor additional information, a detailed datasheet is available at
97ebd8b66SMauro Carvalho Chehabhttp://natisbad.org/NAS/ref/GMT_EDS-762_763-080710-0.2.pdf. sysfs
107ebd8b66SMauro Carvalho Chehabbindings are described in Documentation/hwmon/sysfs-interface.rst.
117ebd8b66SMauro Carvalho Chehab
127ebd8b66SMauro Carvalho ChehabThe following entries are available to the user in a subdirectory of
137ebd8b66SMauro Carvalho Chehab/sys/bus/i2c/drivers/g762/ to control the operation of the device.
147ebd8b66SMauro Carvalho ChehabThis can be done manually using the following entries but is usually
157ebd8b66SMauro Carvalho Chehabdone via a userland daemon like fancontrol.
167ebd8b66SMauro Carvalho Chehab
177ebd8b66SMauro Carvalho ChehabNote that those entries do not provide ways to setup the specific
187ebd8b66SMauro Carvalho Chehabhardware characteristics of the system (reference clock, pulses per
197ebd8b66SMauro Carvalho Chehabfan revolution, ...); Those can be modified via devicetree bindings
207ebd8b66SMauro Carvalho Chehabdocumented in Documentation/devicetree/bindings/hwmon/g762.txt or
217ebd8b66SMauro Carvalho Chehabusing a specific platform_data structure in board initialization
227ebd8b66SMauro Carvalho Chehabfile (see include/linux/platform_data/g762.h).
237ebd8b66SMauro Carvalho Chehab
247ebd8b66SMauro Carvalho Chehab  fan1_target:
257ebd8b66SMauro Carvalho Chehab	    set desired fan speed. This only makes sense in closed-loop
267ebd8b66SMauro Carvalho Chehab	    fan speed control (i.e. when pwm1_enable is set to 2).
277ebd8b66SMauro Carvalho Chehab
287ebd8b66SMauro Carvalho Chehab  fan1_input:
297ebd8b66SMauro Carvalho Chehab	    provide current fan rotation value in RPM as reported by
307ebd8b66SMauro Carvalho Chehab	    the fan to the device.
317ebd8b66SMauro Carvalho Chehab
327ebd8b66SMauro Carvalho Chehab  fan1_div:
337ebd8b66SMauro Carvalho Chehab	    fan clock divisor. Supported value are 1, 2, 4 and 8.
347ebd8b66SMauro Carvalho Chehab
357ebd8b66SMauro Carvalho Chehab  fan1_pulses:
367ebd8b66SMauro Carvalho Chehab	    number of pulses per fan revolution. Supported values
377ebd8b66SMauro Carvalho Chehab	    are 2 and 4.
387ebd8b66SMauro Carvalho Chehab
397ebd8b66SMauro Carvalho Chehab  fan1_fault:
407ebd8b66SMauro Carvalho Chehab	    reports fan failure, i.e. no transition on fan gear pin for
417ebd8b66SMauro Carvalho Chehab	    about 0.7s (if the fan is not voluntarily set off).
427ebd8b66SMauro Carvalho Chehab
437ebd8b66SMauro Carvalho Chehab  fan1_alarm:
447ebd8b66SMauro Carvalho Chehab	    in closed-loop control mode, if fan RPM value is 25% out
457ebd8b66SMauro Carvalho Chehab	    of the programmed value for over 6 seconds 'fan1_alarm' is
467ebd8b66SMauro Carvalho Chehab	    set to 1.
477ebd8b66SMauro Carvalho Chehab
487ebd8b66SMauro Carvalho Chehab  pwm1_enable:
497ebd8b66SMauro Carvalho Chehab	    set current fan speed control mode i.e. 1 for manual fan
507ebd8b66SMauro Carvalho Chehab	    speed control (open-loop) via pwm1 described below, 2 for
517ebd8b66SMauro Carvalho Chehab	    automatic fan speed control (closed-loop) via fan1_target
527ebd8b66SMauro Carvalho Chehab	    above.
537ebd8b66SMauro Carvalho Chehab
547ebd8b66SMauro Carvalho Chehab  pwm1_mode:
557ebd8b66SMauro Carvalho Chehab	    set or get fan driving mode: 1 for PWM mode, 0 for DC mode.
567ebd8b66SMauro Carvalho Chehab
577ebd8b66SMauro Carvalho Chehab  pwm1:
587ebd8b66SMauro Carvalho Chehab	    get or set PWM fan control value in open-loop mode. This is an
597ebd8b66SMauro Carvalho Chehab	    integer value between 0 and 255. 0 stops the fan, 255 makes
607ebd8b66SMauro Carvalho Chehab	    it run at full speed.
617ebd8b66SMauro Carvalho Chehab
627ebd8b66SMauro Carvalho ChehabBoth in PWM mode ('pwm1_mode' set to 1) and DC mode ('pwm1_mode' set to 0),
637ebd8b66SMauro Carvalho Chehabwhen current fan speed control mode is open-loop ('pwm1_enable' set to 1),
647ebd8b66SMauro Carvalho Chehabthe fan speed is programmed by setting a value between 0 and 255 via 'pwm1'
657ebd8b66SMauro Carvalho Chehabentry (0 stops the fan, 255 makes it run at full speed). In closed-loop mode
667ebd8b66SMauro Carvalho Chehab('pwm1_enable' set to 2), the expected rotation speed in RPM can be passed to
677ebd8b66SMauro Carvalho Chehabthe chip via 'fan1_target'. In closed-loop mode, the target speed is compared
687ebd8b66SMauro Carvalho Chehabwith current speed (available via 'fan1_input') by the device and a feedback
697ebd8b66SMauro Carvalho Chehabis performed to match that target value. The fan speed value is computed
707ebd8b66SMauro Carvalho Chehabbased on the parameters associated with the physical characteristics of the
717ebd8b66SMauro Carvalho Chehabsystem: a reference clock source frequency, a number of pulses per fan
727ebd8b66SMauro Carvalho Chehabrevolution, etc.
737ebd8b66SMauro Carvalho Chehab
747ebd8b66SMauro Carvalho ChehabNote that the driver will update its values at most once per second.
75