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