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

	       https://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.
