hwmon: (lm90) Combine lm86 and lm90 configuration
[linux-block.git] / Documentation / hwmon / lm90.rst
CommitLineData
7f15b664
M
1Kernel driver lm90
2==================
3
4Supported 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 390Author: Jean Delvare <jdelvare@suse.de>
7f15b664
M
391
392
393Description
394-----------
395
396The LM90 is a digital temperature sensor. It senses its own temperature as
397well as the temperature of up to one external diode. It is compatible
23b2d477 398with many other devices, many of which are supported by this driver.
32c82a93 399
c09472fc
GR
400The family of chips supported by this driver is derived from MAX1617.
401This chip as well as various compatible chips support a local and a remote
402temperature sensor with 8 bit accuracy. Later chips provide improved accuracy
403and other additional features such as hysteresis and temperature offset
404registers.
405
32c82a93 406Note that there is no easy way to differentiate between the MAX6657,
6948708d
GR
407MAX6658 and MAX6659 variants. The extra features of the MAX6659 are only
408supported by this driver if the chip is located at address 0x4d or 0x4e,
409or if the chip type is explicitly selected as max6659.
410The MAX6680 and MAX6681 only differ in their pinout, therefore they obviously
411can't (and don't need to) be distinguished.
7f15b664 412
7f15b664 413The different chipsets of the family are not strictly identical, although
f65e1708
JD
414very similar. For reference, here comes a non-exhaustive list of specific
415features:
7f15b664 416
c09472fc
GR
417LM84:
418 * 8 bit sensor resolution
419
37d1dc8d 420ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
c09472fc
GR
421 * 8 bit sensor resolution
422 * Low temperature limits
423
0c6bffd4
GR
424ADM1021A, ADM1023:
425 * Temperature offset register for remote temperature sensor
426 * 11 bit resolution for remote temperature sensor
427 * Low temperature limits
428
7f15b664 429LM90:
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
437LM86 and LM89:
438 * Same as LM90
439 * Better external channel accuracy
440
441LM99:
442 * Same as LM89
443 * External temperature shifted by 16 degrees down
444
445ADM1032:
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 452ADT7461, 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
458ADT7481, 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
465MAX6642:
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
471MAX6646, MAX6647, MAX6649:
472 * Better local resolution
473 * Extended range unsigned external temperature
474
475MAX6648, MAX6692:
476 * Better local resolution
477 * Unsigned temperature
478
399a8a00 479MAX6654, 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 486MAX6657 and MAX6658:
f65e1708 487 * Better local resolution
7f15b664
M
488 * Remote sensor type selection
489
32c82a93 490MAX6659:
f65e1708 491 * Better local resolution
7f15b664
M
492 * Selectable address
493 * Second critical temperature limit
494 * Remote sensor type selection
495
32c82a93
RB
496MAX6680 and MAX6681:
497 * Selectable address
498 * Remote sensor type selection
499
06e1c0a2
GR
500MAX6695 and MAX6696:
501 * Better local resolution
502 * Selectable address (max6696)
503 * Second critical temperature limit
504 * Two remote sensors
505
c4f99a2b
JD
506W83L771W/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 511W83L771AWG/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
516SA56004X:
517 * Better local resolution
518
7f15b664
M
519All temperature values are given in degrees Celsius. Resolution
520is 1.0 degree for the local temperature, 0.125 degree for the remote
229d495d
JL
521temperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have
522a resolution of 0.125 degree for both temperatures.
7f15b664
M
523
524Each sensor has its own high and low limits, plus a critical limit.
525Additionally, there is a relative hysteresis value common to both critical
526values. To make life easier to user-space applications, two absolute values
527are exported, one for each channel, but these values are of course linked.
528Only the local hysteresis can be set from user-space, and the same delta
529applies to the remote hysteresis.
530
177e7592
GR
531The lm90 driver will not update its values more frequently than configured with
532the update_interval attribute; reading them more often will do no harm, but will
533return 'old' values.
7f15b664 534
53de3342
JD
535SMBus Alert Support
536-------------------
537
538This driver has basic support for SMBus alert. When an alert is received,
539the status register is read and the faulty temperature channel is logged.
540
5a4e5e6a
GR
541The Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON
542Semiconductor chips (NCT1008) do not implement the SMBus alert protocol
543properly so additional care is needed: the ALERT output is disabled when
544an alert is received, and is re-enabled only when the alarm is gone.
545Otherwise the chip would block alerts from other chips in the bus as long
546as the alarm is active.
53de3342 547
c3df5806
JD
548PEC Support
549-----------
550
551The ADM1032 is the only chip of the family which supports PEC. It does
552not support PEC on all transactions though, so some care must be taken.
553
554When reading a register value, the PEC byte is computed and sent by the
555ADM1032 chip. However, in the case of a combined transaction (SMBus Read
556Byte), the ADM1032 computes the CRC value over only the second half of
557the message rather than its entirety, because it thinks the first half
558of the message belongs to a different transaction. As a result, the CRC
559value differs from what the SMBus master expects, and all reads fail.
560
561For this reason, the lm90 driver will enable PEC for the ADM1032 only if
562the bus supports the SMBus Send Byte and Receive Byte transaction types.
563These transactions will be used to read register values, instead of
564SMBus Read Byte, and PEC will work properly.
565
566Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC.
567Instead, it will try to write the PEC value to the register (because the
568SMBus Send Byte transaction with PEC is similar to a Write Byte transaction
0966415d 569without PEC), which is not what we want. Thus, PEC is explicitly disabled
c3df5806
JD
570on SMBus Send Byte transactions in the lm90 driver.
571
572PEC on byte data transactions represents a significant increase in bandwidth
573usage (+33% for writes, +25% for reads) in normal conditions. With the need
574to use two SMBus transaction for reads, this overhead jumps to +50%. Worse,
575two transactions will typically mean twice as much delay waiting for
576transaction completion, effectively doubling the register cache refresh time.
577I guess reliability comes at a price, but it's quite expensive this time.
578
3b0982ff
GR
579So, as not everyone might enjoy the slowdown, PEC is disabled by default and
580can be enabled through sysfs. Just write 1 to the "pec" file and PEC will be
581enabled. Write 0 to that file to disable PEC again.