Commit | Line | Data |
---|---|---|
7f15b664 M |
1 | Kernel driver lm90 |
2 | ================== | |
3 | ||
4 | Supported chips: | |
b04f2f7d | 5 | |
c09472fc GR |
6 | * National Semiconductor LM84 |
7 | ||
8 | Prefix: 'lm84' | |
9 | ||
10 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
11 | ||
12 | Datasheet: Publicly available at the National Semiconductor website | |
13 | ||
7f15b664 | 14 | * National Semiconductor LM90 |
b04f2f7d | 15 | |
7f15b664 | 16 | Prefix: 'lm90' |
b04f2f7d | 17 | |
7f15b664 | 18 | Addresses scanned: I2C 0x4c |
b04f2f7d | 19 | |
7f15b664 | 20 | Datasheet: Publicly available at the National Semiconductor website |
b04f2f7d MCC |
21 | |
22 | http://www.national.com/pf/LM/LM90.html | |
23 | ||
7f15b664 | 24 | * National Semiconductor LM89 |
b04f2f7d | 25 | |
97ae60bb | 26 | Prefix: 'lm89' (no auto-detection) |
b04f2f7d | 27 | |
7f15b664 | 28 | Addresses scanned: I2C 0x4c and 0x4d |
b04f2f7d | 29 | |
7f15b664 | 30 | Datasheet: Publicly available at the National Semiconductor website |
b04f2f7d MCC |
31 | |
32 | http://www.national.com/mpf/LM/LM89.html | |
33 | ||
7f15b664 | 34 | * National Semiconductor LM99 |
b04f2f7d | 35 | |
7f15b664 | 36 | Prefix: 'lm99' |
b04f2f7d | 37 | |
7f15b664 | 38 | Addresses scanned: I2C 0x4c and 0x4d |
b04f2f7d | 39 | |
7f15b664 | 40 | Datasheet: Publicly available at the National Semiconductor website |
b04f2f7d MCC |
41 | |
42 | http://www.national.com/pf/LM/LM99.html | |
43 | ||
7f15b664 | 44 | * National Semiconductor LM86 |
b04f2f7d | 45 | |
7f15b664 | 46 | Prefix: 'lm86' |
b04f2f7d | 47 | |
7f15b664 | 48 | Addresses scanned: I2C 0x4c |
b04f2f7d | 49 | |
7f15b664 | 50 | Datasheet: Publicly available at the National Semiconductor website |
b04f2f7d MCC |
51 | |
52 | http://www.national.com/mpf/LM/LM86.html | |
53 | ||
0c6bffd4 GR |
54 | * Analog Devices ADM1021 |
55 | ||
56 | Prefix: 'adm1021' | |
57 | ||
58 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
59 | ||
60 | Datasheet: Publicly available at the Analog Devices website | |
61 | ||
62 | * Analog Devices ADM1021A/ADM1023 | |
63 | ||
64 | Prefix: 'adm1023' | |
65 | ||
66 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
67 | ||
68 | Datasheet: Publicly available at the Analog Devices website | |
69 | ||
7f15b664 | 70 | * Analog Devices ADM1032 |
b04f2f7d | 71 | |
7f15b664 | 72 | Prefix: 'adm1032' |
b04f2f7d | 73 | |
90209b42 | 74 | Addresses scanned: I2C 0x4c and 0x4d |
b04f2f7d | 75 | |
a874a10c | 76 | Datasheet: Publicly available at the ON Semiconductor website |
b04f2f7d | 77 | |
6c7b66be | 78 | https://www.onsemi.com/PowerSolutions/product.do?id=ADM1032 |
b04f2f7d | 79 | |
7f15b664 | 80 | * Analog Devices ADT7461 |
b04f2f7d | 81 | |
7f15b664 | 82 | Prefix: 'adt7461' |
b04f2f7d | 83 | |
90209b42 | 84 | Addresses scanned: I2C 0x4c and 0x4d |
b04f2f7d | 85 | |
a874a10c | 86 | Datasheet: Publicly available at the ON Semiconductor website |
b04f2f7d | 87 | |
6c7b66be | 88 | https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461 |
b04f2f7d | 89 | |
5a4e5e6a | 90 | * Analog Devices ADT7461A |
b04f2f7d | 91 | |
5a4e5e6a | 92 | Prefix: 'adt7461a' |
b04f2f7d | 93 | |
5a4e5e6a | 94 | Addresses scanned: I2C 0x4c and 0x4d |
b04f2f7d | 95 | |
5a4e5e6a | 96 | Datasheet: Publicly available at the ON Semiconductor website |
b04f2f7d | 97 | |
6c7b66be | 98 | https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461A |
b04f2f7d | 99 | |
a9f3d3a8 GR |
100 | * Analog Devices ADT7481 |
101 | ||
102 | Prefix: 'adt7481' | |
103 | ||
104 | Addresses scanned: I2C 0x4b and 0x4c | |
105 | ||
106 | Datasheet: Publicly available at the ON Semiconductor website | |
107 | ||
108 | https://www.onsemi.com/PowerSolutions/product.do?id=ADT7481 | |
109 | ||
110 | * Analog Devices ADT7482 | |
111 | ||
112 | Prefix: 'adt7482' | |
113 | ||
114 | Addresses scanned: I2C 0x4c | |
115 | ||
116 | Datasheet: Publicly available at the ON Semiconductor website | |
117 | ||
118 | https://www.onsemi.com/PowerSolutions/product.do?id=ADT7482 | |
119 | ||
120 | * Analog Devices ADT7483A | |
121 | ||
122 | Prefix: 'adt7483a' | |
123 | ||
124 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e | |
125 | ||
126 | Datasheet: Publicly available at the ON Semiconductor website | |
127 | ||
128 | https://www.onsemi.com/PowerSolutions/product.do?id=ADT7483A | |
129 | ||
5a4e5e6a | 130 | * ON Semiconductor NCT1008 |
b04f2f7d | 131 | |
5a4e5e6a | 132 | Prefix: 'nct1008' |
b04f2f7d | 133 | |
5a4e5e6a | 134 | Addresses scanned: I2C 0x4c and 0x4d |
b04f2f7d | 135 | |
5a4e5e6a | 136 | Datasheet: Publicly available at the ON Semiconductor website |
b04f2f7d | 137 | |
6c7b66be | 138 | https://www.onsemi.com/PowerSolutions/product.do?id=NCT1008 |
b04f2f7d | 139 | |
c09472fc GR |
140 | * Maxim MAX1617 |
141 | ||
142 | Prefix: 'max1617' | |
143 | ||
144 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
145 | ||
146 | Datasheet: Publicly available at the Maxim website | |
147 | ||
148 | * Maxim MAX1617A | |
149 | ||
150 | Prefix: 'max1617a' | |
151 | ||
152 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
153 | ||
154 | Datasheet: Publicly available at the Maxim website | |
155 | ||
3c1ecccb GR |
156 | * Maxim MAX6642 |
157 | ||
158 | Prefix: 'max6642' | |
159 | ||
160 | Addresses scanned: I2C 0x48-0x4f | |
161 | ||
162 | Datasheet: Publicly available at the Maxim website | |
163 | ||
164 | http://datasheets.maxim-ic.com/en/ds/MAX6642.pdf | |
165 | ||
271dabf5 | 166 | * Maxim MAX6646 |
b04f2f7d | 167 | |
271dabf5 | 168 | Prefix: 'max6646' |
b04f2f7d | 169 | |
271dabf5 | 170 | Addresses scanned: I2C 0x4d |
b04f2f7d | 171 | |
271dabf5 | 172 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
173 | |
174 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497 | |
175 | ||
271dabf5 | 176 | * Maxim MAX6647 |
b04f2f7d | 177 | |
271dabf5 | 178 | Prefix: 'max6646' |
b04f2f7d | 179 | |
271dabf5 | 180 | Addresses scanned: I2C 0x4e |
b04f2f7d | 181 | |
271dabf5 | 182 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
183 | |
184 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497 | |
185 | ||
1a51e068 | 186 | * Maxim MAX6648 |
b04f2f7d | 187 | |
904a6fe6 | 188 | Prefix: 'max6648' |
b04f2f7d | 189 | |
1a51e068 | 190 | Addresses scanned: I2C 0x4c |
b04f2f7d | 191 | |
1a51e068 | 192 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
193 | |
194 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500 | |
195 | ||
271dabf5 | 196 | * Maxim MAX6649 |
b04f2f7d | 197 | |
271dabf5 | 198 | Prefix: 'max6646' |
b04f2f7d | 199 | |
271dabf5 | 200 | Addresses scanned: I2C 0x4c |
b04f2f7d | 201 | |
271dabf5 | 202 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
203 | |
204 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497 | |
205 | ||
229d495d JL |
206 | * Maxim MAX6654 |
207 | ||
208 | Prefix: 'max6654' | |
209 | ||
210 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, | |
211 | ||
212 | 0x4c, 0x4d and 0x4e | |
213 | ||
214 | Datasheet: Publicly available at the Maxim website | |
215 | ||
216 | https://www.maximintegrated.com/en/products/sensors/MAX6654.html | |
217 | ||
7f15b664 | 218 | * Maxim MAX6657 |
b04f2f7d | 219 | |
7f15b664 | 220 | Prefix: 'max6657' |
b04f2f7d | 221 | |
7f15b664 | 222 | Addresses scanned: I2C 0x4c |
b04f2f7d | 223 | |
7f15b664 | 224 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
225 | |
226 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 | |
227 | ||
7f15b664 | 228 | * Maxim MAX6658 |
b04f2f7d | 229 | |
7f15b664 | 230 | Prefix: 'max6657' |
b04f2f7d | 231 | |
7f15b664 | 232 | Addresses scanned: I2C 0x4c |
b04f2f7d | 233 | |
7f15b664 | 234 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
235 | |
236 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 | |
237 | ||
7f15b664 | 238 | * Maxim MAX6659 |
b04f2f7d | 239 | |
13c84951 | 240 | Prefix: 'max6659' |
b04f2f7d | 241 | |
13c84951 | 242 | Addresses scanned: I2C 0x4c, 0x4d, 0x4e |
b04f2f7d | 243 | |
7f15b664 | 244 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
245 | |
246 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 | |
247 | ||
32c82a93 | 248 | * Maxim MAX6680 |
b04f2f7d | 249 | |
32c82a93 | 250 | Prefix: 'max6680' |
b04f2f7d | 251 | |
32c82a93 | 252 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, |
b04f2f7d MCC |
253 | |
254 | 0x4c, 0x4d and 0x4e | |
255 | ||
32c82a93 | 256 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
257 | |
258 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370 | |
259 | ||
32c82a93 | 260 | * Maxim MAX6681 |
b04f2f7d | 261 | |
32c82a93 | 262 | Prefix: 'max6680' |
b04f2f7d | 263 | |
32c82a93 | 264 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, |
b04f2f7d MCC |
265 | |
266 | 0x4c, 0x4d and 0x4e | |
267 | ||
32c82a93 | 268 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
269 | |
270 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370 | |
271 | ||
1a51e068 | 272 | * Maxim MAX6692 |
b04f2f7d | 273 | |
904a6fe6 | 274 | Prefix: 'max6648' |
b04f2f7d | 275 | |
1a51e068 | 276 | Addresses scanned: I2C 0x4c |
b04f2f7d | 277 | |
1a51e068 | 278 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
279 | |
280 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500 | |
281 | ||
06e1c0a2 | 282 | * Maxim MAX6695 |
b04f2f7d | 283 | |
06e1c0a2 | 284 | Prefix: 'max6695' |
b04f2f7d | 285 | |
06e1c0a2 | 286 | Addresses scanned: I2C 0x18 |
b04f2f7d | 287 | |
06e1c0a2 | 288 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
289 | |
290 | http://www.maxim-ic.com/datasheet/index.mvp/id/4199 | |
291 | ||
06e1c0a2 | 292 | * Maxim MAX6696 |
b04f2f7d | 293 | |
06e1c0a2 | 294 | Prefix: 'max6695' |
b04f2f7d | 295 | |
06e1c0a2 | 296 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, |
b04f2f7d MCC |
297 | |
298 | 0x4c, 0x4d and 0x4e | |
299 | ||
06e1c0a2 | 300 | Datasheet: Publicly available at the Maxim website |
b04f2f7d MCC |
301 | |
302 | http://www.maxim-ic.com/datasheet/index.mvp/id/4199 | |
303 | ||
c4f99a2b | 304 | * Winbond/Nuvoton W83L771W/G |
b04f2f7d | 305 | |
c4f99a2b | 306 | Prefix: 'w83l771' |
b04f2f7d | 307 | |
c4f99a2b | 308 | Addresses scanned: I2C 0x4c |
b04f2f7d | 309 | |
c4f99a2b | 310 | Datasheet: No longer available |
b04f2f7d | 311 | |
6771ea1f | 312 | * Winbond/Nuvoton W83L771AWG/ASG |
b04f2f7d | 313 | |
6771ea1f | 314 | Prefix: 'w83l771' |
b04f2f7d | 315 | |
6771ea1f | 316 | Addresses scanned: I2C 0x4c |
b04f2f7d | 317 | |
6771ea1f | 318 | Datasheet: Not publicly available, can be requested from Nuvoton |
b04f2f7d | 319 | |
2ef01793 | 320 | * Philips/NXP SA56004X |
b04f2f7d | 321 | |
2ef01793 | 322 | Prefix: 'sa56004' |
b04f2f7d | 323 | |
2ef01793 | 324 | Addresses scanned: I2C 0x48 through 0x4F |
b04f2f7d | 325 | |
2ef01793 | 326 | Datasheet: Publicly available at NXP website |
b04f2f7d MCC |
327 | |
328 | http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf | |
329 | ||
ae544f64 | 330 | * GMT G781 |
b04f2f7d | 331 | |
ae544f64 | 332 | Prefix: 'g781' |
b04f2f7d | 333 | |
ae544f64 | 334 | Addresses scanned: I2C 0x4c, 0x4d |
b04f2f7d | 335 | |
ae544f64 | 336 | Datasheet: Not publicly available from GMT |
b04f2f7d | 337 | |
1daaceb2 | 338 | * Texas Instruments TMP451 |
b04f2f7d | 339 | |
1daaceb2 | 340 | Prefix: 'tmp451' |
b04f2f7d | 341 | |
1daaceb2 | 342 | Addresses scanned: I2C 0x4c |
b04f2f7d | 343 | |
1daaceb2 | 344 | Datasheet: Publicly available at TI website |
1daaceb2 | 345 | |
6c7b66be | 346 | https://www.ti.com/litv/pdf/sbos686 |
7f15b664 | 347 | |
f8344f76 GR |
348 | * Texas Instruments TMP461 |
349 | ||
350 | Prefix: 'tmp461' | |
351 | ||
352 | Addresses scanned: I2C 0x48 through 0x4F | |
353 | ||
354 | Datasheet: Publicly available at TI website | |
355 | ||
356 | https://www.ti.com/lit/gpn/tmp461 | |
357 | ||
37d1dc8d GR |
358 | * Philips NE1617, NE1617A |
359 | ||
360 | Prefix: 'max1617' (probably detected as a max1617) | |
361 | ||
362 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
363 | ||
364 | Datasheets: Publicly available at the Philips website | |
365 | ||
366 | * Genesys Logic GL523SM | |
367 | ||
368 | Prefix: 'gl523sm' | |
369 | ||
370 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
371 | ||
372 | Datasheet: | |
373 | ||
374 | * TI THMC10 | |
375 | ||
376 | Prefix: 'thmc10' | |
377 | ||
378 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
379 | ||
380 | Datasheet: Publicly available at the TI website | |
381 | ||
382 | * Onsemi MC1066 | |
383 | ||
384 | Prefix: 'mc1066' | |
385 | ||
386 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | |
387 | ||
388 | Datasheet: Publicly available at the Onsemi website | |
389 | ||
7c81c60f | 390 | Author: Jean Delvare <jdelvare@suse.de> |
7f15b664 M |
391 | |
392 | ||
393 | Description | |
394 | ----------- | |
395 | ||
396 | The LM90 is a digital temperature sensor. It senses its own temperature as | |
397 | well as the temperature of up to one external diode. It is compatible | |
23b2d477 | 398 | with many other devices, many of which are supported by this driver. |
32c82a93 | 399 | |
c09472fc GR |
400 | The family of chips supported by this driver is derived from MAX1617. |
401 | This chip as well as various compatible chips support a local and a remote | |
402 | temperature sensor with 8 bit accuracy. Later chips provide improved accuracy | |
403 | and other additional features such as hysteresis and temperature offset | |
404 | registers. | |
405 | ||
32c82a93 | 406 | Note that there is no easy way to differentiate between the MAX6657, |
6948708d GR |
407 | MAX6658 and MAX6659 variants. The extra features of the MAX6659 are only |
408 | supported by this driver if the chip is located at address 0x4d or 0x4e, | |
409 | or if the chip type is explicitly selected as max6659. | |
410 | The MAX6680 and MAX6681 only differ in their pinout, therefore they obviously | |
411 | can't (and don't need to) be distinguished. | |
7f15b664 | 412 | |
7f15b664 | 413 | The different chipsets of the family are not strictly identical, although |
f65e1708 JD |
414 | very similar. For reference, here comes a non-exhaustive list of specific |
415 | features: | |
7f15b664 | 416 | |
c09472fc GR |
417 | LM84: |
418 | * 8 bit sensor resolution | |
419 | ||
37d1dc8d | 420 | ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10: |
c09472fc GR |
421 | * 8 bit sensor resolution |
422 | * Low temperature limits | |
423 | ||
0c6bffd4 GR |
424 | ADM1021A, ADM1023: |
425 | * Temperature offset register for remote temperature sensor | |
426 | * 11 bit resolution for remote temperature sensor | |
427 | * Low temperature limits | |
428 | ||
7f15b664 | 429 | LM90: |
c09472fc GR |
430 | * 11 bit resolution for remote temperature sensor |
431 | * Temperature offset register for remote temperature sensor | |
432 | * Low and critical temperature limits | |
433 | * Configurable conversion rate | |
7f15b664 M |
434 | * Filter and alert configuration register at 0xBF. |
435 | * ALERT is triggered by temperatures over critical limits. | |
436 | ||
437 | LM86 and LM89: | |
438 | * Same as LM90 | |
439 | * Better external channel accuracy | |
440 | ||
441 | LM99: | |
442 | * Same as LM89 | |
443 | * External temperature shifted by 16 degrees down | |
444 | ||
445 | ADM1032: | |
446 | * Consecutive alert register at 0x22. | |
447 | * Conversion averaging. | |
448 | * Up to 64 conversions/s. | |
449 | * ALERT is triggered by open remote sensor. | |
c3df5806 | 450 | * SMBus PEC support for Write Byte and Receive Byte transactions. |
7f15b664 | 451 | |
5a4e5e6a | 452 | ADT7461, ADT7461A, NCT1008: |
7f15b664 M |
453 | * Extended temperature range (breaks compatibility) |
454 | * Lower resolution for remote temperature | |
425f5b5d | 455 | * SMBus PEC support for Write Byte and Receive Byte transactions. |
a9f3d3a8 GR |
456 | * 10 bit temperature resolution |
457 | ||
458 | ADT7481, ADT7482, ADT7483: | |
459 | * Temperature offset register | |
460 | * SMBus PEC support | |
461 | * 10 bit temperature resolution for external sensors | |
462 | * Two remote sensors | |
463 | * Selectable address (ADT7483) | |
7f15b664 | 464 | |
3c1ecccb GR |
465 | MAX6642: |
466 | * No critical limit register | |
467 | * Conversion rate not configurable | |
468 | * Better local resolution (10 bit) | |
469 | * 10 bit external sensor resolution | |
470 | ||
904a6fe6 GR |
471 | MAX6646, MAX6647, MAX6649: |
472 | * Better local resolution | |
473 | * Extended range unsigned external temperature | |
474 | ||
475 | MAX6648, MAX6692: | |
476 | * Better local resolution | |
477 | * Unsigned temperature | |
478 | ||
399a8a00 | 479 | MAX6654, MAX6690: |
229d495d JL |
480 | * Better local resolution |
481 | * Selectable address | |
482 | * Remote sensor type selection | |
483 | * Extended temperature range | |
484 | * Extended resolution only available when conversion rate <= 1 Hz | |
485 | ||
7f15b664 | 486 | MAX6657 and MAX6658: |
f65e1708 | 487 | * Better local resolution |
7f15b664 M |
488 | * Remote sensor type selection |
489 | ||
32c82a93 | 490 | MAX6659: |
f65e1708 | 491 | * Better local resolution |
7f15b664 M |
492 | * Selectable address |
493 | * Second critical temperature limit | |
494 | * Remote sensor type selection | |
495 | ||
32c82a93 RB |
496 | MAX6680 and MAX6681: |
497 | * Selectable address | |
498 | * Remote sensor type selection | |
499 | ||
06e1c0a2 GR |
500 | MAX6695 and MAX6696: |
501 | * Better local resolution | |
502 | * Selectable address (max6696) | |
503 | * Second critical temperature limit | |
504 | * Two remote sensors | |
505 | ||
c4f99a2b JD |
506 | W83L771W/G |
507 | * The G variant is lead-free, otherwise similar to the W. | |
508 | * Filter and alert configuration register at 0xBF | |
509 | * Moving average (depending on conversion rate) | |
510 | ||
6771ea1f | 511 | W83L771AWG/ASG |
c4f99a2b | 512 | * Successor of the W83L771W/G, same features. |
6771ea1f | 513 | * The AWG and ASG variants only differ in package format. |
6771ea1f | 514 | * Diode ideality factor configuration (remote sensor) at 0xE3 |
6771ea1f | 515 | |
2ef01793 SD |
516 | SA56004X: |
517 | * Better local resolution | |
518 | ||
7f15b664 M |
519 | All temperature values are given in degrees Celsius. Resolution |
520 | is 1.0 degree for the local temperature, 0.125 degree for the remote | |
229d495d JL |
521 | temperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have |
522 | a resolution of 0.125 degree for both temperatures. | |
7f15b664 M |
523 | |
524 | Each sensor has its own high and low limits, plus a critical limit. | |
525 | Additionally, there is a relative hysteresis value common to both critical | |
526 | values. To make life easier to user-space applications, two absolute values | |
527 | are exported, one for each channel, but these values are of course linked. | |
528 | Only the local hysteresis can be set from user-space, and the same delta | |
529 | applies to the remote hysteresis. | |
530 | ||
177e7592 GR |
531 | The lm90 driver will not update its values more frequently than configured with |
532 | the update_interval attribute; reading them more often will do no harm, but will | |
533 | return 'old' values. | |
7f15b664 | 534 | |
53de3342 JD |
535 | SMBus Alert Support |
536 | ------------------- | |
537 | ||
538 | This driver has basic support for SMBus alert. When an alert is received, | |
539 | the status register is read and the faulty temperature channel is logged. | |
540 | ||
5a4e5e6a GR |
541 | The Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON |
542 | Semiconductor chips (NCT1008) do not implement the SMBus alert protocol | |
543 | properly so additional care is needed: the ALERT output is disabled when | |
544 | an alert is received, and is re-enabled only when the alarm is gone. | |
545 | Otherwise the chip would block alerts from other chips in the bus as long | |
546 | as the alarm is active. | |
53de3342 | 547 | |
c3df5806 JD |
548 | PEC Support |
549 | ----------- | |
550 | ||
551 | The ADM1032 is the only chip of the family which supports PEC. It does | |
552 | not support PEC on all transactions though, so some care must be taken. | |
553 | ||
554 | When reading a register value, the PEC byte is computed and sent by the | |
555 | ADM1032 chip. However, in the case of a combined transaction (SMBus Read | |
556 | Byte), the ADM1032 computes the CRC value over only the second half of | |
557 | the message rather than its entirety, because it thinks the first half | |
558 | of the message belongs to a different transaction. As a result, the CRC | |
559 | value differs from what the SMBus master expects, and all reads fail. | |
560 | ||
561 | For this reason, the lm90 driver will enable PEC for the ADM1032 only if | |
562 | the bus supports the SMBus Send Byte and Receive Byte transaction types. | |
563 | These transactions will be used to read register values, instead of | |
564 | SMBus Read Byte, and PEC will work properly. | |
565 | ||
566 | Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC. | |
567 | Instead, it will try to write the PEC value to the register (because the | |
568 | SMBus Send Byte transaction with PEC is similar to a Write Byte transaction | |
0966415d | 569 | without PEC), which is not what we want. Thus, PEC is explicitly disabled |
c3df5806 JD |
570 | on SMBus Send Byte transactions in the lm90 driver. |
571 | ||
572 | PEC on byte data transactions represents a significant increase in bandwidth | |
573 | usage (+33% for writes, +25% for reads) in normal conditions. With the need | |
574 | to use two SMBus transaction for reads, this overhead jumps to +50%. Worse, | |
575 | two transactions will typically mean twice as much delay waiting for | |
576 | transaction completion, effectively doubling the register cache refresh time. | |
577 | I guess reliability comes at a price, but it's quite expensive this time. | |
578 | ||
3b0982ff GR |
579 | So, as not everyone might enjoy the slowdown, PEC is disabled by default and |
580 | can be enabled through sysfs. Just write 1 to the "pec" file and PEC will be | |
581 | enabled. Write 0 to that file to disable PEC again. |