17ebd8b66SMauro Carvalho ChehabKernel driver adm9240 27ebd8b66SMauro Carvalho Chehab===================== 37ebd8b66SMauro Carvalho Chehab 47ebd8b66SMauro Carvalho ChehabSupported chips: 57ebd8b66SMauro Carvalho Chehab 67ebd8b66SMauro Carvalho Chehab * Analog Devices ADM9240 77ebd8b66SMauro Carvalho Chehab 87ebd8b66SMauro Carvalho Chehab Prefix: 'adm9240' 97ebd8b66SMauro Carvalho Chehab 107ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x2c - 0x2f 117ebd8b66SMauro Carvalho Chehab 127ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Analog Devices website 137ebd8b66SMauro Carvalho Chehab 147ebd8b66SMauro Carvalho Chehab http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf 157ebd8b66SMauro Carvalho Chehab 167ebd8b66SMauro Carvalho Chehab * Dallas Semiconductor DS1780 177ebd8b66SMauro Carvalho Chehab 187ebd8b66SMauro Carvalho Chehab Prefix: 'ds1780' 197ebd8b66SMauro Carvalho Chehab 207ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x2c - 0x2f 217ebd8b66SMauro Carvalho Chehab 227ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website 237ebd8b66SMauro Carvalho Chehab 247ebd8b66SMauro Carvalho Chehab http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf 257ebd8b66SMauro Carvalho Chehab 267ebd8b66SMauro Carvalho Chehab * National Semiconductor LM81 277ebd8b66SMauro Carvalho Chehab 287ebd8b66SMauro Carvalho Chehab Prefix: 'lm81' 297ebd8b66SMauro Carvalho Chehab 307ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x2c - 0x2f 317ebd8b66SMauro Carvalho Chehab 327ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the National Semiconductor website 337ebd8b66SMauro Carvalho Chehab 347ebd8b66SMauro Carvalho Chehab http://www.national.com/ds.cgi/LM/LM81.pdf 357ebd8b66SMauro Carvalho Chehab 367ebd8b66SMauro Carvalho ChehabAuthors: 377ebd8b66SMauro Carvalho Chehab - Frodo Looijaard <frodol@dds.nl>, 387ebd8b66SMauro Carvalho Chehab - Philip Edelbrock <phil@netroedge.com>, 397ebd8b66SMauro Carvalho Chehab - Michiel Rook <michiel@grendelproject.nl>, 407ebd8b66SMauro Carvalho Chehab - Grant Coady <gcoady.lk@gmail.com> with guidance 417ebd8b66SMauro Carvalho Chehab from Jean Delvare <jdelvare@suse.de> 427ebd8b66SMauro Carvalho Chehab 437ebd8b66SMauro Carvalho ChehabInterface 447ebd8b66SMauro Carvalho Chehab--------- 457ebd8b66SMauro Carvalho ChehabThe I2C addresses listed above assume BIOS has not changed the 467ebd8b66SMauro Carvalho Chehabchip MSB 5-bit address. Each chip reports a unique manufacturer 477ebd8b66SMauro Carvalho Chehabidentification code as well as the chip revision/stepping level. 487ebd8b66SMauro Carvalho Chehab 497ebd8b66SMauro Carvalho ChehabDescription 507ebd8b66SMauro Carvalho Chehab----------- 517ebd8b66SMauro Carvalho Chehab[From ADM9240] The ADM9240 is a complete system hardware monitor for 527ebd8b66SMauro Carvalho Chehabmicroprocessor-based systems, providing measurement and limit comparison 537ebd8b66SMauro Carvalho Chehabof up to four power supplies and two processor core voltages, plus 547ebd8b66SMauro Carvalho Chehabtemperature, two fan speeds and chassis intrusion. Measured values can 557ebd8b66SMauro Carvalho Chehabbe read out via an I2C-compatible serial System Management Bus, and values 567ebd8b66SMauro Carvalho Chehabfor limit comparisons can be programmed in over the same serial bus. The 577ebd8b66SMauro Carvalho Chehabhigh speed successive approximation ADC allows frequent sampling of all 587ebd8b66SMauro Carvalho Chehabanalog channels to ensure a fast interrupt response to any out-of-limit 597ebd8b66SMauro Carvalho Chehabmeasurement. 607ebd8b66SMauro Carvalho Chehab 617ebd8b66SMauro Carvalho ChehabThe ADM9240, DS1780 and LM81 are register compatible, the following 627ebd8b66SMauro Carvalho Chehabdetails are common to the three chips. Chip differences are described 637ebd8b66SMauro Carvalho Chehabafter this section. 647ebd8b66SMauro Carvalho Chehab 657ebd8b66SMauro Carvalho Chehab 667ebd8b66SMauro Carvalho ChehabMeasurements 677ebd8b66SMauro Carvalho Chehab------------ 687ebd8b66SMauro Carvalho ChehabThe measurement cycle 697ebd8b66SMauro Carvalho Chehab 707ebd8b66SMauro Carvalho ChehabThe adm9240 driver will take a measurement reading no faster than once 717ebd8b66SMauro Carvalho Chehabeach two seconds. User-space may read sysfs interface faster than the 727ebd8b66SMauro Carvalho Chehabmeasurement update rate and will receive cached data from the most 737ebd8b66SMauro Carvalho Chehabrecent measurement. 747ebd8b66SMauro Carvalho Chehab 757ebd8b66SMauro Carvalho ChehabADM9240 has a very fast 320us temperature and voltage measurement cycle 767ebd8b66SMauro Carvalho Chehabwith independent fan speed measurement cycles counting alternating rising 777ebd8b66SMauro Carvalho Chehabedges of the fan tacho inputs. 787ebd8b66SMauro Carvalho Chehab 797ebd8b66SMauro Carvalho ChehabDS1780 measurement cycle is about once per second including fan speed. 807ebd8b66SMauro Carvalho Chehab 817ebd8b66SMauro Carvalho ChehabLM81 measurement cycle is about once per 400ms including fan speed. 827ebd8b66SMauro Carvalho ChehabThe LM81 12-bit extended temperature measurement mode is not supported. 837ebd8b66SMauro Carvalho Chehab 847ebd8b66SMauro Carvalho ChehabTemperature 857ebd8b66SMauro Carvalho Chehab----------- 867ebd8b66SMauro Carvalho ChehabOn chip temperature is reported as degrees Celsius as 9-bit signed data 877ebd8b66SMauro Carvalho Chehabwith resolution of 0.5 degrees Celsius. High and low temperature limits 887ebd8b66SMauro Carvalho Chehabare 8-bit signed data with resolution of one degree Celsius. 897ebd8b66SMauro Carvalho Chehab 907ebd8b66SMauro Carvalho ChehabTemperature alarm is asserted once the temperature exceeds the high limit, 917ebd8b66SMauro Carvalho Chehaband is cleared when the temperature falls below the temp1_max_hyst value. 927ebd8b66SMauro Carvalho Chehab 937ebd8b66SMauro Carvalho ChehabFan Speed 947ebd8b66SMauro Carvalho Chehab--------- 957ebd8b66SMauro Carvalho ChehabTwo fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz 967ebd8b66SMauro Carvalho Chehabclock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by: 977ebd8b66SMauro Carvalho Chehab 987ebd8b66SMauro Carvalho Chehabrpm = (22500 * 60) / (count * divider) 997ebd8b66SMauro Carvalho Chehab 1007ebd8b66SMauro Carvalho ChehabAutomatic fan clock divider 1017ebd8b66SMauro Carvalho Chehab 1027ebd8b66SMauro Carvalho Chehab * User sets 0 to fan_min limit 1037ebd8b66SMauro Carvalho Chehab 1047ebd8b66SMauro Carvalho Chehab - low speed alarm is disabled 1057ebd8b66SMauro Carvalho Chehab - fan clock divider not changed 1067ebd8b66SMauro Carvalho Chehab - auto fan clock adjuster enabled for valid fan speed reading 1077ebd8b66SMauro Carvalho Chehab 1087ebd8b66SMauro Carvalho Chehab * User sets fan_min limit too low 1097ebd8b66SMauro Carvalho Chehab 1107ebd8b66SMauro Carvalho Chehab - low speed alarm is enabled 1117ebd8b66SMauro Carvalho Chehab - fan clock divider set to max 1127ebd8b66SMauro Carvalho Chehab - fan_min set to register value 254 which corresponds 1137ebd8b66SMauro Carvalho Chehab to 664 rpm on adm9240 1147ebd8b66SMauro Carvalho Chehab - low speed alarm will be asserted if fan speed is 1157ebd8b66SMauro Carvalho Chehab less than minimum measurable speed 1167ebd8b66SMauro Carvalho Chehab - auto fan clock adjuster disabled 1177ebd8b66SMauro Carvalho Chehab 1187ebd8b66SMauro Carvalho Chehab * User sets reasonable fan speed 1197ebd8b66SMauro Carvalho Chehab 1207ebd8b66SMauro Carvalho Chehab - low speed alarm is enabled 1217ebd8b66SMauro Carvalho Chehab - fan clock divider set to suit fan_min 1227ebd8b66SMauro Carvalho Chehab - auto fan clock adjuster enabled: adjusts fan_min 1237ebd8b66SMauro Carvalho Chehab 1247ebd8b66SMauro Carvalho Chehab * User sets unreasonably high low fan speed limit 1257ebd8b66SMauro Carvalho Chehab 1267ebd8b66SMauro Carvalho Chehab - resolution of the low speed limit may be reduced 1277ebd8b66SMauro Carvalho Chehab - alarm will be asserted 1287ebd8b66SMauro Carvalho Chehab - auto fan clock adjuster enabled: adjusts fan_min 1297ebd8b66SMauro Carvalho Chehab 1307ebd8b66SMauro Carvalho Chehab * fan speed may be displayed as zero until the auto fan clock divider 1317ebd8b66SMauro Carvalho Chehab adjuster brings fan speed clock divider back into chip measurement 1327ebd8b66SMauro Carvalho Chehab range, this will occur within a few measurement cycles. 1337ebd8b66SMauro Carvalho Chehab 1347ebd8b66SMauro Carvalho ChehabAnalog Output 1357ebd8b66SMauro Carvalho Chehab------------- 1367ebd8b66SMauro Carvalho ChehabAn analog output provides a 0 to 1.25 volt signal intended for an external 1377ebd8b66SMauro Carvalho Chehabfan speed amplifier circuit. The analog output is set to maximum value on 1387ebd8b66SMauro Carvalho Chehabpower up or reset. This doesn't do much on the test Intel SE440BX-2. 1397ebd8b66SMauro Carvalho Chehab 1407ebd8b66SMauro Carvalho ChehabVoltage Monitor 1417ebd8b66SMauro Carvalho Chehab 1427ebd8b66SMauro Carvalho Chehab^^^^^^^^^^^^^^^ 1437ebd8b66SMauro Carvalho Chehab 1447ebd8b66SMauro Carvalho ChehabVoltage (IN) measurement is internally scaled: 1457ebd8b66SMauro Carvalho Chehab 1467ebd8b66SMauro Carvalho Chehab === =========== =========== ========= ========== 1477ebd8b66SMauro Carvalho Chehab nr label nominal maximum resolution 1487ebd8b66SMauro Carvalho Chehab mV mV mV 1497ebd8b66SMauro Carvalho Chehab === =========== =========== ========= ========== 1507ebd8b66SMauro Carvalho Chehab 0 +2.5V 2500 3320 13.0 1517ebd8b66SMauro Carvalho Chehab 1 Vccp1 2700 3600 14.1 1527ebd8b66SMauro Carvalho Chehab 2 +3.3V 3300 4380 17.2 1537ebd8b66SMauro Carvalho Chehab 3 +5V 5000 6640 26.0 1547ebd8b66SMauro Carvalho Chehab 4 +12V 12000 15940 62.5 1557ebd8b66SMauro Carvalho Chehab 5 Vccp2 2700 3600 14.1 1567ebd8b66SMauro Carvalho Chehab === =========== =========== ========= ========== 1577ebd8b66SMauro Carvalho Chehab 1587ebd8b66SMauro Carvalho ChehabThe reading is an unsigned 8-bit value, nominal voltage measurement is 1597ebd8b66SMauro Carvalho Chehabrepresented by a reading of 192, being 3/4 of the measurement range. 1607ebd8b66SMauro Carvalho Chehab 1617ebd8b66SMauro Carvalho ChehabAn alarm is asserted for any voltage going below or above the set limits. 1627ebd8b66SMauro Carvalho Chehab 1637ebd8b66SMauro Carvalho ChehabThe driver reports and accepts voltage limits scaled to the above table. 1647ebd8b66SMauro Carvalho Chehab 1657ebd8b66SMauro Carvalho ChehabVID Monitor 1667ebd8b66SMauro Carvalho Chehab----------- 1677ebd8b66SMauro Carvalho ChehabThe chip has five inputs to read the 5-bit VID and reports the mV value 1687ebd8b66SMauro Carvalho Chehabbased on detected CPU type. 1697ebd8b66SMauro Carvalho Chehab 1707ebd8b66SMauro Carvalho ChehabChassis Intrusion 1717ebd8b66SMauro Carvalho Chehab----------------- 1727ebd8b66SMauro Carvalho ChehabAn alarm is asserted when the CI pin goes active high. The ADM9240 1737ebd8b66SMauro Carvalho ChehabDatasheet has an example of an external temperature sensor driving 1747ebd8b66SMauro Carvalho Chehabthis pin. On an Intel SE440BX-2 the Chassis Intrusion header is 1757ebd8b66SMauro Carvalho Chehabconnected to a normally open switch. 1767ebd8b66SMauro Carvalho Chehab 1777ebd8b66SMauro Carvalho ChehabThe ADM9240 provides an internal open drain on this line, and may output 1787ebd8b66SMauro Carvalho Chehaba 20 ms active low pulse to reset an external Chassis Intrusion latch. 1797ebd8b66SMauro Carvalho Chehab 1807ebd8b66SMauro Carvalho ChehabClear the CI latch by writing value 0 to the sysfs intrusion0_alarm file. 1817ebd8b66SMauro Carvalho Chehab 1827ebd8b66SMauro Carvalho ChehabAlarm flags reported as 16-bit word 1837ebd8b66SMauro Carvalho Chehab 1847ebd8b66SMauro Carvalho Chehab === ============= ========================== 1857ebd8b66SMauro Carvalho Chehab bit label comment 1867ebd8b66SMauro Carvalho Chehab === ============= ========================== 1877ebd8b66SMauro Carvalho Chehab 0 +2.5 V_Error high or low limit exceeded 1887ebd8b66SMauro Carvalho Chehab 1 VCCP_Error high or low limit exceeded 1897ebd8b66SMauro Carvalho Chehab 2 +3.3 V_Error high or low limit exceeded 1907ebd8b66SMauro Carvalho Chehab 3 +5 V_Error high or low limit exceeded 1917ebd8b66SMauro Carvalho Chehab 4 Temp_Error temperature error 1927ebd8b66SMauro Carvalho Chehab 6 FAN1_Error fan low limit exceeded 1937ebd8b66SMauro Carvalho Chehab 7 FAN2_Error fan low limit exceeded 1947ebd8b66SMauro Carvalho Chehab 8 +12 V_Error high or low limit exceeded 1957ebd8b66SMauro Carvalho Chehab 9 VCCP2_Error high or low limit exceeded 1967ebd8b66SMauro Carvalho Chehab 12 Chassis_Error CI pin went high 1977ebd8b66SMauro Carvalho Chehab === ============= ========================== 1987ebd8b66SMauro Carvalho Chehab 1997ebd8b66SMauro Carvalho ChehabRemaining bits are reserved and thus undefined. It is important to note 2007ebd8b66SMauro Carvalho Chehabthat alarm bits may be cleared on read, user-space may latch alarms and 2017ebd8b66SMauro Carvalho Chehabprovide the end-user with a method to clear alarm memory. 202