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