Kernel driver lm77

Supported chips:

  • National Semiconductor LM77

    Prefix: ‘lm77’

    Addresses scanned: I2C 0x48 - 0x4b

    Datasheet: Publicly available at the National Semiconductor website

Author: Andras BALI <drewie@freemail.hu>

Description

The LM77 implements one temperature sensor. The temperaturesensor incorporates a band-gap type temperature sensor,10-bit ADC, and a digital comparator with user-programmable upperand lower limit values.

The LM77 implements 3 limits: low (temp1_min), high (temp1_max) andcritical (temp1_crit.) It also implements an hysteresis mechanism whichapplies to all 3 limits. The relative difference is stored in a singleregister on the chip, which means that the relative difference betweenthe limit and its hysteresis is always the same for all 3 limits.

This implementation detail implies the following:

  • When setting a limit, its hysteresis will automatically follow, thedifference staying unchanged. For example, if the old critical limitwas 80 degrees C, and the hysteresis was 75 degrees C, and you changethe critical limit to 90 degrees C, then the hysteresis willautomatically change to 85 degrees C.
  • All 3 hysteresis can’t be set independently. We decided to maketemp1_crit_hyst writable, while temp1_min_hyst and temp1_max_hyst areread-only. Setting temp1_crit_hyst writes the difference betweentemp1_crit_hyst and temp1_crit into the chip, and the same relativehysteresis applies automatically to the low and high limits.
  • The limits should be set before the hysteresis.