Kernel driver adt7410
=====================

Supported chips:

  * Analog Devices ADT7410

    Prefix: 'adt7410'

    Addresses scanned: None

    Datasheet: Publicly available at the Analog Devices website

	       http://www.analog.com/static/imported-files/data_sheets/ADT7410.pdf
  * Analog Devices ADT7420

    Prefix: 'adt7420'

    Addresses scanned: None

    Datasheet: Publicly available at the Analog Devices website

	       http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf

  * Analog Devices ADT7310

    Prefix: 'adt7310'

    Addresses scanned: None

    Datasheet: Publicly available at the Analog Devices website

	       http://www.analog.com/static/imported-files/data_sheets/ADT7310.pdf

  * Analog Devices ADT7320

    Prefix: 'adt7320'

    Addresses scanned: None

    Datasheet: Publicly available at the Analog Devices website

	       http://www.analog.com/static/imported-files/data_sheets/ADT7320.pdf

Author: Hartmut Knaack <knaack.h@gmx.de>

Description
-----------

The ADT7310/ADT7410 is a temperature sensor with rated temperature range of
-55°C to +150°C. It has a high accuracy of +/-0.5°C and can be operated at a
resolution of 13 bits (0.0625°C) or 16 bits (0.0078°C). The sensor provides an
INT pin to indicate that a minimum or maximum temperature set point has been
exceeded, as well as a critical temperature (CT) pin to indicate that the
critical temperature set point has been exceeded. Both pins can be set up with a
common hysteresis of 0°C - 15°C and a fault queue, ranging from 1 to 4 events.
Both pins can individually set to be active-low or active-high, while the whole
device can either run in comparator mode or interrupt mode. The ADT7410 supports
continuous temperature sampling, as well as sampling one temperature value per
second or even just get one sample on demand for power saving. Besides, it can
completely power down its ADC, if power management is required.

The ADT7320/ADT7420 is register compatible, the only differences being the
package, a slightly narrower operating temperature range (-40°C to +150°C), and
a better accuracy (0.25°C instead of 0.50°C.)

The difference between the ADT7310/ADT7320 and ADT7410/ADT7420 is the control
interface, the ADT7310 and ADT7320 use SPI while the ADT7410 and ADT7420 use
I2C.

Configuration Notes
-------------------

Since the device uses one hysteresis value, which is an offset to minimum,
maximum and critical temperature, it can only be set for temp#_max_hyst.
However, temp#_min_hyst and temp#_crit_hyst show their corresponding
hysteresis.
The device is set to 16 bit resolution and comparator mode.

sysfs-Interface
---------------

======================== ====================================================
temp#_input		 temperature input
temp#_min		 temperature minimum setpoint
temp#_max		 temperature maximum setpoint
temp#_crit		 critical temperature setpoint
temp#_min_hyst		 hysteresis for temperature minimum (read-only)
temp#_max_hyst		 hysteresis for temperature maximum (read/write)
temp#_crit_hyst		 hysteresis for critical temperature (read-only)
temp#_min_alarm		 temperature minimum alarm flag
temp#_max_alarm		 temperature maximum alarm flag
temp#_crit_alarm	 critical temperature alarm flag
======================== ====================================================
