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