Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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