Back to home page

OSCL-LXR

 
 

    


0001 Kernel driver adm1021
0002 =====================
0003 
0004 Supported chips:
0005 
0006   * Analog Devices ADM1021
0007 
0008     Prefix: 'adm1021'
0009 
0010     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0011 
0012     Datasheet: Publicly available at the Analog Devices website
0013 
0014   * Analog Devices ADM1021A/ADM1023
0015 
0016     Prefix: 'adm1023'
0017 
0018     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0019 
0020     Datasheet: Publicly available at the Analog Devices website
0021 
0022   * Genesys Logic GL523SM
0023 
0024     Prefix: 'gl523sm'
0025 
0026     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0027 
0028     Datasheet:
0029 
0030   * Maxim MAX1617
0031 
0032     Prefix: 'max1617'
0033 
0034     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0035 
0036     Datasheet: Publicly available at the Maxim website
0037 
0038   * Maxim MAX1617A
0039 
0040     Prefix: 'max1617a'
0041 
0042     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0043 
0044     Datasheet: Publicly available at the Maxim website
0045 
0046   * National Semiconductor LM84
0047 
0048     Prefix: 'lm84'
0049 
0050     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0051 
0052     Datasheet: Publicly available at the National Semiconductor website
0053 
0054   * Philips NE1617
0055 
0056     Prefix: 'max1617' (probably detected as a max1617)
0057 
0058     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0059 
0060     Datasheet: Publicly available at the Philips website
0061 
0062   * Philips NE1617A
0063 
0064     Prefix: 'max1617' (probably detected as a max1617)
0065 
0066     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0067 
0068     Datasheet: Publicly available at the Philips website
0069 
0070   * TI THMC10
0071 
0072     Prefix: 'thmc10'
0073 
0074     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0075 
0076     Datasheet: Publicly available at the TI website
0077 
0078   * Onsemi MC1066
0079 
0080     Prefix: 'mc1066'
0081 
0082     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
0083 
0084     Datasheet: Publicly available at the Onsemi website
0085 
0086 
0087 Authors:
0088         - Frodo Looijaard <frodol@dds.nl>,
0089         - Philip Edelbrock <phil@netroedge.com>
0090 
0091 Module Parameters
0092 -----------------
0093 
0094 * read_only: int
0095   Don't set any values, read only mode
0096 
0097 
0098 Description
0099 -----------
0100 
0101 The chips supported by this driver are very similar. The Maxim MAX1617 is
0102 the oldest; it has the problem that it is not very well detectable. The
0103 MAX1617A solves that. The ADM1021 is a straight clone of the MAX1617A.
0104 Ditto for the THMC10. From here on, we will refer to all these chips as
0105 ADM1021-clones.
0106 
0107 The ADM1021 and MAX1617A reports a die code, which is a sort of revision
0108 code. This can help us pinpoint problems; it is not very useful
0109 otherwise.
0110 
0111 ADM1021-clones implement two temperature sensors. One of them is internal,
0112 and measures the temperature of the chip itself; the other is external and
0113 is realised in the form of a transistor-like device. A special alarm
0114 indicates whether the remote sensor is connected.
0115 
0116 Each sensor has its own low and high limits. When they are crossed, the
0117 corresponding alarm is set and remains on as long as the temperature stays
0118 out of range. Temperatures are measured in degrees Celsius. Measurements
0119 are possible between -65 and +127 degrees, with a resolution of one degree.
0120 
0121 If an alarm triggers, it will remain triggered until the hardware register
0122 is read at least once. This means that the cause for the alarm may already
0123 have disappeared!
0124 
0125 This driver only updates its values each 1.5 seconds; reading it more often
0126 will do no harm, but will return 'old' values. It is possible to make
0127 ADM1021-clones do faster measurements, but there is really no good reason
0128 for that.
0129 
0130 
0131 Netburst-based Xeon support
0132 ---------------------------
0133 
0134 Some Xeon processors based on the Netburst (early Pentium 4, from 2001 to
0135 2003) microarchitecture had real MAX1617, ADM1021, or compatible chips
0136 within them, with two temperature sensors. Other Xeon processors of this
0137 era (with 400 MHz FSB) had chips with only one temperature sensor.
0138 
0139 If you have such an old Xeon, and you get two valid temperatures when
0140 loading the adm1021 module, then things are good.
0141 
0142 If nothing happens when loading the adm1021 module, and you are certain
0143 that your specific Xeon processor model includes compatible sensors, you
0144 will have to explicitly instantiate the sensor chips from user-space. See
0145 method 4 in Documentation/i2c/instantiating-devices.rst. Possible slave
0146 addresses are 0x18, 0x1a, 0x29, 0x2b, 0x4c, or 0x4e. It is likely that
0147 only temp2 will be correct and temp1 will have to be ignored.
0148 
0149 Previous generations of the Xeon processor (based on Pentium II/III)
0150 didn't have these sensors. Next generations of Xeon processors (533 MHz
0151 FSB and faster) lost them, until the Core-based generation which
0152 introduced integrated digital thermal sensors. These are supported by
0153 the coretemp driver.