blob: a2339fd9acb97019d70eeaa4b2f05c08546f310b [file] [log] [blame]
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +00001Kernel driver lm87
2==================
3
4Supported chips:
5 * National Semiconductor LM87
6 Prefix: 'lm87'
Jean Delvarec7fa3732007-10-09 15:22:22 +02007 Addresses scanned: I2C 0x2c - 0x2e
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +00008 Datasheet: http://www.national.com/pf/LM/LM87.html
Jean Delvarec7fa3732007-10-09 15:22:22 +02009 * Analog Devices ADM1024
10 Prefix: 'adm1024'
11 Addresses scanned: I2C 0x2c - 0x2e
12 Datasheet: http://www.analog.com/en/prod/0,2877,ADM1024,00.html
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000013
14Authors:
15 Frodo Looijaard <frodol@dds.nl>,
16 Philip Edelbrock <phil@netroedge.com>,
17 Mark Studebaker <mdsxyz123@yahoo.com>,
18 Stephen Rousset <stephen.rousset@rocketlogix.com>,
19 Dan Eaton <dan.eaton@rocketlogix.com>,
Jean Delvare7c81c602014-01-29 20:40:08 +010020 Jean Delvare <jdelvare@suse.de>,
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000021 Original 2.6 port Jeff Oliver
22
23Description
24-----------
25
Jean Delvarec7fa3732007-10-09 15:22:22 +020026This driver implements support for the National Semiconductor LM87
27and the Analog Devices ADM1024.
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000028
29The LM87 implements up to three temperature sensors, up to two fan
30rotation speed sensors, up to seven voltage sensors, alarms, and some
Jean Delvarec7fa3732007-10-09 15:22:22 +020031miscellaneous stuff. The ADM1024 is fully compatible.
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000032
33Temperatures are measured in degrees Celsius. Each input has a high
34and low alarm settings. A high limit produces an alarm when the value
35goes above it, and an alarm is also produced when the value goes below
36the low limit.
37
38Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
39triggered if the rotation speed has dropped below a programmable limit. Fan
40readings can be divided by a programmable divider (1, 2, 4 or 8) to give
41the readings more range or accuracy. Not all RPM values can accurately be
42represented, so some rounding is done. With a divider of 2, the lowest
43representable value is around 2600 RPM.
44
45Voltage sensors (also known as IN sensors) report their values in
46volts. An alarm is triggered if the voltage has crossed a programmable
47minimum or maximum limit. Note that minimum in this case always means
48'closest to zero'; this is important for negative voltage measurements.
49
50If an alarm triggers, it will remain triggered until the hardware register
51is read at least once. This means that the cause for the alarm may
52already have disappeared! Note that in the current implementation, all
53hardware registers are read whenever any data is read (unless it is less
54than 1.0 seconds since the last update). This means that you can easily
55miss once-only alarms.
56
57The lm87 driver only updates its values each 1.0 seconds; reading it more
58often will do no harm, but will return 'old' values.
59
60
61Hardware Configurations
62-----------------------
63
64The LM87 has four pins which can serve one of two possible functions,
65depending on the hardware configuration.
66
67Some functions share pins, so not all functions are available at the same
Ben Hutchings47064d62008-10-17 17:51:12 +020068time. Which are depends on the hardware setup. This driver normally
69assumes that firmware configured the chip correctly. Where this is not
70the case, platform code must set the I2C client's platform_data to point
71to a u8 value to be written to the channel register.
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000072
73For reference, here is the list of exclusive functions:
74 - in0+in5 (default) or temp3
75 - fan1 (default) or in6
76 - fan2 (default) or in7
77 - VID lines (default) or IRQ lines (not handled by this driver)