Kernel driver lm73
==================

Supported chips:
  * Texas Instruments LM73
    Prefix: 'lm73'
    Addresses scanned: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, and 0x4e
    Datasheet: Publicly available at the Texas Instruments website
               http://www.ti.com/product/lm73

Author: Guillaume Ligneul <guillaume.ligneul@gmail.com>
Documentation: Chris Verges <kg4ysn@gmail.com>


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

The LM73 is a digital temperature sensor.  All temperature values are
given in degrees Celsius.

Measurement Resolution Support
------------------------------

The LM73 supports four resolutions, defined in terms of degrees C per
LSB: 0.25, 0.125, 0.0625, and 0.3125.  Changing the resolution mode
affects the conversion time of the LM73's analog-to-digital converter.
From userspace, the desired resolution can be specified as a function of
conversion time via the 'update_interval' sysfs attribute for the
device.  This attribute will normalize ranges of input values to the
maximum times defined for the resolution in the datasheet.

    Resolution    Conv. Time    Input Range
    (C/LSB)       (msec)        (msec)
    --------------------------------------
    0.25          14             0..14
    0.125         28            15..28
    0.0625        56            29..56
    0.03125       112           57..infinity
    --------------------------------------

The following examples show how the 'update_interval' attribute can be
used to change the conversion time:

    $ echo 0 > update_interval
    $ cat update_interval
    14
    $ cat temp1_input
    24250

    $ echo 22 > update_interval
    $ cat update_interval
    28
    $ cat temp1_input
    24125

    $ echo 56 > update_interval
    $ cat update_interval
    56
    $ cat temp1_input
    24062

    $ echo 85 > update_interval
    $ cat update_interval
    112
    $ cat temp1_input
    24031

As shown here, the lm73 driver automatically adjusts any user input for
'update_interval' via a step function.  Reading back the
'update_interval' value after a write operation will confirm the
conversion time actively in use.

Mathematically, the resolution can be derived from the conversion time
via the following function:

   g(x) = 0.250 * [log(x/14) / log(2)]

where 'x' is the output from 'update_interval' and 'g(x)' is the
resolution in degrees C per LSB.

Alarm Support
-------------

The LM73 features a simple over-temperature alarm mechanism.  This
feature is exposed via the sysfs attributes.

The attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags
provided by the LM73 that indicate whether the measured temperature has
passed the 'temp1_max' and 'temp1_min' thresholds, respectively.  These
values _must_ be read to clear the registers on the LM73.
