Back to home page

OSCL-LXR

 
 

    


0001 Kernel driver lm87
0002 ==================
0003 
0004 Supported chips:
0005 
0006   * National Semiconductor LM87
0007 
0008     Prefix: 'lm87'
0009 
0010     Addresses scanned: I2C 0x2c - 0x2e
0011 
0012     Datasheet: http://www.national.com/pf/LM/LM87.html
0013 
0014   * Analog Devices ADM1024
0015 
0016     Prefix: 'adm1024'
0017 
0018     Addresses scanned: I2C 0x2c - 0x2e
0019 
0020     Datasheet: https://www.analog.com/en/prod/0,2877,ADM1024,00.html
0021 
0022 
0023 Authors:
0024         - Frodo Looijaard <frodol@dds.nl>,
0025         - Philip Edelbrock <phil@netroedge.com>,
0026         - Mark Studebaker <mdsxyz123@yahoo.com>,
0027         - Stephen Rousset <stephen.rousset@rocketlogix.com>,
0028         - Dan Eaton <dan.eaton@rocketlogix.com>,
0029         - Jean Delvare <jdelvare@suse.de>,
0030         - Original 2.6 port Jeff Oliver
0031 
0032 Description
0033 -----------
0034 
0035 This driver implements support for the National Semiconductor LM87
0036 and the Analog Devices ADM1024.
0037 
0038 The LM87 implements up to three temperature sensors, up to two fan
0039 rotation speed sensors, up to seven voltage sensors, alarms, and some
0040 miscellaneous stuff. The ADM1024 is fully compatible.
0041 
0042 Temperatures are measured in degrees Celsius. Each input has a high
0043 and low alarm settings. A high limit produces an alarm when the value
0044 goes above it, and an alarm is also produced when the value goes below
0045 the low limit.
0046 
0047 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
0048 triggered if the rotation speed has dropped below a programmable limit. Fan
0049 readings can be divided by a programmable divider (1, 2, 4 or 8) to give
0050 the readings more range or accuracy. Not all RPM values can accurately be
0051 represented, so some rounding is done. With a divider of 2, the lowest
0052 representable value is around 2600 RPM.
0053 
0054 Voltage sensors (also known as IN sensors) report their values in
0055 volts. An alarm is triggered if the voltage has crossed a programmable
0056 minimum or maximum limit. Note that minimum in this case always means
0057 'closest to zero'; this is important for negative voltage measurements.
0058 
0059 If an alarm triggers, it will remain triggered until the hardware register
0060 is read at least once. This means that the cause for the alarm may
0061 already have disappeared! Note that in the current implementation, all
0062 hardware registers are read whenever any data is read (unless it is less
0063 than 1.0 seconds since the last update). This means that you can easily
0064 miss once-only alarms.
0065 
0066 The lm87 driver only updates its values each 1.0 seconds; reading it more
0067 often will do no harm, but will return 'old' values.
0068 
0069 
0070 Hardware Configurations
0071 -----------------------
0072 
0073 The LM87 has four pins which can serve one of two possible functions,
0074 depending on the hardware configuration.
0075 
0076 Some functions share pins, so not all functions are available at the same
0077 time. Which are depends on the hardware setup. This driver normally
0078 assumes that firmware configured the chip correctly. Where this is not
0079 the case, platform code must set the I2C client's platform_data to point
0080 to a u8 value to be written to the channel register.
0081 
0082 For reference, here is the list of exclusive functions:
0083  - in0+in5 (default) or temp3
0084  - fan1 (default) or in6
0085  - fan2 (default) or in7
0086  - VID lines (default) or IRQ lines (not handled by this driver)