| Kernel driver lm83 | 
 | ================== | 
 |  | 
 | Supported chips: | 
 |   * National Semiconductor LM83 | 
 |     Prefix: 'lm83' | 
 |     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | 
 |     Datasheet: Publicly available at the National Semiconductor website | 
 |                http://www.national.com/pf/LM/LM83.html | 
 |   * National Semiconductor LM82 | 
 |     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | 
 |     Datasheet: Publicly available at the National Semiconductor website | 
 |                http://www.national.com/pf/LM/LM82.html | 
 |  | 
 |  | 
 | Author: Jean Delvare <khali@linux-fr.org> | 
 |  | 
 | Description | 
 | ----------- | 
 |  | 
 | The LM83 is a digital temperature sensor. It senses its own temperature as | 
 | well as the temperature of up to three external diodes. The LM82 is | 
 | a stripped down version of the LM83 that only supports one external diode. | 
 | Both are compatible with many other devices such as the LM84 and all | 
 | other ADM1021 clones. The main difference between the LM83 and the LM84 | 
 | in that the later can only sense the temperature of one external diode. | 
 |  | 
 | Using the adm1021 driver for a LM83 should work, but only two temperatures | 
 | will be reported instead of four. | 
 |  | 
 | The LM83 is only found on a handful of motherboards. Both a confirmed | 
 | list and an unconfirmed list follow. If you can confirm or infirm the | 
 | fact that any of these motherboards do actually have an LM83, please | 
 | contact us. Note that the LM90 can easily be misdetected as a LM83. | 
 |  | 
 | Confirmed motherboards: | 
 |     SBS         P014 | 
 |     SBS         PSL09 | 
 |  | 
 | Unconfirmed motherboards: | 
 |     Gigabyte    GA-8IK1100 | 
 |     Iwill       MPX2 | 
 |     Soltek      SL-75DRV5 | 
 |  | 
 | The LM82 is confirmed to have been found on most AMD Geode reference | 
 | designs and test platforms. | 
 |  | 
 | The driver has been successfully tested by Magnus Forsstrรถm, who I'd | 
 | like to thank here. More testers will be of course welcome. | 
 |  | 
 | The fact that the LM83 is only scarcely used can be easily explained. | 
 | Most motherboards come with more than just temperature sensors for | 
 | health monitoring. They also have voltage and fan rotation speed | 
 | sensors. This means that temperature-only chips are usually used as | 
 | secondary chips coupled with another chip such as an IT8705F or similar | 
 | chip, which provides more features. Since systems usually need three | 
 | temperature sensors (motherboard, processor, power supply) and primary | 
 | chips provide some temperature sensors, the secondary chip, if needed, | 
 | won't have to handle more than two temperatures. Thus, ADM1021 clones | 
 | are sufficient, and there is no need for a four temperatures sensor | 
 | chip such as the LM83. The only case where using an LM83 would make | 
 | sense is on SMP systems, such as the above-mentioned Iwill MPX2, | 
 | because you want an additional temperature sensor for each additional | 
 | CPU. | 
 |  | 
 | On the SBS P014, this is different, since the LM83 is the only hardware | 
 | monitoring chipset. One temperature sensor is used for the motherboard | 
 | (actually measuring the LM83's own temperature), one is used for the | 
 | CPU. The two other sensors must be used to measure the temperature of | 
 | two other points of the motherboard. We suspect these points to be the | 
 | north and south bridges, but this couldn't be confirmed. | 
 |  | 
 | All temperature values are given in degrees Celsius. Local temperature | 
 | is given within a range of 0 to +85 degrees. Remote temperatures are | 
 | given within a range of 0 to +125 degrees. Resolution is 1.0 degree, | 
 | accuracy is guaranteed to 3.0 degrees (see the datasheet for more | 
 | details). | 
 |  | 
 | Each sensor has its own high limit, but the critical limit is common to | 
 | all four sensors. There is no hysteresis mechanism as found on most | 
 | recent temperature sensors. | 
 |  | 
 | The lm83 driver will not update its values more frequently than every | 
 | other second; reading them more often will do no harm, but will return | 
 | 'old' values. |