linux/Documentation/hwmon/nct6775.rst
<<
>>
Prefs
   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