cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

lm87.rst (3109B)


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