Kernel driver adm9240
=====================

Supported chips:

  * Analog Devices ADM9240

    Prefix: 'adm9240'

    Addresses scanned: I2C 0x2c - 0x2f

    Datasheet: Publicly available at the Analog Devices website

	http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf

  * Dallas Semiconductor DS1780

    Prefix: 'ds1780'

    Addresses scanned: I2C 0x2c - 0x2f

    Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website

	http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf

  * National Semiconductor LM81

    Prefix: 'lm81'

    Addresses scanned: I2C 0x2c - 0x2f

    Datasheet: Publicly available at the National Semiconductor website

	http://www.national.com/ds.cgi/LM/LM81.pdf

Authors:
    - Frodo Looijaard <frodol@dds.nl>,
    - Philip Edelbrock <phil@netroedge.com>,
    - Michiel Rook <michiel@grendelproject.nl>,
    - Grant Coady <gcoady.lk@gmail.com> with guidance
      from Jean Delvare <jdelvare@suse.de>

Interface
---------
The I2C addresses listed above assume BIOS has not changed the
chip MSB 5-bit address. Each chip reports a unique manufacturer
identification code as well as the chip revision/stepping level.

Description
-----------
[From ADM9240] The ADM9240 is a complete system hardware monitor for
microprocessor-based systems, providing measurement and limit comparison
of up to four power supplies and two processor core voltages, plus
temperature, two fan speeds and chassis intrusion. Measured values can
be read out via an I2C-compatible serial System Management Bus, and values
for limit comparisons can be programmed in over the same serial bus. The
high speed successive approximation ADC allows frequent sampling of all
analog channels to ensure a fast interrupt response to any out-of-limit
measurement.

The ADM9240, DS1780 and LM81 are register compatible, the following
details are common to the three chips. Chip differences are described
after this section.


Measurements
------------
The measurement cycle

The adm9240 driver will take a measurement reading no faster than once
each two seconds. User-space may read sysfs interface faster than the
measurement update rate and will receive cached data from the most
recent measurement.

ADM9240 has a very fast 320us temperature and voltage measurement cycle
with independent fan speed measurement cycles counting alternating rising
edges of the fan tacho inputs.

DS1780 measurement cycle is about once per second including fan speed.

LM81 measurement cycle is about once per 400ms including fan speed.
The LM81 12-bit extended temperature measurement mode is not supported.

Temperature
-----------
On chip temperature is reported as degrees Celsius as 9-bit signed data
with resolution of 0.5 degrees Celsius. High and low temperature limits
are 8-bit signed data with resolution of one degree Celsius.

Temperature alarm is asserted once the temperature exceeds the high limit,
and is cleared when the temperature falls below the temp1_max_hyst value.

Fan Speed
---------
Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz
clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by:

rpm = (22500 * 60) / (count * divider)

Automatic fan clock divider

  * User sets 0 to fan_min limit

    - low speed alarm is disabled
    - fan clock divider not changed
    - auto fan clock adjuster enabled for valid fan speed reading

  * User sets fan_min limit too low

    - low speed alarm is enabled
    - fan clock divider set to max
    - fan_min set to register value 254 which corresponds
      to 664 rpm on adm9240
    - low speed alarm will be asserted if fan speed is
      less than minimum measurable speed
    - auto fan clock adjuster disabled

  * User sets reasonable fan speed

    - low speed alarm is enabled
    - fan clock divider set to suit fan_min
    - auto fan clock adjuster enabled: adjusts fan_min

  * User sets unreasonably high low fan speed limit

    - resolution of the low speed limit may be reduced
    - alarm will be asserted
    - auto fan clock adjuster enabled: adjusts fan_min

  * fan speed may be displayed as zero until the auto fan clock divider
    adjuster brings fan speed clock divider back into chip measurement
    range, this will occur within a few measurement cycles.

Analog Output
-------------
An analog output provides a 0 to 1.25 volt signal intended for an external
fan speed amplifier circuit. The analog output is set to maximum value on
power up or reset. This doesn't do much on the test Intel SE440BX-2.

Voltage Monitor

^^^^^^^^^^^^^^^

Voltage (IN) measurement is internally scaled:

    === =========== =========== ========= ==========
    nr  label       nominal     maximum   resolution
		      mV          mV         mV
    === =========== =========== ========= ==========
    0   +2.5V        2500        3320       13.0
    1   Vccp1        2700        3600       14.1
    2   +3.3V        3300        4380       17.2
    3     +5V        5000        6640       26.0
    4    +12V       12000       15940       62.5
    5   Vccp2        2700        3600       14.1
    === =========== =========== ========= ==========

The reading is an unsigned 8-bit value, nominal voltage measurement is
represented by a reading of 192, being 3/4 of the measurement range.

An alarm is asserted for any voltage going below or above the set limits.

The driver reports and accepts voltage limits scaled to the above table.

VID Monitor
-----------
The chip has five inputs to read the 5-bit VID and reports the mV value
based on detected CPU type.

Chassis Intrusion
-----------------
An alarm is asserted when the CI pin goes active high. The ADM9240
Datasheet has an example of an external temperature sensor driving
this pin. On an Intel SE440BX-2 the Chassis Intrusion header is
connected to a normally open switch.

The ADM9240 provides an internal open drain on this line, and may output
a 20 ms active low pulse to reset an external Chassis Intrusion latch.

Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file.

Alarm flags reported as 16-bit word

    ===     =============       ==========================
    bit     label               comment
    ===     =============       ==========================
     0      +2.5 V_Error        high or low limit exceeded
     1      VCCP_Error          high or low limit exceeded
     2      +3.3 V_Error        high or low limit exceeded
     3      +5 V_Error          high or low limit exceeded
     4      Temp_Error          temperature error
     6      FAN1_Error          fan low limit exceeded
     7      FAN2_Error          fan low limit exceeded
     8      +12 V_Error         high or low limit exceeded
     9      VCCP2_Error         high or low limit exceeded
    12      Chassis_Error       CI pin went high
    ===     =============       ==========================

Remaining bits are reserved and thus undefined. It is important to note
that alarm bits may be cleared on read, user-space may latch alarms and
provide the end-user with a method to clear alarm memory.
