adm9240 driver -------------- Supports the Analog Devices ADM9240 and the Dallas Semiconductor DS1780. These chips are apparently identical except for the manufacturer ID register. The proc directory will be adm9240-i2c-x-xx for the adm9240 and ds1780-i2c-x-xx for the ds1780. ----------------------------------------------------------------------- This file documents the adm9240 directories for the Analog Devices ADM9240 hardware health monitoring chip found on some Intel mainboards (and others?). There will be one directory created for each detected ADM9240 chip. Each chip must be on the SMBus. Directories are called things like adm9240-i2c-1-2c. /proc/sys/dev/sensors/chips contains the SYSCTL values for all chip directories. Within each ADM9240 directory, you can find the following files: * alarms (ADM9240_SYSCTL_ALARMS) A number which indicates which alarms are on. An alarm gets triggered when some limit has been crossed. This number is composed from a 16 bit value which is the combination of the Interrupt Status Register 1 (low byte) and 2 (high byte). This file can not be written to. The number is the logical OR of the following components (bit # followed by a description): 0 +2.5 V_Error Read Only A "1" indicates a high or low limit has been exceeded. 1 VCCP_Error Read Only A "1" indicates a high or low limit has been exceeded. 2 +3.3 V_Error Read Only A "1" indicates a high or low limit has been exceeded. 3 +5 V_Error Read Only A "1" indicates a high or low limit has been exceeded. 4 Temp_Error Read Only A "1" indicates that a temperature interrupt has been set. 5 Reserved Read Only Undefined. 6 FAN1_Error Read Only A "1" indicates that a fan count limit has been exceeded. 7 FAN2_Error Read Only A "1" indicates that a fan count limit has been exceeded. 8 +12 V_Error Read Only A "1" indicates a high or low limit has been exceeded. 9 VCCP2_Error Read Only A "1" indicates a high or low limit has been exceeded. 10 Reserved Read Only Undefined. 11 Reserved Read Only Undefined. 12 Chassis_Error Read Only A "1" indicates chassis intrusion has gone high. 13 Reserved Read Only Undefined. 14 Reserved Read Only Undefined. 15 Reserved Read Only Undefined. If accessed through sysctl, this value is a long. * fan[1-3] (ADM9240_SYSCTL_FAN[1-2]) A list of two numbers. The first is the minimum fan rotation limit; the second is the current fan rotation speed. Both are in RPM (rotations per minute). An alarm is triggered if the rotation speed drops below the limit. The first value can be changed. Not all RPM values can accurately be represented, so some rounding is done. If accessed through sysctl, this is a list of longs. * fan_div (LM78_SYSCTL_FAN_DIV) A list of two numbers, one for each fan. Each number can be either 1, 2, 4 or 8. It is the internal scaling factor used for the FAN rotations. If you change this number, the FAN readings get more or less detailed, but the range in which they can be read too. Higher numbers give better resolution, but less range. The first two numbers can be changed, the third not. If accessed through sysctl, this is a list of longs. * 2.5V, Vccp1, 3.3V, 5V, 12V, and Vccp2 (ADM9240_SYSCTL_IN[0-5] in the order shown) A list of three numbers. The first is the minimum limit, the second is the maximum limit, and the third is the current value. Note that minimum means 'closest to zero'; so if the normal value equals -10, a minimum could equal -9, and a maximum -11. Vccp1 and Vccp2 reflect core voltages; they are by default set from the vid values, or set to 2.80V if the vid lines seem to be unconnected. Not all voltage values can be accurately represented, so some rounding is done. The first two numbers can be changed, the third not. If accessed through sysctl, this is a list of longs, each being the voltage times 100. * temp A list of three numbers. The first number is the Overtemperature Shutdown value; the second is the Hysteresis value and the third number is the current value. The first two values can be modified. All values are in degrees Celsius. An alarm is issued when the temperature first gets above the Overtemperature Shutdown value; no more alarms are issued until the temperature gets below the Hysteresis value, at which moment another alarm is issued, and the state is reset. A more useful behaviour can be found by setting the Hysteresis value to +127 degrees Celsius; in this case, alarms are issued during all the time when the actual temperature is above the Overtemperature Shutdown value. The first two numbers can be changed, the third not. If accessed through sysctl, this is a list of longs, each being the temperature in degrees Celsius times 10. * vid The core voltage value (the voltage level your processor should work with), in volts. This is the value IN0 and IN1 are initialized to. If unconnected, it usually reads 3.50V. This number can not be changed. If accessed through sysctl, this is a long, being the voltage times 100. * analog_out This is feature is specific to the ADM9240. It is a DAC voltage control register for the Analog-Out pin. Valid values are from 255 to 0 (with 255 being the highest voltage, and 0 the lowest). From the docs: "The ADM9240 has a single analog output from an unsigned 8-bit DAC which produces 0 V - 1.25 V." The data for each ADM9240 is updated each 1.5 seconds, but only if it is actually read. Note: Much of this documentation is copied from the LM78 documenation (the device from which most featuers of the ADM9240 is modelled from). The maintainer of the ADM9240 is Philip Edelbrock ; please forward corrections, suggestions, etc. to him. For further technical information on this chip, I suggest getting the Acrobat PDF documentation from www.analog.com. Dallas documentation is at http://www.dalsemi.com.