Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.
1 Kernel driver asc7621 2 ================== 3 4 Supported chips: 5 Andigilog aSC7621 and aSC7621a 6 Prefix: 'asc7621' 7 Addresses scanned: I2C 0x2c, 0x2d, 0x2e 8 Datasheet: http://www.fairview5.com/linux/asc7621/asc7621.pdf 9 10 Author: 11 George Joseph 12 13 Description provided by Dave Pivin @ Andigilog: 14 15 Andigilog has both the PECI and pre-PECI versions of the Heceta-6, as 16 Intel calls them. Heceta-6e has high frequency PWM and Heceta-6p has 17 added PECI and a 4th thermal zone. The Andigilog aSC7611 is the 18 Heceta-6e part and aSC7621 is the Heceta-6p part. They are both in 19 volume production, shipping to Intel and their subs. 20 21 We have enhanced both parts relative to the governing Intel 22 specification. First enhancement is temperature reading resolution. We 23 have used registers below 20h for vendor-specific functions in addition 24 to those in the Intel-specified vendor range. 25 26 Our conversion process produces a result that is reported as two bytes. 27 The fan speed control uses this finer value to produce a "step-less" fan 28 PWM output. These two bytes are "read-locked" to guarantee that once a 29 high or low byte is read, the other byte is locked-in until after the 30 next read of any register. So to get an atomic reading, read high or low 31 byte, then the very next read should be the opposite byte. Our data 32 sheet says 10-bits of resolution, although you may find the lower bits 33 are active, they are not necessarily reliable or useful externally. We 34 chose not to mask them. 35 36 We employ significant filtering that is user tunable as described in the 37 data sheet. Our temperature reports and fan PWM outputs are very smooth 38 when compared to the competition, in addition to the higher resolution 39 temperature reports. The smoother PWM output does not require user 40 intervention. 41 42 We offer GPIO features on the former VID pins. These are open-drain 43 outputs or inputs and may be used as general purpose I/O or as alarm 44 outputs that are based on temperature limits. These are in 19h and 1Ah. 45 46 We offer flexible mapping of temperature readings to thermal zones. Any 47 temperature may be mapped to any zone, which has a default assignment 48 that follows Intel's specs. 49 50 Since there is a fan to zone assignment that allows for the "hotter" of 51 a set of zones to control the PWM of an individual fan, but there is no 52 indication to the user, we have added an indicator that shows which zone 53 is currently controlling the PWM for a given fan. This is in register 54 00h. 55 56 Both remote diode temperature readings may be given an offset value such 57 that the reported reading as well as the temperature used to determine 58 PWM may be offset for system calibration purposes. 59 60 PECI Extended configuration allows for having more than two domains per 61 PECI address and also provides an enabling function for each PECI 62 address. One could use our flexible zone assignment to have a zone 63 assigned to up to 4 PECI addresses. This is not possible in the default 64 Intel configuration. This would be useful in multi-CPU systems with 65 individual fans on each that would benefit from individual fan control. 66 This is in register 0Eh. 67 68 The tachometer measurement system is flexible and able to adapt to many 69 fan types. We can also support pulse-stretched PWM so that 3-wire fans 70 may be used. These characteristics are in registers 04h to 07h. 71 72 Finally, we have added a tach disable function that turns off the tach 73 measurement system for individual tachs in order to save power. That is 74 in register 75h. 75 76 -- 77 aSC7621 Product Description 78 79 The aSC7621 has a two wire digital interface compatible with SMBus 2.0. 80 Using a 10-bit ADC, the aSC7621 measures the temperature of two remote diode 81 connected transistors as well as its own die. Support for Platform 82 Environmental Control Interface (PECI) is included. 83 84 Using temperature information from these four zones, an automatic fan speed 85 control algorithm is employed to minimize acoustic impact while achieving 86 recommended CPU temperature under varying operational loads. 87 88 To set fan speed, the aSC7621 has three independent pulse width modulation 89 (PWM) outputs that are controlled by one, or a combination of three, 90 temperature zones. Both high- and low-frequency PWM ranges are supported. 91 92 The aSC7621 also includes a digital filter that can be invoked to smooth 93 temperature readings for better control of fan speed and minimum acoustic 94 impact. 95 96 The aSC7621 has tachometer inputs to measure fan speed on up to four fans. 97 Limit and status registers for all measured values are included to alert 98 the system host that any measurements are outside of programmed limits 99 via status registers. 100 101 System voltages of VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard power are 102 monitored efficiently with internal scaling resistors. 103 104 Features 105 - Supports PECI interface and monitors internal and remote thermal diodes 106 - 2-wire, SMBus 2.0 compliant, serial interface 107 - 10-bit ADC 108 - Monitors VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard/processor supplies 109 - Programmable autonomous fan control based on temperature readings 110 - Noise filtering of temperature reading for fan speed control 111 - 0.25C digital temperature sensor resolution 112 - 3 PWM fan speed control outputs for 2-, 3- or 4-wire fans and up to 4 fan 113 tachometer inputs 114 - Enhanced measured temperature to Temperature Zone assignment. 115 - Provides high and low PWM frequency ranges 116 - 3 GPIO pins for custom use 117 - 24-Lead QSOP package 118 119 Configuration Notes 120 =================== 121 122 Except where noted below, the sysfs entries created by this driver follow 123 the standards defined in "sysfs-interface". 124 125 temp1_source 126 0 (default) peci_legacy = 0, Remote 1 Temperature 127 peci_legacy = 1, PECI Processor Temperature 0 128 1 Remote 1 Temperature 129 2 Remote 2 Temperature 130 3 Internal Temperature 131 4 PECI Processor Temperature 0 132 5 PECI Processor Temperature 1 133 6 PECI Processor Temperature 2 134 7 PECI Processor Temperature 3 135 136 temp2_source 137 0 (default) Internal Temperature 138 1 Remote 1 Temperature 139 2 Remote 2 Temperature 140 3 Internal Temperature 141 4 PECI Processor Temperature 0 142 5 PECI Processor Temperature 1 143 6 PECI Processor Temperature 2 144 7 PECI Processor Temperature 3 145 146 temp3_source 147 0 (default) Remote 2 Temperature 148 1 Remote 1 Temperature 149 2 Remote 2 Temperature 150 3 Internal Temperature 151 4 PECI Processor Temperature 0 152 5 PECI Processor Temperature 1 153 6 PECI Processor Temperature 2 154 7 PECI Processor Temperature 3 155 156 temp4_source 157 0 (default) peci_legacy = 0, PECI Processor Temperature 0 158 peci_legacy = 1, Remote 1 Temperature 159 1 Remote 1 Temperature 160 2 Remote 2 Temperature 161 3 Internal Temperature 162 4 PECI Processor Temperature 0 163 5 PECI Processor Temperature 1 164 6 PECI Processor Temperature 2 165 7 PECI Processor Temperature 3 166 167 temp[1-4]_smoothing_enable 168 temp[1-4]_smoothing_time 169 Smooths spikes in temp readings caused by noise. 170 Valid values in milliseconds are: 171 35000 172 17600 173 11800 174 7000 175 4400 176 3000 177 1600 178 800 179 180 temp[1-4]_crit 181 When the corresponding zone temperature reaches this value, 182 ALL pwm outputs will got to 100%. 183 184 temp[5-8]_input 185 temp[5-8]_enable 186 The aSC7621 can also read temperatures provided by the processor 187 via the PECI bus. Usually these are "core" temps and are relative 188 to the point where the automatic thermal control circuit starts 189 throttling. This means that these are usually negative numbers. 190 191 pwm[1-3]_enable 192 0 Fan off. 193 1 Fan on manual control. 194 2 Fan on automatic control and will run at the minimum pwm 195 if the temperature for the zone is below the minimum. 196 3 Fan on automatic control but will be off if the temperature 197 for the zone is below the minimum. 198 4-254 Ignored. 199 255 Fan on full. 200 201 pwm[1-3]_auto_channels 202 Bitmap as described in sysctl-interface with the following 203 exceptions... 204 Only the following combination of zones (and their corresponding masks) 205 are valid: 206 1 207 2 208 3 209 2,3 210 1,2,3 211 4 212 1,2,3,4 213 214 Special values: 215 0 Disabled. 216 16 Fan on manual control. 217 31 Fan on full. 218 219 220 pwm[1-3]_invert 221 When set, inverts the meaning of pwm[1-3]. 222 i.e. when pwm = 0, the fan will be on full and 223 when pwm = 255 the fan will be off. 224 225 pwm[1-3]_freq 226 PWM frequency in Hz 227 Valid values in Hz are: 228 229 10 230 15 231 23 232 30 (default) 233 38 234 47 235 62 236 94 237 23000 238 24000 239 25000 240 26000 241 27000 242 28000 243 29000 244 30000 245 246 Setting any other value will be ignored. 247 248 peci_enable 249 Enables or disables PECI 250 251 peci_avg 252 Input filter average time. 253 254 0 0 Sec. (no Smoothing) (default) 255 1 0.25 Sec. 256 2 0.5 Sec. 257 3 1.0 Sec. 258 4 2.0 Sec. 259 5 4.0 Sec. 260 6 8.0 Sec. 261 7 0.0 Sec. 262 263 peci_legacy 264 265 0 Standard Mode (default) 266 Remote Diode 1 reading is associated with 267 Temperature Zone 1, PECI is associated with 268 Zone 4 269 270 1 Legacy Mode 271 PECI is associated with Temperature Zone 1, 272 Remote Diode 1 is associated with Zone 4 273 274 peci_diode 275 Diode filter 276 277 0 0.25 Sec. 278 1 1.1 Sec. 279 2 2.4 Sec. (default) 280 3 3.4 Sec. 281 4 5.0 Sec. 282 5 6.8 Sec. 283 6 10.2 Sec. 284 7 16.4 Sec. 285 286 peci_4domain 287 Four domain enable 288 289 0 1 or 2 Domains for enabled processors (default) 290 1 3 or 4 Domains for enabled processors 291 292 peci_domain 293 Domain 294 295 0 Processor contains a single domain (0) (default) 296 1 Processor contains two domains (0,1)