xref: /linux/Documentation/hwmon/g762.rst (revision c39f2d9db0fd81ea20bb5cce9b3f082ca63753e2)
1*7ebd8b66SMauro Carvalho ChehabKernel driver g762
2*7ebd8b66SMauro Carvalho Chehab==================
3*7ebd8b66SMauro Carvalho Chehab
4*7ebd8b66SMauro Carvalho ChehabThe GMT G762 Fan Speed PWM Controller is connected directly to a fan
5*7ebd8b66SMauro Carvalho Chehaband performs closed-loop or open-loop control of the fan speed. Two
6*7ebd8b66SMauro Carvalho Chehabmodes - PWM or DC - are supported by the device.
7*7ebd8b66SMauro Carvalho Chehab
8*7ebd8b66SMauro Carvalho ChehabFor additional information, a detailed datasheet is available at
9*7ebd8b66SMauro Carvalho Chehabhttp://natisbad.org/NAS/ref/GMT_EDS-762_763-080710-0.2.pdf. sysfs
10*7ebd8b66SMauro Carvalho Chehabbindings are described in Documentation/hwmon/sysfs-interface.rst.
11*7ebd8b66SMauro Carvalho Chehab
12*7ebd8b66SMauro Carvalho ChehabThe following entries are available to the user in a subdirectory of
13*7ebd8b66SMauro Carvalho Chehab/sys/bus/i2c/drivers/g762/ to control the operation of the device.
14*7ebd8b66SMauro Carvalho ChehabThis can be done manually using the following entries but is usually
15*7ebd8b66SMauro Carvalho Chehabdone via a userland daemon like fancontrol.
16*7ebd8b66SMauro Carvalho Chehab
17*7ebd8b66SMauro Carvalho ChehabNote that those entries do not provide ways to setup the specific
18*7ebd8b66SMauro Carvalho Chehabhardware characteristics of the system (reference clock, pulses per
19*7ebd8b66SMauro Carvalho Chehabfan revolution, ...); Those can be modified via devicetree bindings
20*7ebd8b66SMauro Carvalho Chehabdocumented in Documentation/devicetree/bindings/hwmon/g762.txt or
21*7ebd8b66SMauro Carvalho Chehabusing a specific platform_data structure in board initialization
22*7ebd8b66SMauro Carvalho Chehabfile (see include/linux/platform_data/g762.h).
23*7ebd8b66SMauro Carvalho Chehab
24*7ebd8b66SMauro Carvalho Chehab  fan1_target:
25*7ebd8b66SMauro Carvalho Chehab	    set desired fan speed. This only makes sense in closed-loop
26*7ebd8b66SMauro Carvalho Chehab	    fan speed control (i.e. when pwm1_enable is set to 2).
27*7ebd8b66SMauro Carvalho Chehab
28*7ebd8b66SMauro Carvalho Chehab  fan1_input:
29*7ebd8b66SMauro Carvalho Chehab	    provide current fan rotation value in RPM as reported by
30*7ebd8b66SMauro Carvalho Chehab	    the fan to the device.
31*7ebd8b66SMauro Carvalho Chehab
32*7ebd8b66SMauro Carvalho Chehab  fan1_div:
33*7ebd8b66SMauro Carvalho Chehab	    fan clock divisor. Supported value are 1, 2, 4 and 8.
34*7ebd8b66SMauro Carvalho Chehab
35*7ebd8b66SMauro Carvalho Chehab  fan1_pulses:
36*7ebd8b66SMauro Carvalho Chehab	    number of pulses per fan revolution. Supported values
37*7ebd8b66SMauro Carvalho Chehab	    are 2 and 4.
38*7ebd8b66SMauro Carvalho Chehab
39*7ebd8b66SMauro Carvalho Chehab  fan1_fault:
40*7ebd8b66SMauro Carvalho Chehab	    reports fan failure, i.e. no transition on fan gear pin for
41*7ebd8b66SMauro Carvalho Chehab	    about 0.7s (if the fan is not voluntarily set off).
42*7ebd8b66SMauro Carvalho Chehab
43*7ebd8b66SMauro Carvalho Chehab  fan1_alarm:
44*7ebd8b66SMauro Carvalho Chehab	    in closed-loop control mode, if fan RPM value is 25% out
45*7ebd8b66SMauro Carvalho Chehab	    of the programmed value for over 6 seconds 'fan1_alarm' is
46*7ebd8b66SMauro Carvalho Chehab	    set to 1.
47*7ebd8b66SMauro Carvalho Chehab
48*7ebd8b66SMauro Carvalho Chehab  pwm1_enable:
49*7ebd8b66SMauro Carvalho Chehab	    set current fan speed control mode i.e. 1 for manual fan
50*7ebd8b66SMauro Carvalho Chehab	    speed control (open-loop) via pwm1 described below, 2 for
51*7ebd8b66SMauro Carvalho Chehab	    automatic fan speed control (closed-loop) via fan1_target
52*7ebd8b66SMauro Carvalho Chehab	    above.
53*7ebd8b66SMauro Carvalho Chehab
54*7ebd8b66SMauro Carvalho Chehab  pwm1_mode:
55*7ebd8b66SMauro Carvalho Chehab	    set or get fan driving mode: 1 for PWM mode, 0 for DC mode.
56*7ebd8b66SMauro Carvalho Chehab
57*7ebd8b66SMauro Carvalho Chehab  pwm1:
58*7ebd8b66SMauro Carvalho Chehab	    get or set PWM fan control value in open-loop mode. This is an
59*7ebd8b66SMauro Carvalho Chehab	    integer value between 0 and 255. 0 stops the fan, 255 makes
60*7ebd8b66SMauro Carvalho Chehab	    it run at full speed.
61*7ebd8b66SMauro Carvalho Chehab
62*7ebd8b66SMauro Carvalho ChehabBoth in PWM mode ('pwm1_mode' set to 1) and DC mode ('pwm1_mode' set to 0),
63*7ebd8b66SMauro Carvalho Chehabwhen current fan speed control mode is open-loop ('pwm1_enable' set to 1),
64*7ebd8b66SMauro Carvalho Chehabthe fan speed is programmed by setting a value between 0 and 255 via 'pwm1'
65*7ebd8b66SMauro Carvalho Chehabentry (0 stops the fan, 255 makes it run at full speed). In closed-loop mode
66*7ebd8b66SMauro Carvalho Chehab('pwm1_enable' set to 2), the expected rotation speed in RPM can be passed to
67*7ebd8b66SMauro Carvalho Chehabthe chip via 'fan1_target'. In closed-loop mode, the target speed is compared
68*7ebd8b66SMauro Carvalho Chehabwith current speed (available via 'fan1_input') by the device and a feedback
69*7ebd8b66SMauro Carvalho Chehabis performed to match that target value. The fan speed value is computed
70*7ebd8b66SMauro Carvalho Chehabbased on the parameters associated with the physical characteristics of the
71*7ebd8b66SMauro Carvalho Chehabsystem: a reference clock source frequency, a number of pulses per fan
72*7ebd8b66SMauro Carvalho Chehabrevolution, etc.
73*7ebd8b66SMauro Carvalho Chehab
74*7ebd8b66SMauro Carvalho ChehabNote that the driver will update its values at most once per second.
75