202 lines · plain
1Kernel driver adm92402=====================3 4Supported chips:5 6 * Analog Devices ADM92407 8 Prefix: 'adm9240'9 10 Addresses scanned: I2C 0x2c - 0x2f11 12 Datasheet: Publicly available at the Analog Devices website13 14 http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf15 16 * Dallas Semiconductor DS178017 18 Prefix: 'ds1780'19 20 Addresses scanned: I2C 0x2c - 0x2f21 22 Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website23 24 http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf25 26 * National Semiconductor LM8127 28 Prefix: 'lm81'29 30 Addresses scanned: I2C 0x2c - 0x2f31 32 Datasheet: Publicly available at the National Semiconductor website33 34 http://www.national.com/ds.cgi/LM/LM81.pdf35 36Authors:37 - Frodo Looijaard <frodol@dds.nl>,38 - Philip Edelbrock <phil@netroedge.com>,39 - Michiel Rook <michiel@grendelproject.nl>,40 - Grant Coady <gcoady.lk@gmail.com> with guidance41 from Jean Delvare <jdelvare@suse.de>42 43Interface44---------45The I2C addresses listed above assume BIOS has not changed the46chip MSB 5-bit address. Each chip reports a unique manufacturer47identification code as well as the chip revision/stepping level.48 49Description50-----------51[From ADM9240] The ADM9240 is a complete system hardware monitor for52microprocessor-based systems, providing measurement and limit comparison53of up to four power supplies and two processor core voltages, plus54temperature, two fan speeds and chassis intrusion. Measured values can55be read out via an I2C-compatible serial System Management Bus, and values56for limit comparisons can be programmed in over the same serial bus. The57high speed successive approximation ADC allows frequent sampling of all58analog channels to ensure a fast interrupt response to any out-of-limit59measurement.60 61The ADM9240, DS1780 and LM81 are register compatible, the following62details are common to the three chips. Chip differences are described63after this section.64 65 66Measurements67------------68The measurement cycle69 70The adm9240 driver will take a measurement reading no faster than once71each two seconds. User-space may read sysfs interface faster than the72measurement update rate and will receive cached data from the most73recent measurement.74 75ADM9240 has a very fast 320us temperature and voltage measurement cycle76with independent fan speed measurement cycles counting alternating rising77edges of the fan tacho inputs.78 79DS1780 measurement cycle is about once per second including fan speed.80 81LM81 measurement cycle is about once per 400ms including fan speed.82The LM81 12-bit extended temperature measurement mode is not supported.83 84Temperature85-----------86On chip temperature is reported as degrees Celsius as 9-bit signed data87with resolution of 0.5 degrees Celsius. High and low temperature limits88are 8-bit signed data with resolution of one degree Celsius.89 90Temperature alarm is asserted once the temperature exceeds the high limit,91and is cleared when the temperature falls below the temp1_max_hyst value.92 93Fan Speed94---------95Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz96clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by:97 98rpm = (22500 * 60) / (count * divider)99 100Automatic fan clock divider101 102 * User sets 0 to fan_min limit103 104 - low speed alarm is disabled105 - fan clock divider not changed106 - auto fan clock adjuster enabled for valid fan speed reading107 108 * User sets fan_min limit too low109 110 - low speed alarm is enabled111 - fan clock divider set to max112 - fan_min set to register value 254 which corresponds113 to 664 rpm on adm9240114 - low speed alarm will be asserted if fan speed is115 less than minimum measurable speed116 - auto fan clock adjuster disabled117 118 * User sets reasonable fan speed119 120 - low speed alarm is enabled121 - fan clock divider set to suit fan_min122 - auto fan clock adjuster enabled: adjusts fan_min123 124 * User sets unreasonably high low fan speed limit125 126 - resolution of the low speed limit may be reduced127 - alarm will be asserted128 - auto fan clock adjuster enabled: adjusts fan_min129 130 * fan speed may be displayed as zero until the auto fan clock divider131 adjuster brings fan speed clock divider back into chip measurement132 range, this will occur within a few measurement cycles.133 134Analog Output135-------------136An analog output provides a 0 to 1.25 volt signal intended for an external137fan speed amplifier circuit. The analog output is set to maximum value on138power up or reset. This doesn't do much on the test Intel SE440BX-2.139 140Voltage Monitor141 142^^^^^^^^^^^^^^^143 144Voltage (IN) measurement is internally scaled:145 146 === =========== =========== ========= ==========147 nr label nominal maximum resolution148 mV mV mV149 === =========== =========== ========= ==========150 0 +2.5V 2500 3320 13.0151 1 Vccp1 2700 3600 14.1152 2 +3.3V 3300 4380 17.2153 3 +5V 5000 6640 26.0154 4 +12V 12000 15940 62.5155 5 Vccp2 2700 3600 14.1156 === =========== =========== ========= ==========157 158The reading is an unsigned 8-bit value, nominal voltage measurement is159represented by a reading of 192, being 3/4 of the measurement range.160 161An alarm is asserted for any voltage going below or above the set limits.162 163The driver reports and accepts voltage limits scaled to the above table.164 165VID Monitor166-----------167The chip has five inputs to read the 5-bit VID and reports the mV value168based on detected CPU type.169 170Chassis Intrusion171-----------------172An alarm is asserted when the CI pin goes active high. The ADM9240173Datasheet has an example of an external temperature sensor driving174this pin. On an Intel SE440BX-2 the Chassis Intrusion header is175connected to a normally open switch.176 177The ADM9240 provides an internal open drain on this line, and may output178a 20 ms active low pulse to reset an external Chassis Intrusion latch.179 180Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file.181 182Alarm flags reported as 16-bit word183 184 === ============= ==========================185 bit label comment186 === ============= ==========================187 0 +2.5 V_Error high or low limit exceeded188 1 VCCP_Error high or low limit exceeded189 2 +3.3 V_Error high or low limit exceeded190 3 +5 V_Error high or low limit exceeded191 4 Temp_Error temperature error192 6 FAN1_Error fan low limit exceeded193 7 FAN2_Error fan low limit exceeded194 8 +12 V_Error high or low limit exceeded195 9 VCCP2_Error high or low limit exceeded196 12 Chassis_Error CI pin went high197 === ============= ==========================198 199Remaining bits are reserved and thus undefined. It is important to note200that alarm bits may be cleared on read, user-space may latch alarms and201provide the end-user with a method to clear alarm memory.202