Merge tag 's390-6.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux-2.6-block.git] / Documentation / hwmon / nct6775.rst
CommitLineData
9de2e2e8
GR
1Kernel driver NCT6775
2=====================
3
b32570a4
MCC
4.. note::
5
6 This driver supersedes the NCT6775F and NCT6776F support in the W83627EHF
7 driver.
8
9de2e2e8 9Supported chips:
b32570a4 10
b6e6dd8e 11 * Nuvoton NCT6102D/NCT6104D/NCT6106D
b32570a4 12
b6e6dd8e 13 Prefix: 'nct6106'
b32570a4 14
b6e6dd8e 15 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 16
b6e6dd8e 17 Datasheet: Available from the Nuvoton web site
b32570a4 18
2c7fd30d 19 * Nuvoton NCT5572D/NCT6771F/NCT6772F/NCT6775F/W83677HG-I
b32570a4 20
9de2e2e8 21 Prefix: 'nct6775'
b32570a4 22
9de2e2e8 23 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 24
9de2e2e8 25 Datasheet: Available from Nuvoton upon request
b32570a4 26
b6e6dd8e 27 * Nuvoton NCT5573D/NCT5577D/NCT6776D/NCT6776F
b32570a4 28
9de2e2e8 29 Prefix: 'nct6776'
b32570a4 30
9de2e2e8 31 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 32
9de2e2e8 33 Datasheet: Available from Nuvoton upon request
b32570a4 34
2c7fd30d 35 * Nuvoton NCT5532D/NCT6779D
b32570a4 36
9de2e2e8 37 Prefix: 'nct6779'
b32570a4 38
9de2e2e8 39 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 40
9de2e2e8 41 Datasheet: Available from Nuvoton upon request
b32570a4 42
b6e6dd8e 43 * Nuvoton NCT6791D
b32570a4 44
b6e6dd8e 45 Prefix: 'nct6791'
b32570a4 46
b6e6dd8e 47 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 48
b6e6dd8e 49 Datasheet: Available from Nuvoton upon request
b32570a4 50
8aefb93f 51 * Nuvoton NCT6792D
b32570a4 52
8aefb93f 53 Prefix: 'nct6792'
b32570a4 54
8aefb93f 55 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 56
8aefb93f 57 Datasheet: Available from Nuvoton upon request
b32570a4 58
cd1faefa 59 * Nuvoton NCT6793D
b32570a4 60
cd1faefa 61 Prefix: 'nct6793'
b32570a4 62
cd1faefa 63 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 64
cd1faefa 65 Datasheet: Available from Nuvoton upon request
b32570a4 66
81820059 67 * Nuvoton NCT6795D
b32570a4 68
81820059 69 Prefix: 'nct6795'
b32570a4 70
81820059 71 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 72
81820059 73 Datasheet: Available from Nuvoton upon request
b32570a4 74
81820059 75 * Nuvoton NCT6796D
b32570a4 76
81820059 77 Prefix: 'nct6796'
b32570a4 78
81820059 79 Addresses scanned: ISA address retrieved from Super I/O registers
b32570a4 80
81820059 81 Datasheet: Available from Nuvoton upon request
9de2e2e8 82
23299bba 83 * Nuvoton NCT6796D-S/NCT6799D-R
b32570a4 84
23299bba
AK
85 Prefix: 'nct6799'
86
87 Addresses scanned: ISA address retrieved from Super I/O registers
88
89 Datasheet: Available from Nuvoton upon request
b32570a4 90
9de2e2e8 91Authors:
b32570a4
MCC
92
93 Guenter Roeck <linux@roeck-us.net>
9de2e2e8
GR
94
95Description
96-----------
97
98This driver implements support for the Nuvoton NCT6775F, NCT6776F, and NCT6779D
2c7fd30d 99and compatible super I/O chips.
9de2e2e8
GR
100
101The chips support up to 25 temperature monitoring sources. Up to 6 of those are
102direct temperature sensor inputs, the others are special sources such as PECI,
103PCH, and SMBUS. Depending on the chip type, 2 to 6 of the temperature sources
104can be monitored and compared against minimum, maximum, and critical
105temperatures. The driver reports up to 10 of the temperatures to the user.
106There are 4 to 5 fan rotation speed sensors, 8 to 15 analog voltage sensors,
107one VID, alarms with beep warnings (control unimplemented), and some automatic
108fan regulation strategies (plus manual fan control mode).
109
110The temperature sensor sources on all chips are configurable. The configured
111source for each of the temperature sensors is provided in tempX_label.
112
113Temperatures are measured in degrees Celsius and measurement resolution is
114either 1 degC or 0.5 degC, depending on the temperature source and
115configuration. An alarm is triggered when the temperature gets higher than
116the high limit; it stays on until the temperature falls below the hysteresis
117value. Alarms are only supported for temp1 to temp6, depending on the chip type.
118
119Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
120triggered if the rotation speed has dropped below a programmable limit. On
121NCT6775F, fan readings can be divided by a programmable divider (1, 2, 4, 8,
12216, 32, 64 or 128) to give the readings more range or accuracy; the other chips
123do not have a fan speed divider. The driver sets the most suitable fan divisor
1c65dc36
GR
124itself; specifically, it increases the divider value each time a fan speed
125reading returns an invalid value, and it reduces it if the fan speed reading
126is lower than optimal. Some fans might not be present because they share pins
9de2e2e8
GR
127with other functions.
128
129Voltage sensors (also known as IN sensors) report their values in millivolts.
130An alarm is triggered if the voltage has crossed a programmable minimum
131or maximum limit.
132
133The driver supports automatic fan control mode known as Thermal Cruise.
134In this mode, the chip attempts to keep the measured temperature in a
135predefined temperature range. If the temperature goes out of range, fan
136is driven slower/faster to reach the predefined range again.
137
138The mode works for fan1-fan5.
139
77eb5b37
GR
140sysfs attributes
141----------------
142
b32570a4
MCC
143pwm[1-7]
144 - this file stores PWM duty cycle or DC value (fan speed) in range:
145
77eb5b37
GR
146 0 (lowest speed) to 255 (full)
147
b32570a4
MCC
148pwm[1-7]_enable
149 - this file controls mode of fan/temperature control:
150
77eb5b37
GR
151 * 0 Fan control disabled (fans set to maximum speed)
152 * 1 Manual mode, write to pwm[0-5] any value 0-255
153 * 2 "Thermal Cruise" mode
154 * 3 "Fan Speed Cruise" mode
155 * 4 "Smart Fan III" mode (NCT6775F only)
156 * 5 "Smart Fan IV" mode
157
b32570a4
MCC
158pwm[1-7]_mode
159 - controls if output is PWM or DC level
160
161 * 0 DC output
162 * 1 PWM output
77eb5b37 163
cdcaeceb
GR
164Common fan control attributes
165-----------------------------
166
b32570a4
MCC
167pwm[1-7]_temp_sel
168 Temperature source. Value is temperature sensor index.
cdcaeceb 169 For example, select '1' for temp1_input.
b32570a4 170
81820059 171pwm[1-7]_weight_temp_sel
bbd8decd
GR
172 Secondary temperature source. Value is temperature
173 sensor index. For example, select '1' for temp1_input.
174 Set to 0 to disable secondary temperature control.
175
176If secondary temperature functionality is enabled, it is controlled with the
177following attributes.
178
81820059 179pwm[1-7]_weight_duty_step
bbd8decd 180 Duty step size.
b32570a4 181
81820059 182pwm[1-7]_weight_temp_step
bbd8decd
GR
183 Temperature step size. With each step over
184 temp_step_base, the value of weight_duty_step is added
185 to the current pwm value.
b32570a4 186
81820059 187pwm[1-7]_weight_temp_step_base
bbd8decd
GR
188 Temperature at which secondary temperature control kicks
189 in.
b32570a4 190
81820059 191pwm[1-7]_weight_temp_step_tol
bbd8decd 192 Temperature step tolerance.
cdcaeceb
GR
193
194Thermal Cruise mode (2)
195-----------------------
196
197If the temperature is in the range defined by:
198
b32570a4
MCC
199pwm[1-7]_target_temp
200 Target temperature, unit millidegree Celsius
cdcaeceb 201 (range 0 - 127000)
b32570a4 202
81820059 203pwm[1-7]_temp_tolerance
cdcaeceb
GR
204 Target temperature tolerance, unit millidegree Celsius
205
b32570a4 206There are no changes to fan speed. Once the temperature leaves the interval, fan
cdcaeceb
GR
207speed increases (if temperature is higher that desired) or decreases (if
208temperature is lower than desired), using the following limits and time
209intervals.
210
b32570a4
MCC
211pwm[1-7]_start
212 fan pwm start value (range 1 - 255), to start fan
cdcaeceb 213 when the temperature is above defined range.
b32570a4
MCC
214
215pwm[1-7]_floor
216 lowest fan pwm (range 0 - 255) if temperature is below
cdcaeceb
GR
217 the defined range. If set to 0, the fan is expected to
218 stop if the temperature is below the defined range.
b32570a4
MCC
219
220pwm[1-7]_step_up_time
221 milliseconds before fan speed is increased
222
223pwm[1-7]_step_down_time
224 milliseconds before fan speed is decreased
225
226pwm[1-7]_stop_time
227 how many milliseconds must elapse to switch
cdcaeceb
GR
228 corresponding fan off (when the temperature was below
229 defined range).
230
231Speed Cruise mode (3)
232---------------------
233
234This modes tries to keep the fan speed constant.
235
b32570a4
MCC
236fan[1-7]_target
237 Target fan speed
238
81820059 239fan[1-7]_tolerance
cdcaeceb
GR
240 Target speed tolerance
241
242
243Untested; use at your own risk.
244
245Smart Fan IV mode (5)
246---------------------
247
248This mode offers multiple slopes to control the fan speed. The slopes can be
249controlled by setting the pwm and temperature attributes. When the temperature
250rises, the chip will calculate the DC/PWM output based on the current slope.
251There are up to seven data points depending on the chip type. Subsequent data
252points should be set to higher temperatures and higher pwm values to achieve
253higher fan speeds with increasing temperature. The last data point reflects
254critical temperature mode, in which the fans should run at full speed.
255
81820059 256pwm[1-7]_auto_point[1-7]_pwm
cdcaeceb
GR
257 pwm value to be set if temperature reaches matching
258 temperature range.
b32570a4 259
81820059 260pwm[1-7]_auto_point[1-7]_temp
cdcaeceb 261 Temperature over which the matching pwm is enabled.
b32570a4 262
81820059 263pwm[1-7]_temp_tolerance
cdcaeceb 264 Temperature tolerance, unit millidegree Celsius
b32570a4 265
81820059 266pwm[1-7]_crit_temp_tolerance
cdcaeceb
GR
267 Temperature tolerance for critical temperature,
268 unit millidegree Celsius
269
b32570a4
MCC
270pwm[1-7]_step_up_time
271 milliseconds before fan speed is increased
272
273pwm[1-7]_step_down_time
274 milliseconds before fan speed is decreased
cdcaeceb 275
9de2e2e8
GR
276Usage Notes
277-----------
278
279On various ASUS boards with NCT6776F, it appears that CPUTIN is not really
280connected to anything and floats, or that it is connected to some non-standard
281temperature measurement device. As a result, the temperature reported on CPUTIN
282will not reflect a usable value. It often reports unreasonably high
283temperatures, and in some cases the reported temperature declines if the actual
284temperature increases (similar to the raw PECI temperature value - see PECI
e5754c1e 285specification for details). CPUTIN should therefore be ignored on ASUS
23299bba
AK
286boards. The CPU temperature on ASUS boards is reported from PECI 0 or TSI 0.
287
288NCT6796D-S and NCT6799D-R chips are very similar and their chip_id indicates
289they are different versions. This driver treats them the same way.