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