6 * National Semiconductor LM84
10 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
12 Datasheet: Publicly available at the National Semiconductor website
14 * National Semiconductor LM90
18 Addresses scanned: I2C 0x4c
20 Datasheet: Publicly available at the National Semiconductor website
22 http://www.national.com/pf/LM/LM90.html
24 * National Semiconductor LM89
26 Prefix: 'lm89' (no auto-detection)
28 Addresses scanned: I2C 0x4c and 0x4d
30 Datasheet: Publicly available at the National Semiconductor website
32 http://www.national.com/mpf/LM/LM89.html
34 * National Semiconductor LM99
38 Addresses scanned: I2C 0x4c and 0x4d
40 Datasheet: Publicly available at the National Semiconductor website
42 http://www.national.com/pf/LM/LM99.html
44 * National Semiconductor LM86
48 Addresses scanned: I2C 0x4c
50 Datasheet: Publicly available at the National Semiconductor website
52 http://www.national.com/mpf/LM/LM86.html
54 * Analog Devices ADM1020
58 Addresses scanned: I2C 0x4c - 0x4e
60 Datasheet: Publicly available at the Analog Devices website
62 * Analog Devices ADM1021
66 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
68 Datasheet: Publicly available at the Analog Devices website
70 * Analog Devices ADM1021A/ADM1023
74 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
76 Datasheet: Publicly available at the Analog Devices website
78 * Analog Devices ADM1032
82 Addresses scanned: I2C 0x4c and 0x4d
84 Datasheet: Publicly available at the ON Semiconductor website
86 https://www.onsemi.com/PowerSolutions/product.do?id=ADM1032
88 * Analog Devices ADT7461
92 Addresses scanned: I2C 0x4c and 0x4d
94 Datasheet: Publicly available at the ON Semiconductor website
96 https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461
98 * Analog Devices ADT7461A
102 Addresses scanned: I2C 0x4c and 0x4d
104 Datasheet: Publicly available at the ON Semiconductor website
106 https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461A
108 * Analog Devices ADT7481
112 Addresses scanned: I2C 0x4b and 0x4c
114 Datasheet: Publicly available at the ON Semiconductor website
116 https://www.onsemi.com/PowerSolutions/product.do?id=ADT7481
118 * Analog Devices ADT7482
122 Addresses scanned: I2C 0x4c
124 Datasheet: Publicly available at the ON Semiconductor website
126 https://www.onsemi.com/PowerSolutions/product.do?id=ADT7482
128 * Analog Devices ADT7483A
132 Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e
134 Datasheet: Publicly available at the ON Semiconductor website
136 https://www.onsemi.com/PowerSolutions/product.do?id=ADT7483A
138 * ON Semiconductor NCT1008
142 Addresses scanned: I2C 0x4c and 0x4d
144 Datasheet: Publicly available at the ON Semiconductor website
146 https://www.onsemi.com/PowerSolutions/product.do?id=NCT1008
148 * ON Semiconductor NCT210
152 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
154 Datasheet: Publicly available at the ON Semiconductor website
156 https://www.onsemi.com/PowerSolutions/product.do?id=NCT210
158 * ON Semiconductor NCT214
162 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
164 Datasheet: Publicly available at the ON Semiconductor website
166 https://www.onsemi.com/PowerSolutions/product.do?id=NCT214
168 * ON Semiconductor NCT218
172 Addresses scanned: I2C 0x4c - 0x4d
174 Datasheet: Publicly available at the ON Semiconductor website
176 https://www.onsemi.com/PowerSolutions/product.do?id=NCT218
178 * ON Semiconductor NCT72
182 Addresses scanned: I2C 0x4c - 0x4d
184 Datasheet: Publicly available at the ON Semiconductor website
186 https://www.onsemi.com/PowerSolutions/product.do?id=NCT72
192 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
194 Datasheet: Publicly available at the Maxim website
200 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
202 Datasheet: Publicly available at the Maxim website
208 Addresses scanned: I2C 0x48-0x4f
210 Datasheet: Publicly available at the Maxim website
212 http://datasheets.maxim-ic.com/en/ds/MAX6642.pdf
218 Addresses scanned: I2C 0x4d
220 Datasheet: Publicly available at the Maxim website
222 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
228 Addresses scanned: I2C 0x4e
230 Datasheet: Publicly available at the Maxim website
232 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
238 Addresses scanned: I2C 0x4c
240 Datasheet: Publicly available at the Maxim website
242 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
248 Addresses scanned: I2C 0x4c
250 Datasheet: Publicly available at the Maxim website
252 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
258 Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
262 Datasheet: Publicly available at the Maxim website
264 https://www.maximintegrated.com/en/products/sensors/MAX6654.html
270 Addresses scanned: I2C 0x4c
272 Datasheet: Publicly available at the Maxim website
274 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
280 Addresses scanned: I2C 0x4c
282 Datasheet: Publicly available at the Maxim website
284 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
290 Addresses scanned: I2C 0x4c, 0x4d, 0x4e
292 Datasheet: Publicly available at the Maxim website
294 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
300 Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
304 Datasheet: Publicly available at the Maxim website
306 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370
312 Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
316 Datasheet: Publicly available at the Maxim website
318 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370
324 Addresses scanned: I2C 0x4c
326 Datasheet: Publicly available at the Maxim website
328 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
334 Addresses scanned: I2C 0x18
336 Datasheet: Publicly available at the Maxim website
338 http://www.maxim-ic.com/datasheet/index.mvp/id/4199
344 Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
348 Datasheet: Publicly available at the Maxim website
350 http://www.maxim-ic.com/datasheet/index.mvp/id/4199
352 * Winbond/Nuvoton W83L771W/G
356 Addresses scanned: I2C 0x4c
358 Datasheet: No longer available
360 * Winbond/Nuvoton W83L771AWG/ASG
364 Addresses scanned: I2C 0x4c
366 Datasheet: Not publicly available, can be requested from Nuvoton
368 * Philips/NXP SA56004X
372 Addresses scanned: I2C 0x48 through 0x4F
374 Datasheet: Publicly available at NXP website
376 http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf
382 Addresses scanned: I2C 0x4c, 0x4d
384 Datasheet: Not publicly available from GMT
386 * Texas Instruments TMP451
390 Addresses scanned: I2C 0x4c
392 Datasheet: Publicly available at TI website
394 https://www.ti.com/litv/pdf/sbos686
396 * Texas Instruments TMP461
400 Addresses scanned: I2C 0x48 through 0x4F
402 Datasheet: Publicly available at TI website
404 https://www.ti.com/lit/gpn/tmp461
406 * Philips NE1617, NE1617A
408 Prefix: 'max1617' (probably detected as a max1617)
410 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
412 Datasheets: Publicly available at the Philips website
418 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
420 Datasheets: Publicly available at the Philips website
422 * Genesys Logic GL523SM
426 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
434 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
436 Datasheet: Publicly available at the TI website
442 Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
444 Datasheet: Publicly available at the Onsemi website
446 Author: Jean Delvare <jdelvare@suse.de>
452 The LM90 is a digital temperature sensor. It senses its own temperature as
453 well as the temperature of up to one external diode. It is compatible
454 with many other devices, many of which are supported by this driver.
456 The family of chips supported by this driver is derived from MAX1617.
457 This chip as well as various compatible chips support a local and a remote
458 temperature sensor with 8 bit accuracy. Later chips provide improved accuracy
459 and other additional features such as hysteresis and temperature offset
462 Note that there is no easy way to differentiate between the MAX6657,
463 MAX6658 and MAX6659 variants. The extra features of the MAX6659 are only
464 supported by this driver if the chip is located at address 0x4d or 0x4e,
465 or if the chip type is explicitly selected as max6659.
466 The MAX6680 and MAX6681 only differ in their pinout, therefore they obviously
467 can't (and don't need to) be distinguished.
469 The different chipsets of the family are not strictly identical, although
470 very similar. For reference, here comes a non-exhaustive list of specific
474 * 8 bit sensor resolution
476 ADM1020, ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
477 * 8 bit sensor resolution
478 * Low temperature limits
481 * 11 bit sensor resolution for remote temperature sensor
482 * Low temperature limits
485 * Temperature offset register for remote temperature sensor
486 * 11 bit resolution for remote temperature sensor
487 * Low temperature limits
490 * 11 bit resolution for remote temperature sensor
491 * Temperature offset register for remote temperature sensor
492 * Low and critical temperature limits
493 * Configurable conversion rate
494 * Filter and alert configuration register at 0xBF.
495 * ALERT is triggered by temperatures over critical limits.
499 * Better external channel accuracy
503 * External temperature shifted by 16 degrees down
506 * Consecutive alert register at 0x22.
507 * Conversion averaging.
508 * Up to 64 conversions/s.
509 * ALERT is triggered by open remote sensor.
510 * SMBus PEC support for Write Byte and Receive Byte transactions.
512 ADT7461, ADT7461A, NCT1008:
513 * Extended temperature range (breaks compatibility)
514 * Lower resolution for remote temperature
515 * SMBus PEC support for Write Byte and Receive Byte transactions.
516 * 10 bit temperature resolution
518 ADT7481, ADT7482, ADT7483:
519 * Temperature offset register
521 * 10 bit temperature resolution for external sensors
523 * Selectable address (ADT7483)
526 * No critical limit register
527 * Conversion rate not configurable
528 * Better local resolution (10 bit)
529 * 10 bit external sensor resolution
531 MAX6646, MAX6647, MAX6649:
532 * Better local resolution
533 * Extended range unsigned external temperature
536 * Better local resolution
537 * Unsigned temperature
540 * Better local resolution
542 * Remote sensor type selection
543 * Extended temperature range
544 * Extended resolution only available when conversion rate <= 1 Hz
547 * Better local resolution
548 * Remote sensor type selection
551 * Better local resolution
553 * Second critical temperature limit
554 * Remote sensor type selection
558 * Remote sensor type selection
561 * Better local resolution
562 * Selectable address (max6696)
563 * Second critical temperature limit
567 * The G variant is lead-free, otherwise similar to the W.
568 * Filter and alert configuration register at 0xBF
569 * Moving average (depending on conversion rate)
572 * Successor of the W83L771W/G, same features.
573 * The AWG and ASG variants only differ in package format.
574 * Diode ideality factor configuration (remote sensor) at 0xE3
577 * Better local resolution
579 All temperature values are given in degrees Celsius. Resolution
580 is 1.0 degree for the local temperature, 0.125 degree for the remote
581 temperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have
582 a resolution of 0.125 degree for both temperatures.
584 Each sensor has its own high and low limits, plus a critical limit.
585 Additionally, there is a relative hysteresis value common to both critical
586 values. To make life easier to user-space applications, two absolute values
587 are exported, one for each channel, but these values are of course linked.
588 Only the local hysteresis can be set from user-space, and the same delta
589 applies to the remote hysteresis.
591 The lm90 driver will not update its values more frequently than configured with
592 the update_interval attribute; reading them more often will do no harm, but will
598 This driver has basic support for SMBus alert. When an alert is received,
599 the status register is read and the faulty temperature channel is logged.
601 The Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON
602 Semiconductor chips (NCT1008) do not implement the SMBus alert protocol
603 properly so additional care is needed: the ALERT output is disabled when
604 an alert is received, and is re-enabled only when the alarm is gone.
605 Otherwise the chip would block alerts from other chips in the bus as long
606 as the alarm is active.
611 The ADM1032 is the only chip of the family which supports PEC. It does
612 not support PEC on all transactions though, so some care must be taken.
614 When reading a register value, the PEC byte is computed and sent by the
615 ADM1032 chip. However, in the case of a combined transaction (SMBus Read
616 Byte), the ADM1032 computes the CRC value over only the second half of
617 the message rather than its entirety, because it thinks the first half
618 of the message belongs to a different transaction. As a result, the CRC
619 value differs from what the SMBus master expects, and all reads fail.
621 For this reason, the lm90 driver will enable PEC for the ADM1032 only if
622 the bus supports the SMBus Send Byte and Receive Byte transaction types.
623 These transactions will be used to read register values, instead of
624 SMBus Read Byte, and PEC will work properly.
626 Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC.
627 Instead, it will try to write the PEC value to the register (because the
628 SMBus Send Byte transaction with PEC is similar to a Write Byte transaction
629 without PEC), which is not what we want. Thus, PEC is explicitly disabled
630 on SMBus Send Byte transactions in the lm90 driver.
632 PEC on byte data transactions represents a significant increase in bandwidth
633 usage (+33% for writes, +25% for reads) in normal conditions. With the need
634 to use two SMBus transaction for reads, this overhead jumps to +50%. Worse,
635 two transactions will typically mean twice as much delay waiting for
636 transaction completion, effectively doubling the register cache refresh time.
637 I guess reliability comes at a price, but it's quite expensive this time.
639 So, as not everyone might enjoy the slowdown, PEC is disabled by default and
640 can be enabled through sysfs. Just write 1 to the "pec" file and PEC will be
641 enabled. Write 0 to that file to disable PEC again.