6 This driver supersedes the NCT6775F and NCT6776F support in the W83627EHF
11 * Nuvoton NCT6102D/NCT6104D/NCT6106D
15 Addresses scanned: ISA address retrieved from Super I/O registers
17 Datasheet: Available from the Nuvoton web site
19 * Nuvoton NCT5572D/NCT6771F/NCT6772F/NCT6775F/W83677HG-I
23 Addresses scanned: ISA address retrieved from Super I/O registers
25 Datasheet: Available from Nuvoton upon request
27 * Nuvoton NCT5573D/NCT5577D/NCT6776D/NCT6776F
31 Addresses scanned: ISA address retrieved from Super I/O registers
33 Datasheet: Available from Nuvoton upon request
35 * Nuvoton NCT5532D/NCT6779D
39 Addresses scanned: ISA address retrieved from Super I/O registers
41 Datasheet: Available from Nuvoton upon request
47 Addresses scanned: ISA address retrieved from Super I/O registers
49 Datasheet: Available from Nuvoton upon request
55 Addresses scanned: ISA address retrieved from Super I/O registers
57 Datasheet: Available from Nuvoton upon request
63 Addresses scanned: ISA address retrieved from Super I/O registers
65 Datasheet: Available from Nuvoton upon request
71 Addresses scanned: ISA address retrieved from Super I/O registers
73 Datasheet: Available from Nuvoton upon request
79 Addresses scanned: ISA address retrieved from Super I/O registers
81 Datasheet: Available from Nuvoton upon request
83 * Nuvoton NCT6796D-S/NCT6799D-R
87 Addresses scanned: ISA address retrieved from Super I/O registers
89 Datasheet: Available from Nuvoton upon request
93 Guenter Roeck <linux@roeck-us.net>
98 This driver implements support for the Nuvoton NCT6775F, NCT6776F, and NCT6779D
99 and compatible super I/O chips.
101 The chips support up to 25 temperature monitoring sources. Up to 6 of those are
102 direct temperature sensor inputs, the others are special sources such as PECI,
103 PCH, and SMBUS. Depending on the chip type, 2 to 6 of the temperature sources
104 can be monitored and compared against minimum, maximum, and critical
105 temperatures. The driver reports up to 10 of the temperatures to the user.
106 There are 4 to 5 fan rotation speed sensors, 8 to 15 analog voltage sensors,
107 one VID, alarms with beep warnings (control unimplemented), and some automatic
108 fan regulation strategies (plus manual fan control mode).
110 The temperature sensor sources on all chips are configurable. The configured
111 source for each of the temperature sensors is provided in tempX_label.
113 Temperatures are measured in degrees Celsius and measurement resolution is
114 either 1 degC or 0.5 degC, depending on the temperature source and
115 configuration. An alarm is triggered when the temperature gets higher than
116 the high limit; it stays on until the temperature falls below the hysteresis
117 value. Alarms are only supported for temp1 to temp6, depending on the chip type.
119 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
120 triggered if the rotation speed has dropped below a programmable limit. On
121 NCT6775F, fan readings can be divided by a programmable divider (1, 2, 4, 8,
122 16, 32, 64 or 128) to give the readings more range or accuracy; the other chips
123 do not have a fan speed divider. The driver sets the most suitable fan divisor
124 itself; specifically, it increases the divider value each time a fan speed
125 reading returns an invalid value, and it reduces it if the fan speed reading
126 is lower than optimal. Some fans might not be present because they share pins
127 with other functions.
129 Voltage sensors (also known as IN sensors) report their values in millivolts.
130 An alarm is triggered if the voltage has crossed a programmable minimum
133 The driver supports automatic fan control mode known as Thermal Cruise.
134 In this mode, the chip attempts to keep the measured temperature in a
135 predefined temperature range. If the temperature goes out of range, fan
136 is driven slower/faster to reach the predefined range again.
138 The mode works for fan1-fan5.
144 - this file stores PWM duty cycle or DC value (fan speed) in range:
146 0 (lowest speed) to 255 (full)
149 - this file controls mode of fan/temperature control:
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
159 - controls if output is PWM or DC level
164 Common fan control attributes
165 -----------------------------
168 Temperature source. Value is temperature sensor index.
169 For example, select '1' for temp1_input.
171 pwm[1-7]_weight_temp_sel
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.
176 If secondary temperature functionality is enabled, it is controlled with the
177 following attributes.
179 pwm[1-7]_weight_duty_step
182 pwm[1-7]_weight_temp_step
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.
187 pwm[1-7]_weight_temp_step_base
188 Temperature at which secondary temperature control kicks
191 pwm[1-7]_weight_temp_step_tol
192 Temperature step tolerance.
194 Thermal Cruise mode (2)
195 -----------------------
197 If the temperature is in the range defined by:
200 Target temperature, unit millidegree Celsius
203 pwm[1-7]_temp_tolerance
204 Target temperature tolerance, unit millidegree Celsius
206 There are no changes to fan speed. Once the temperature leaves the interval, fan
207 speed increases (if temperature is higher that desired) or decreases (if
208 temperature is lower than desired), using the following limits and time
212 fan pwm start value (range 1 - 255), to start fan
213 when the temperature is above defined range.
216 lowest fan pwm (range 0 - 255) if temperature is below
217 the defined range. If set to 0, the fan is expected to
218 stop if the temperature is below the defined range.
220 pwm[1-7]_step_up_time
221 milliseconds before fan speed is increased
223 pwm[1-7]_step_down_time
224 milliseconds before fan speed is decreased
227 how many milliseconds must elapse to switch
228 corresponding fan off (when the temperature was below
231 Speed Cruise mode (3)
232 ---------------------
234 This modes tries to keep the fan speed constant.
240 Target speed tolerance
243 Untested; use at your own risk.
245 Smart Fan IV mode (5)
246 ---------------------
248 This mode offers multiple slopes to control the fan speed. The slopes can be
249 controlled by setting the pwm and temperature attributes. When the temperature
250 rises, the chip will calculate the DC/PWM output based on the current slope.
251 There are up to seven data points depending on the chip type. Subsequent data
252 points should be set to higher temperatures and higher pwm values to achieve
253 higher fan speeds with increasing temperature. The last data point reflects
254 critical temperature mode, in which the fans should run at full speed.
256 pwm[1-7]_auto_point[1-7]_pwm
257 pwm value to be set if temperature reaches matching
260 pwm[1-7]_auto_point[1-7]_temp
261 Temperature over which the matching pwm is enabled.
263 pwm[1-7]_temp_tolerance
264 Temperature tolerance, unit millidegree Celsius
266 pwm[1-7]_crit_temp_tolerance
267 Temperature tolerance for critical temperature,
268 unit millidegree Celsius
270 pwm[1-7]_step_up_time
271 milliseconds before fan speed is increased
273 pwm[1-7]_step_down_time
274 milliseconds before fan speed is decreased
279 On various ASUS boards with NCT6776F, it appears that CPUTIN is not really
280 connected to anything and floats, or that it is connected to some non-standard
281 temperature measurement device. As a result, the temperature reported on CPUTIN
282 will not reflect a usable value. It often reports unreasonably high
283 temperatures, and in some cases the reported temperature declines if the actual
284 temperature increases (similar to the raw PECI temperature value - see PECI
285 specification for details). CPUTIN should therefore be ignored on ASUS
286 boards. The CPU temperature on ASUS boards is reported from PECI 0 or TSI 0.
288 NCT6796D-S and NCT6799D-R chips are very similar and their chip_id indicates
289 they are different versions. This driver treats them the same way.