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