xref: /openbmc/linux/Documentation/hwmon/adm1021.rst (revision 976e3645923bdd2fe7893aae33fd7a21098bfb28)
17ebd8b66SMauro Carvalho ChehabKernel driver adm1021
27ebd8b66SMauro Carvalho Chehab=====================
37ebd8b66SMauro Carvalho Chehab
47ebd8b66SMauro Carvalho ChehabSupported chips:
57ebd8b66SMauro Carvalho Chehab
67ebd8b66SMauro Carvalho Chehab  * Analog Devices ADM1021
77ebd8b66SMauro Carvalho Chehab
87ebd8b66SMauro Carvalho Chehab    Prefix: 'adm1021'
97ebd8b66SMauro Carvalho Chehab
107ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
117ebd8b66SMauro Carvalho Chehab
127ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Analog Devices website
137ebd8b66SMauro Carvalho Chehab
147ebd8b66SMauro Carvalho Chehab  * Analog Devices ADM1021A/ADM1023
157ebd8b66SMauro Carvalho Chehab
167ebd8b66SMauro Carvalho Chehab    Prefix: 'adm1023'
177ebd8b66SMauro Carvalho Chehab
187ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
197ebd8b66SMauro Carvalho Chehab
207ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Analog Devices website
217ebd8b66SMauro Carvalho Chehab
227ebd8b66SMauro Carvalho Chehab  * Genesys Logic GL523SM
237ebd8b66SMauro Carvalho Chehab
247ebd8b66SMauro Carvalho Chehab    Prefix: 'gl523sm'
257ebd8b66SMauro Carvalho Chehab
267ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
277ebd8b66SMauro Carvalho Chehab
287ebd8b66SMauro Carvalho Chehab    Datasheet:
297ebd8b66SMauro Carvalho Chehab
307ebd8b66SMauro Carvalho Chehab  * Maxim MAX1617
317ebd8b66SMauro Carvalho Chehab
327ebd8b66SMauro Carvalho Chehab    Prefix: 'max1617'
337ebd8b66SMauro Carvalho Chehab
347ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
357ebd8b66SMauro Carvalho Chehab
367ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Maxim website
377ebd8b66SMauro Carvalho Chehab
387ebd8b66SMauro Carvalho Chehab  * Maxim MAX1617A
397ebd8b66SMauro Carvalho Chehab
407ebd8b66SMauro Carvalho Chehab    Prefix: 'max1617a'
417ebd8b66SMauro Carvalho Chehab
427ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
437ebd8b66SMauro Carvalho Chehab
447ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Maxim website
457ebd8b66SMauro Carvalho Chehab
467ebd8b66SMauro Carvalho Chehab  * National Semiconductor LM84
477ebd8b66SMauro Carvalho Chehab
487ebd8b66SMauro Carvalho Chehab    Prefix: 'lm84'
497ebd8b66SMauro Carvalho Chehab
507ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
517ebd8b66SMauro Carvalho Chehab
527ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the National Semiconductor website
537ebd8b66SMauro Carvalho Chehab
547ebd8b66SMauro Carvalho Chehab  * Philips NE1617
557ebd8b66SMauro Carvalho Chehab
567ebd8b66SMauro Carvalho Chehab    Prefix: 'max1617' (probably detected as a max1617)
577ebd8b66SMauro Carvalho Chehab
587ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
597ebd8b66SMauro Carvalho Chehab
607ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Philips website
617ebd8b66SMauro Carvalho Chehab
627ebd8b66SMauro Carvalho Chehab  * Philips NE1617A
637ebd8b66SMauro Carvalho Chehab
647ebd8b66SMauro Carvalho Chehab    Prefix: 'max1617' (probably detected as a max1617)
657ebd8b66SMauro Carvalho Chehab
667ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
677ebd8b66SMauro Carvalho Chehab
687ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Philips website
697ebd8b66SMauro Carvalho Chehab
707ebd8b66SMauro Carvalho Chehab  * TI THMC10
717ebd8b66SMauro Carvalho Chehab
727ebd8b66SMauro Carvalho Chehab    Prefix: 'thmc10'
737ebd8b66SMauro Carvalho Chehab
747ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
757ebd8b66SMauro Carvalho Chehab
767ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the TI website
777ebd8b66SMauro Carvalho Chehab
787ebd8b66SMauro Carvalho Chehab  * Onsemi MC1066
797ebd8b66SMauro Carvalho Chehab
807ebd8b66SMauro Carvalho Chehab    Prefix: 'mc1066'
817ebd8b66SMauro Carvalho Chehab
827ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
837ebd8b66SMauro Carvalho Chehab
847ebd8b66SMauro Carvalho Chehab    Datasheet: Publicly available at the Onsemi website
857ebd8b66SMauro Carvalho Chehab
867ebd8b66SMauro Carvalho Chehab
877ebd8b66SMauro Carvalho ChehabAuthors:
887ebd8b66SMauro Carvalho Chehab	- Frodo Looijaard <frodol@dds.nl>,
897ebd8b66SMauro Carvalho Chehab	- Philip Edelbrock <phil@netroedge.com>
907ebd8b66SMauro Carvalho Chehab
917ebd8b66SMauro Carvalho ChehabModule Parameters
927ebd8b66SMauro Carvalho Chehab-----------------
937ebd8b66SMauro Carvalho Chehab
947ebd8b66SMauro Carvalho Chehab* read_only: int
957ebd8b66SMauro Carvalho Chehab  Don't set any values, read only mode
967ebd8b66SMauro Carvalho Chehab
977ebd8b66SMauro Carvalho Chehab
987ebd8b66SMauro Carvalho ChehabDescription
997ebd8b66SMauro Carvalho Chehab-----------
1007ebd8b66SMauro Carvalho Chehab
1017ebd8b66SMauro Carvalho ChehabThe chips supported by this driver are very similar. The Maxim MAX1617 is
1027ebd8b66SMauro Carvalho Chehabthe oldest; it has the problem that it is not very well detectable. The
1037ebd8b66SMauro Carvalho ChehabMAX1617A solves that. The ADM1021 is a straight clone of the MAX1617A.
1047ebd8b66SMauro Carvalho ChehabDitto for the THMC10. From here on, we will refer to all these chips as
1057ebd8b66SMauro Carvalho ChehabADM1021-clones.
1067ebd8b66SMauro Carvalho Chehab
1077ebd8b66SMauro Carvalho ChehabThe ADM1021 and MAX1617A reports a die code, which is a sort of revision
1087ebd8b66SMauro Carvalho Chehabcode. This can help us pinpoint problems; it is not very useful
1097ebd8b66SMauro Carvalho Chehabotherwise.
1107ebd8b66SMauro Carvalho Chehab
1117ebd8b66SMauro Carvalho ChehabADM1021-clones implement two temperature sensors. One of them is internal,
1127ebd8b66SMauro Carvalho Chehaband measures the temperature of the chip itself; the other is external and
1137ebd8b66SMauro Carvalho Chehabis realised in the form of a transistor-like device. A special alarm
1147ebd8b66SMauro Carvalho Chehabindicates whether the remote sensor is connected.
1157ebd8b66SMauro Carvalho Chehab
1167ebd8b66SMauro Carvalho ChehabEach sensor has its own low and high limits. When they are crossed, the
1177ebd8b66SMauro Carvalho Chehabcorresponding alarm is set and remains on as long as the temperature stays
1187ebd8b66SMauro Carvalho Chehabout of range. Temperatures are measured in degrees Celsius. Measurements
1197ebd8b66SMauro Carvalho Chehabare possible between -65 and +127 degrees, with a resolution of one degree.
1207ebd8b66SMauro Carvalho Chehab
1217ebd8b66SMauro Carvalho ChehabIf an alarm triggers, it will remain triggered until the hardware register
1227ebd8b66SMauro Carvalho Chehabis read at least once. This means that the cause for the alarm may already
1237ebd8b66SMauro Carvalho Chehabhave disappeared!
1247ebd8b66SMauro Carvalho Chehab
1257ebd8b66SMauro Carvalho ChehabThis driver only updates its values each 1.5 seconds; reading it more often
1267ebd8b66SMauro Carvalho Chehabwill do no harm, but will return 'old' values. It is possible to make
1277ebd8b66SMauro Carvalho ChehabADM1021-clones do faster measurements, but there is really no good reason
1287ebd8b66SMauro Carvalho Chehabfor that.
1297ebd8b66SMauro Carvalho Chehab
1307ebd8b66SMauro Carvalho Chehab
1317ebd8b66SMauro Carvalho ChehabNetburst-based Xeon support
1327ebd8b66SMauro Carvalho Chehab---------------------------
1337ebd8b66SMauro Carvalho Chehab
1347ebd8b66SMauro Carvalho ChehabSome Xeon processors based on the Netburst (early Pentium 4, from 2001 to
1357ebd8b66SMauro Carvalho Chehab2003) microarchitecture had real MAX1617, ADM1021, or compatible chips
1367ebd8b66SMauro Carvalho Chehabwithin them, with two temperature sensors. Other Xeon processors of this
1377ebd8b66SMauro Carvalho Chehabera (with 400 MHz FSB) had chips with only one temperature sensor.
1387ebd8b66SMauro Carvalho Chehab
1397ebd8b66SMauro Carvalho ChehabIf you have such an old Xeon, and you get two valid temperatures when
1407ebd8b66SMauro Carvalho Chehabloading the adm1021 module, then things are good.
1417ebd8b66SMauro Carvalho Chehab
1427ebd8b66SMauro Carvalho ChehabIf nothing happens when loading the adm1021 module, and you are certain
1437ebd8b66SMauro Carvalho Chehabthat your specific Xeon processor model includes compatible sensors, you
1447ebd8b66SMauro Carvalho Chehabwill have to explicitly instantiate the sensor chips from user-space. See
145*ccf988b6SMauro Carvalho Chehabmethod 4 in Documentation/i2c/instantiating-devices.rst. Possible slave
1467ebd8b66SMauro Carvalho Chehabaddresses are 0x18, 0x1a, 0x29, 0x2b, 0x4c, or 0x4e. It is likely that
1477ebd8b66SMauro Carvalho Chehabonly temp2 will be correct and temp1 will have to be ignored.
1487ebd8b66SMauro Carvalho Chehab
1497ebd8b66SMauro Carvalho ChehabPrevious generations of the Xeon processor (based on Pentium II/III)
1507ebd8b66SMauro Carvalho Chehabdidn't have these sensors. Next generations of Xeon processors (533 MHz
1517ebd8b66SMauro Carvalho ChehabFSB and faster) lost them, until the Core-based generation which
1527ebd8b66SMauro Carvalho Chehabintroduced integrated digital thermal sensors. These are supported by
1537ebd8b66SMauro Carvalho Chehabthe coretemp driver.
154