io_uring: safer fallback_work free
[linux-block.git] / Documentation / hwmon / w83792d.rst
CommitLineData
1ff4e306
M
1Kernel driver w83792d
2=====================
3
4Supported chips:
b04f2f7d 5
1ff4e306 6 * Winbond W83792D
b04f2f7d 7
1ff4e306 8 Prefix: 'w83792d'
b04f2f7d 9
1ff4e306 10 Addresses scanned: I2C 0x2c - 0x2f
b04f2f7d 11
0ea6e611 12 Datasheet: http://www.winbond.com.tw
1ff4e306 13
f85b5205 14Author: Shane Huang (Winbond)
f617f731 15Updated: Roger Lucas
1ff4e306
M
16
17
18Module Parameters
19-----------------
20
21* init int
b04f2f7d
MCC
22 (default 1)
23
24 Use 'init=0' to bypass initializing the chip.
25 Try this if your computer crashes when you load the module.
1ff4e306
M
26
27* force_subclients=bus,caddr,saddr,saddr
b04f2f7d
MCC
28 This is used to force the i2c addresses for subclients of
29 a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b`
30 to force the subclients of chip 0x2f on bus 0 to i2c addresses
31 0x4a and 0x4b.
1ff4e306
M
32
33
34Description
35-----------
36
37This driver implements support for the Winbond W83792AD/D.
38
39Detection of the chip can sometimes be foiled because it can be in an
40internal state that allows no clean access (Bank with ID register is not
41currently selected). If you know the address of the chip, use a 'force'
42parameter; this will put it into a more well-behaved state first.
43
44The driver implements three temperature sensors, seven fan rotation speed
45sensors, nine voltage sensors, and two automatic fan regulation
46strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.
f617f731
RL
47
48The driver also implements up to seven fan control outputs: pwm1-7. Pwm1-7
49can be configured to PWM output or Analogue DC output via their associated
50pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on
51how the W83792AD/D was configured by the BIOS.
52
53Automatic fan control mode is possible only for fan1-fan3.
54
55For all pwmX outputs, a value of 0 means minimum fan speed and a value of
56255 means maximum fan speed.
1ff4e306
M
57
58Temperatures are measured in degrees Celsius and measurement resolution is 1
59degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
60the temperature gets higher than the Overtemperature Shutdown value; it stays
61on until the temperature falls below the Hysteresis value.
62
63Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
64triggered if the rotation speed has dropped below a programmable limit. Fan
65readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
66128) to give the readings more range or accuracy.
67
68Voltage sensors (also known as IN sensors) report their values in millivolts.
69An alarm is triggered if the voltage has crossed a programmable minimum
70or maximum limit.
71
72Alarms are provided as output from "realtime status register". Following bits
73are defined:
74
b04f2f7d
MCC
75==== ==========
76bit alarm on
77==== ==========
780 in0
791 in1
802 temp1
813 temp2
824 temp3
835 fan1
846 fan2
857 fan3
868 in2
879 in3
8810 in4
8911 in5
9012 in6
9113 VID change
9214 chassis
9315 fan7
9416 tart1
9517 tart2
9618 tart3
9719 in7
9820 in8
9921 fan4
10022 fan5
10123 fan6
102==== ==========
1ff4e306
M
103
104Tart will be asserted while target temperature cannot be achieved after 3 minutes
105of full speed rotation of corresponding fan.
106
107In addition to the alarms described above, there is a CHAS alarm on the chips
108which triggers if your computer case is open (This one is latched, contrary
109to realtime alarms).
110
111The chips only update values each 3 seconds; reading them more often will
112do no harm, but will return 'old' values.
113
114
115W83792D PROBLEMS
116----------------
117Known problems:
118 - This driver is only for Winbond W83792D C version device, there
119 are also some motherboards with B version W83792D device. The
120 calculation method to in6-in7(measured value, limits) is a little
121 different between C and B version. C or B version can be identified
122 by CR[0x49h].
123 - The function of vid and vrm has not been finished, because I'm NOT
124 very familiar with them. Adding support is welcome.
b04f2f7d 125 - The function of chassis open detection needs more tests.
1ff4e306
M
126 - If you have ASUS server board and chip was not found: Then you will
127 need to upgrade to latest (or beta) BIOS. If it does not help please
128 contact us.
129
130Fan control
131-----------
132
133Manual mode
134-----------
135
136Works as expected. You just need to specify desired PWM/DC value (fan speed)
137in appropriate pwm# file.
138
139Thermal cruise
140--------------
141
142In this mode, W83792D provides the Smart Fan system to automatically control
143fan speed to keep the temperatures of CPU and the system within specific
144range. At first a wanted temperature and interval must be set. This is done
145via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
146interval. The fan speed will be lowered as long as the current temperature
147remains below the thermal_cruise# +- tolerance# value. Once the temperature
148exceeds the high limit (T+tolerance), the fan will be turned on with a
149specific speed set by pwm# and automatically controlled its PWM duty cycle
150with the temperature varying. Three conditions may occur:
151
152(1) If the temperature still exceeds the high limit, PWM duty
153cycle will increase slowly.
154
155(2) If the temperature goes below the high limit, but still above the low
156limit (T-tolerance), the fan speed will be fixed at the current speed because
157the temperature is in the target range.
158
159(3) If the temperature goes below the low limit, PWM duty cycle will decrease
160slowly to 0 or a preset stop value until the temperature exceeds the low
161limit. (The preset stop value handling is not yet implemented in driver)
162
163Smart Fan II
164------------
165
166W83792D also provides a special mode for fan. Four temperature points are
167available. When related temperature sensors detects the temperature in preset
168temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run
169on programmed value from sf2_level@_fan#. You need to set four temperatures
170for each fan.
171
172
173/sys files
174----------
175
b04f2f7d
MCC
176pwm[1-7]
177 - this file stores PWM duty cycle or DC value (fan speed) in range:
178
179 0 (stop) to 255 (full)
180pwm[1-3]_enable
181 - this file controls mode of fan/temperature control:
182
183 * 0 Disabled
184 * 1 Manual mode
185 * 2 Smart Fan II
186 * 3 Thermal Cruise
187pwm[1-7]_mode
188 - Select PWM or DC mode
189
190 * 0 DC
191 * 1 PWM
192thermal_cruise[1-3]
193 - Selects the desired temperature for cruise (degC)
194tolerance[1-3]
195 - Value in degrees of Celsius (degC) for +- T
196sf2_point[1-4]_fan[1-3]
197 - four temperature points for each fan for Smart Fan II
198sf2_level[1-3]_fan[1-3]
199 - three PWM/DC levels for each fan for Smart Fan II