1 Kernel driver adm9240 2 ===================== 3 4 Supported chips: 5 6 * Analog Devices ADM9240 7 8 Prefix: 'adm9240' 9 10 Addresses scanned: I2C 0x2c - 0x2f 11 12 Datasheet: Publicly available at the Analog Devices website 13 14 http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf 15 16 * Dallas Semiconductor DS1780 17 18 Prefix: 'ds1780' 19 20 Addresses scanned: I2C 0x2c - 0x2f 21 22 Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website 23 24 http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf 25 26 * National Semiconductor LM81 27 28 Prefix: 'lm81' 29 30 Addresses scanned: I2C 0x2c - 0x2f 31 32 Datasheet: Publicly available at the National Semiconductor website 33 34 http://www.national.com/ds.cgi/LM/LM81.pdf 35 36 Authors: 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 guidance 41 from Jean Delvare <jdelvare@suse.de> 42 43 Interface 44 --------- 45 The I2C addresses listed above assume BIOS has not changed the 46 chip MSB 5-bit address. Each chip reports a unique manufacturer 47 identification code as well as the chip revision/stepping level. 48 49 Description 50 ----------- 51 [From ADM9240] The ADM9240 is a complete system hardware monitor for 52 microprocessor-based systems, providing measurement and limit comparison 53 of up to four power supplies and two processor core voltages, plus 54 temperature, two fan speeds and chassis intrusion. Measured values can 55 be read out via an I2C-compatible serial System Management Bus, and values 56 for limit comparisons can be programmed in over the same serial bus. The 57 high speed successive approximation ADC allows frequent sampling of all 58 analog channels to ensure a fast interrupt response to any out-of-limit 59 measurement. 60 61 The ADM9240, DS1780 and LM81 are register compatible, the following 62 details are common to the three chips. Chip differences are described 63 after this section. 64 65 66 Measurements 67 ------------ 68 The measurement cycle 69 70 The adm9240 driver will take a measurement reading no faster than once 71 each two seconds. User-space may read sysfs interface faster than the 72 measurement update rate and will receive cached data from the most 73 recent measurement. 74 75 ADM9240 has a very fast 320us temperature and voltage measurement cycle 76 with independent fan speed measurement cycles counting alternating rising 77 edges of the fan tacho inputs. 78 79 DS1780 measurement cycle is about once per second including fan speed. 80 81 LM81 measurement cycle is about once per 400ms including fan speed. 82 The LM81 12-bit extended temperature measurement mode is not supported. 83 84 Temperature 85 ----------- 86 On chip temperature is reported as degrees Celsius as 9-bit signed data 87 with resolution of 0.5 degrees Celsius. High and low temperature limits 88 are 8-bit signed data with resolution of one degree Celsius. 89 90 Temperature alarm is asserted once the temperature exceeds the high limit, 91 and is cleared when the temperature falls below the temp1_max_hyst value. 92 93 Fan Speed 94 --------- 95 Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz 96 clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by: 97 98 rpm = (22500 * 60) / (count * divider) 99 100 Automatic fan clock divider 101 102 * User sets 0 to fan_min limit 103 104 - low speed alarm is disabled 105 - fan clock divider not changed 106 - auto fan clock adjuster enabled for valid fan speed reading 107 108 * User sets fan_min limit too low 109 110 - low speed alarm is enabled 111 - fan clock divider set to max 112 - fan_min set to register value 254 which corresponds 113 to 664 rpm on adm9240 114 - low speed alarm will be asserted if fan speed is 115 less than minimum measurable speed 116 - auto fan clock adjuster disabled 117 118 * User sets reasonable fan speed 119 120 - low speed alarm is enabled 121 - fan clock divider set to suit fan_min 122 - auto fan clock adjuster enabled: adjusts fan_min 123 124 * User sets unreasonably high low fan speed limit 125 126 - resolution of the low speed limit may be reduced 127 - alarm will be asserted 128 - auto fan clock adjuster enabled: adjusts fan_min 129 130 * fan speed may be displayed as zero until the auto fan clock divider 131 adjuster brings fan speed clock divider back into chip measurement 132 range, this will occur within a few measurement cycles. 133 134 Analog Output 135 ------------- 136 An analog output provides a 0 to 1.25 volt signal intended for an external 137 fan speed amplifier circuit. The analog output is set to maximum value on 138 power up or reset. This doesn't do much on the test Intel SE440BX-2. 139 140 Voltage Monitor 141 142 ^^^^^^^^^^^^^^^ 143 144 Voltage (IN) measurement is internally scaled: 145 146 === =========== =========== ========= ========== 147 nr label nominal maximum resolution 148 mV mV mV 149 === =========== =========== ========= ========== 150 0 +2.5V 2500 3320 13.0 151 1 Vccp1 2700 3600 14.1 152 2 +3.3V 3300 4380 17.2 153 3 +5V 5000 6640 26.0 154 4 +12V 12000 15940 62.5 155 5 Vccp2 2700 3600 14.1 156 === =========== =========== ========= ========== 157 158 The reading is an unsigned 8-bit value, nominal voltage measurement is 159 represented by a reading of 192, being 3/4 of the measurement range. 160 161 An alarm is asserted for any voltage going below or above the set limits. 162 163 The driver reports and accepts voltage limits scaled to the above table. 164 165 VID Monitor 166 ----------- 167 The chip has five inputs to read the 5-bit VID and reports the mV value 168 based on detected CPU type. 169 170 Chassis Intrusion 171 ----------------- 172 An alarm is asserted when the CI pin goes active high. The ADM9240 173 Datasheet has an example of an external temperature sensor driving 174 this pin. On an Intel SE440BX-2 the Chassis Intrusion header is 175 connected to a normally open switch. 176 177 The ADM9240 provides an internal open drain on this line, and may output 178 a 20 ms active low pulse to reset an external Chassis Intrusion latch. 179 180 Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file. 181 182 Alarm flags reported as 16-bit word 183 184 === ============= ========================== 185 bit label comment 186 === ============= ========================== 187 0 +2.5 V_Error high or low limit exceeded 188 1 VCCP_Error high or low limit exceeded 189 2 +3.3 V_Error high or low limit exceeded 190 3 +5 V_Error high or low limit exceeded 191 4 Temp_Error temperature error 192 6 FAN1_Error fan low limit exceeded 193 7 FAN2_Error fan low limit exceeded 194 8 +12 V_Error high or low limit exceeded 195 9 VCCP2_Error high or low limit exceeded 196 12 Chassis_Error CI pin went high 197 === ============= ========================== 198 199 Remaining bits are reserved and thus undefined. It is important to note 200 that alarm bits may be cleared on read, user-space may latch alarms and 201 provide the end-user with a method to clear alarm memory.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.