root/lm-sensors/trunk/doc/chips/adm9240 @ 3007

Revision 3007, 23.9 KB (checked in by khali, 8 years ago)

Backport the cleanups and corrections Rudolf Marek and I did when
porting the chips documentation to Linux 2.6.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1Kernel driver `adm9240.o'
2=========================
3
4Status: Complete and tested
5
6Supported chips:
7  * Analog Devices ADM9240
8    Prefix: 'adm9240'
9    Addresses scanned: I2C 0x2c - 0x2f
10    Datasheet: Publicly available at the Analog Devices website
11  * Dallas Semiconductor DS1780
12    Prefix: 'ds1780'
13    Addresses scanned: I2C 0x2c - 0x2f
14    Datasheet: Publicly available at the Dallas Semiconductor website
15  * National Semiconductor LM81
16    Prefix: 'lm81'
17    Addresses scanned: I2C 0x2c - 0x2f
18    Datasheet: Publicly available at the National Semiconductor website
19
20
21Author: Frodo Looijaard <frodol@dds.nl> and Philip Edelbrock
22        <phil@netroedge.com>
23
24
25Module Parameters
26-----------------
27
28* force: short array (min = 1, max = 48)
29  List of adapter,address pairs to boldly assume to be present
30* force_adm9240: short array (min = 1, max = 48)
31  List of adapter,address pairs which are unquestionably assumed to contain
32  a `adm9240' chip
33* force_ds1780: short array (min = 1, max = 48)
34  List of adapter,address pairs which are unquestionably assumed to contain
35  a `ds1780' chip
36* force_lm81: short array (min = 1, max = 48)
37  List of adapter,address pairs which are unquestionably assumed to contain
38  a `lm81' chip
39* ignore: short array (min = 1, max = 48)
40  List of adapter,address pairs not to scan
41* ignore_range: short array (min = 1, max = 48)
42  List of adapter,start-addr,end-addr triples not to scan
43* probe: short array (min = 1, max = 48)
44  List of adapter,address pairs to scan additionally
45* probe_range: short array (min = 1, max = 48)
46  List of adapter,start-addr,end-addr triples to scan additionally
47
48
49Description
50-----------
51
52This driver implements support for the Analog Devices ADM9240,
53Dallas Semiconductor DS1780, and National Semiconductor LM81 chips.
54These chips appear to be completely
55identical, except for the manufacturer IDs encoded in two registers, and
56the speed with which they update their sensor readings.
57
58The chips implement six voltage sensors, a temperature sensor,
59two fan rotation speed sensors, VID lines and some miscellaneous stuff.
60
61Temperatures are measured in degrees Celsius. An alarm is triggered whenever
62the temperature is above the hot limit, and will continue to be generated
63until the temperature has dropped beneath the hysteresis limit. Measurements
64are guaranteed between -40 and +125 degrees. The current temperature
65has a resolution of 0.5 degrees, the limits of 1 degree.
66
67Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
68triggered if the rotation speed has dropped below a programmable limit. Fan
69readings can be divided by a programmable divider (1, 2, 4 or 8) to give
70the readings more range or accuracy. Not all RPM values can accurately be
71represented, so some rounding is done. With a divider of 2, the lowest
72representable value is around 2600 RPM.
73
74Voltage sensors (also known as IN sensors) report their values in volts.
75An alarm is triggered if the voltage has crossed a programmable minimum
76or maximum limit. Note that minimum in this case always means 'closest to
77zero'; this is important for negative voltage measurements.
78IMPORTANT: The current voltage measurement system is very probably broken.
79Please report back to us if you have a ADM9240 or DS1780!
80
81The VID lines encode the core voltage value: the voltage level your processor
82should work with. This is hardcoded by the mainboard and/or processor itself.
83It is a value in volts. When it is unconnected, you will often find the
84value 3.50 V here.
85
86The analog output can be programmed separatedly. It can take values
87between 0 and 255. What it actually does is mainboard-dependent; it
88might influence the fan speed. Please report to us whether this is
89the case with your ADM9240.
90
91In addition to the alarms described above, the CHAS alarm triggers
92if your computer case is open.
93
94If an alarm triggers, it will remain triggered until the hardware register
95is read at least once. This means that the cause for the alarm may
96already have disappeared!  Note that in the current implementation, all
97hardware registers are read whenever any data is read (unless it is less
98than 1.5 seconds since the last update). This means that you can easily
99miss once-only alarms.
100
101Thes ADM9240 only updates its values every 0.5 seconds; the DS1780 one
102every 2 seconds; and the LM81 every 0.4 seconds.
103Reading them more often will do no harm, but will return
104'old' values. (NB: theoretically, this could be done much faster for the
105ADM9240, but there is no real reason to do so, and this way the SMBus use
106is kept within reasonable limits)
107
108
109Chip Features
110-------------
111
112Chip `adm9240'
113             LABEL        LABEL CLASS      COMPUTE CLASS ACCESS MAGNITUDE
114              2.5V               NONE               NONE     R     2
115             Vccp1               NONE               NONE     R     2
116              3.3V               NONE               NONE     R     2
117                5V               NONE               NONE     R     2
118               12V               NONE               NONE     R     2
119             Vccp2               NONE               NONE     R     2
120          2.5V_min               2.5V               2.5V     RW    2
121         Vccp1_min              Vccp1              Vccp1     RW    2
122          3.3V_min               3.3V               3.3V     RW    2
123            5V_min                 5V                 5V     RW    2
124           12V_min                12V                12V     RW    2
125         Vccp2_min              Vccp2              Vccp2     RW    2
126          2.5V_max               2.5V               2.5V     RW    2
127         Vccp1_max              Vccp1              Vccp1     RW    2
128          3.3V_max               3.3V               3.3V     RW    2
129            5V_max                 5V                 5V     RW    2
130           12V_max                12V                12V     RW    2
131         Vccp2_max              Vccp2              Vccp2     RW    2
132              fan1               NONE               NONE     R     0
133              fan2               NONE               NONE     R     0
134          fan1_min               fan1               fan1     RW    0
135          fan2_min               fan2               fan2     RW    0
136              temp               NONE               NONE     R     1
137         temp_hyst               temp               temp     RW    1
138         temp_over               temp               temp     RW    1
139               vid               NONE               NONE     R     2
140          fan1_div               fan1               NONE     RW    0
141          fan2_div               fan2               NONE     RW    0
142            alarms               NONE               NONE     R     0
143        analog_out               NONE               NONE     RW    0
144
145             LABEL                          FEATURE SYMBOL        SYSCTL FILE:NR
146              2.5V                     SENSORS_ADM9240_IN0               2.5V:3
147             Vccp1                     SENSORS_ADM9240_IN1              Vccp1:3
148              3.3V                     SENSORS_ADM9240_IN2               3.3V:3
149                5V                     SENSORS_ADM9240_IN3                 5V:3
150               12V                     SENSORS_ADM9240_IN4                12V:3
151             Vccp2                     SENSORS_ADM9240_IN5              Vccp2:3
152          2.5V_min                 SENSORS_ADM9240_IN0_MIN               2.5V:1
153         Vccp1_min                 SENSORS_ADM9240_IN1_MIN              Vccp1:1
154          3.3V_min                 SENSORS_ADM9240_IN2_MIN               3.3V:1
155            5V_min                 SENSORS_ADM9240_IN3_MIN                 5V:1
156           12V_min                 SENSORS_ADM9240_IN4_MIN                12V:1
157         Vccp2_min                 SENSORS_ADM9240_IN5_MIN              Vccp2:1
158          2.5V_max                 SENSORS_ADM9240_IN0_MAX               2.5V:2
159         Vccp1_max                 SENSORS_ADM9240_IN1_MAX              Vccp1:2
160          3.3V_max                 SENSORS_ADM9240_IN2_MAX               3.3V:2
161            5V_max                 SENSORS_ADM9240_IN3_MAX                 5V:2
162           12V_max                 SENSORS_ADM9240_IN4_MAX                12V:2
163         Vccp2_max                 SENSORS_ADM9240_IN5_MAX              Vccp2:2
164              fan1                    SENSORS_ADM9240_FAN1               fan1:2
165              fan2                    SENSORS_ADM9240_FAN2               fan2:2
166          fan1_min                SENSORS_ADM9240_FAN1_MIN               fan1:1
167          fan2_min                SENSORS_ADM9240_FAN2_MIN               fan2:1
168              temp                    SENSORS_ADM9240_TEMP               temp:3
169         temp_hyst               SENSORS_ADM9240_TEMP_HYST               temp:2
170         temp_over               SENSORS_ADM9240_TEMP_OVER               temp:1
171               vid                     SENSORS_ADM9240_VID                vid:1
172          fan1_div                SENSORS_ADM9240_FAN1_DIV            fan_div:1
173          fan2_div                SENSORS_ADM9240_FAN2_DIV            fan_div:2
174            alarms                  SENSORS_ADM9240_ALARMS             alarms:1
175        analog_out              SENSORS_ADM9240_ANALOG_OUT         analog_out:1
176
177
178Chip `ds1780'
179             LABEL        LABEL CLASS      COMPUTE CLASS ACCESS MAGNITUDE
180              2.5V               NONE               NONE     R     2
181             Vccp1               NONE               NONE     R     2
182              3.3V               NONE               NONE     R     2
183                5V               NONE               NONE     R     2
184               12V               NONE               NONE     R     2
185             Vccp2               NONE               NONE     R     2
186          2.5V_min               2.5V               2.5V     RW    2
187         Vccp1_min              Vccp1              Vccp1     RW    2
188          3.3V_min               3.3V               3.3V     RW    2
189            5V_min                 5V                 5V     RW    2
190           12V_min                12V                12V     RW    2
191         Vccp2_min              Vccp2              Vccp2     RW    2
192          2.5V_max               2.5V               2.5V     RW    2
193         Vccp1_max              Vccp1              Vccp1     RW    2
194          3.3V_max               3.3V               3.3V     RW    2
195            5V_max                 5V                 5V     RW    2
196           12V_max                12V                12V     RW    2
197         Vccp2_max              Vccp2              Vccp2     RW    2
198              fan1               NONE               NONE     R     0
199              fan2               NONE               NONE     R     0
200          fan1_min               fan1               fan1     RW    0
201          fan2_min               fan2               fan2     RW    0
202              temp               NONE               NONE     R     1
203         temp_hyst               temp               temp     RW    1
204         temp_over               temp               temp     RW    1
205               vid               NONE               NONE     R     2
206          fan1_div               fan1               NONE     RW    0
207          fan2_div               fan2               NONE     RW    0
208            alarms               NONE               NONE     R     0
209        analog_out               NONE               NONE     RW    0
210
211             LABEL                          FEATURE SYMBOL        SYSCTL FILE:NR
212              2.5V                      SENSORS_DS1780_IN0               2.5V:3
213             Vccp1                      SENSORS_DS1780_IN1              Vccp1:3
214              3.3V                      SENSORS_DS1780_IN2               3.3V:3
215                5V                      SENSORS_DS1780_IN3                 5V:3
216               12V                      SENSORS_DS1780_IN4                12V:3
217             Vccp2                      SENSORS_DS1780_IN5              Vccp2:3
218          2.5V_min                  SENSORS_DS1780_IN0_MIN               2.5V:1
219         Vccp1_min                  SENSORS_DS1780_IN1_MIN              Vccp1:1
220          3.3V_min                  SENSORS_DS1780_IN2_MIN               3.3V:1
221            5V_min                  SENSORS_DS1780_IN3_MIN                 5V:1
222           12V_min                  SENSORS_DS1780_IN4_MIN                12V:1
223         Vccp2_min                  SENSORS_DS1780_IN5_MIN              Vccp2:1
224          2.5V_max                  SENSORS_DS1780_IN0_MAX               2.5V:2
225         Vccp1_max                  SENSORS_DS1780_IN1_MAX              Vccp1:2
226          3.3V_max                  SENSORS_DS1780_IN2_MAX               3.3V:2
227            5V_max                  SENSORS_DS1780_IN3_MAX                 5V:2
228           12V_max                  SENSORS_DS1780_IN4_MAX                12V:2
229         Vccp2_max                  SENSORS_DS1780_IN5_MAX              Vccp2:2
230              fan1                     SENSORS_DS1780_FAN1               fan1:2
231              fan2                     SENSORS_DS1780_FAN2               fan2:2
232          fan1_min                 SENSORS_DS1780_FAN1_MIN               fan1:1
233          fan2_min                 SENSORS_DS1780_FAN2_MIN               fan2:1
234              temp                     SENSORS_DS1780_TEMP               temp:3
235         temp_hyst                SENSORS_DS1780_TEMP_HYST               temp:2
236         temp_over                SENSORS_DS1780_TEMP_OVER               temp:1
237               vid                      SENSORS_DS1780_VID                vid:1
238          fan1_div                 SENSORS_DS1780_FAN1_DIV            fan_div:1
239          fan2_div                 SENSORS_DS1780_FAN2_DIV            fan_div:2
240            alarms                   SENSORS_DS1780_ALARMS             alarms:1
241        analog_out               SENSORS_DS1780_ANALOG_OUT         analog_out:1
242
243
244Chip `lm81'
245             LABEL        LABEL CLASS      COMPUTE CLASS ACCESS MAGNITUDE
246              2.5V               NONE               NONE     R     2
247             Vccp1               NONE               NONE     R     2
248              3.3V               NONE               NONE     R     2
249                5V               NONE               NONE     R     2
250               12V               NONE               NONE     R     2
251             Vccp2               NONE               NONE     R     2
252          2.5V_min               2.5V               2.5V     RW    2
253         Vccp1_min              Vccp1              Vccp1     RW    2
254          3.3V_min               3.3V               3.3V     RW    2
255            5V_min                 5V                 5V     RW    2
256           12V_min                12V                12V     RW    2
257         Vccp2_min              Vccp2              Vccp2     RW    2
258          2.5V_max               2.5V               2.5V     RW    2
259         Vccp1_max              Vccp1              Vccp1     RW    2
260          3.3V_max               3.3V               3.3V     RW    2
261            5V_max                 5V                 5V     RW    2
262           12V_max                12V                12V     RW    2
263         Vccp2_max              Vccp2              Vccp2     RW    2
264              fan1               NONE               NONE     R     0
265              fan2               NONE               NONE     R     0
266          fan1_min               fan1               fan1     RW    0
267          fan2_min               fan2               fan2     RW    0
268              temp               NONE               NONE     R     1
269         temp_hyst               temp               temp     RW    1
270         temp_over               temp               temp     RW    1
271               vid               NONE               NONE     R     2
272          fan1_div               fan1               NONE     RW    0
273          fan2_div               fan2               NONE     RW    0
274            alarms               NONE               NONE     R     0
275        analog_out               NONE               NONE     RW    0
276
277             LABEL                          FEATURE SYMBOL        SYSCTL FILE:NR
278              2.5V                     SENSORS_ADM9240_IN0               2.5V:3
279             Vccp1                     SENSORS_ADM9240_IN1              Vccp1:3
280              3.3V                     SENSORS_ADM9240_IN2               3.3V:3
281                5V                     SENSORS_ADM9240_IN3                 5V:3
282               12V                     SENSORS_ADM9240_IN4                12V:3
283             Vccp2                     SENSORS_ADM9240_IN5              Vccp2:3
284          2.5V_min                 SENSORS_ADM9240_IN0_MIN               2.5V:1
285         Vccp1_min                 SENSORS_ADM9240_IN1_MIN              Vccp1:1
286          3.3V_min                 SENSORS_ADM9240_IN2_MIN               3.3V:1
287            5V_min                 SENSORS_ADM9240_IN3_MIN                 5V:1
288           12V_min                 SENSORS_ADM9240_IN4_MIN                12V:1
289         Vccp2_min                 SENSORS_ADM9240_IN5_MIN              Vccp2:1
290          2.5V_max                 SENSORS_ADM9240_IN0_MAX               2.5V:2
291         Vccp1_max                 SENSORS_ADM9240_IN1_MAX              Vccp1:2
292          3.3V_max                 SENSORS_ADM9240_IN2_MAX               3.3V:2
293            5V_max                 SENSORS_ADM9240_IN3_MAX                 5V:2
294           12V_max                 SENSORS_ADM9240_IN4_MAX                12V:2
295         Vccp2_max                 SENSORS_ADM9240_IN5_MAX              Vccp2:2
296              fan1                    SENSORS_ADM9240_FAN1               fan1:2
297              fan2                    SENSORS_ADM9240_FAN2               fan2:2
298          fan1_min                SENSORS_ADM9240_FAN1_MIN               fan1:1
299          fan2_min                SENSORS_ADM9240_FAN2_MIN               fan2:1
300              temp                    SENSORS_ADM9240_TEMP               temp:3
301         temp_hyst               SENSORS_ADM9240_TEMP_HYST               temp:2
302         temp_over               SENSORS_ADM9240_TEMP_OVER               temp:1
303               vid                     SENSORS_ADM9240_VID                vid:1
304          fan1_div                SENSORS_ADM9240_FAN1_DIV            fan_div:1
305          fan2_div                SENSORS_ADM9240_FAN2_DIV            fan_div:2
306            alarms                  SENSORS_ADM9240_ALARMS             alarms:1
307        analog_out              SENSORS_ADM9240_ANALOG_OUT         analog_out:1
308
309
310
311
312Old Documentation
313-----------------
314
315Supports the Analog Devices ADM9240 and the Dallas Semiconductor DS1780.
316These chips are apparently identical except for the manufacturer ID
317register.
318The proc directory will be adm9240-i2c-x-xx for the adm9240 and
319ds1780-i2c-x-xx for the ds1780.
320
321-----------------------------------------------------------------------
322
323This file documents the adm9240 directories for the Analog Devices
324ADM9240 hardware health monitoring chip found on some Intel mainboards
325(and others?).
326
327There will be one directory created for each detected ADM9240 chip.
328Each chip must be on the SMBus. Directories are called things
329like adm9240-i2c-1-2c. /proc/sys/dev/sensors/chips contains the SYSCTL
330values for all chip directories.
331
332Within each ADM9240 directory, you can find the following files:
333* alarms (ADM9240_SYSCTL_ALARMS)
334  A number which indicates which alarms are on. An alarm gets triggered when
335  some limit has been crossed. This number is composed from a 16 bit
336  value which is the combination of the Interrupt Status Register 1
337  (low byte) and 2 (high byte).
338  This file can not be written to.
339  The number is the logical OR of the following components (bit #
340  followed by a description):
341 
3420 +2.5 V_Error Read Only A "1" indicates a high or low limit has been exceeded.
3431 VCCP_Error Read Only A "1" indicates a high or low limit has been exceeded.
3442 +3.3 V_Error Read Only A "1" indicates a high or low limit has been exceeded.
3453 +5 V_Error Read Only A "1" indicates a high or low limit has been exceeded.
3464 Temp_Error Read Only A "1" indicates that a temperature interrupt has been set.
3475 Reserved Read Only Undefined.
3486 FAN1_Error Read Only A "1" indicates that a fan count limit has been exceeded.
3497 FAN2_Error Read Only A "1" indicates that a fan count limit has been exceeded.
3508 +12 V_Error Read Only A "1" indicates a high or low limit has been exceeded.
3519 VCCP2_Error Read Only A "1" indicates a high or low limit has been exceeded.
35210 Reserved Read Only Undefined.
35311 Reserved Read Only Undefined.
35412 Chassis_Error Read Only A "1" indicates chassis intrusion has gone high.
35513 Reserved Read Only Undefined.
35614 Reserved Read Only Undefined.
35715 Reserved Read Only Undefined.
358
359  If accessed through sysctl, this value is a long.
360* fan[1-3] (ADM9240_SYSCTL_FAN[1-2])
361  A list of two numbers. The first is the minimum fan rotation limit; the
362  second is the current fan rotation speed. Both are in RPM (rotations per
363  minute). An alarm is triggered if the rotation speed drops below the
364  limit. The first value can be changed. Not all RPM values can accurately
365  be represented, so some rounding is done.
366  If accessed through sysctl, this is a list of longs.
367* fan_div (LM78_SYSCTL_FAN_DIV)
368  A list of two numbers, one for each fan. Each number can be either 1, 2,
369  4 or 8. It is the internal scaling factor used for the fan rotations. If
370  you change this number, the fan readings get more or less detailed, but
371  the range in which they can be read too. Higher numbers give better
372  resolution, but less range. The first two numbers can be changed, the
373  third not.
374  If accessed through sysctl, this is a list of longs.
375* 2.5V, Vccp1, 3.3V, 5V, 12V, and Vccp2 (ADM9240_SYSCTL_IN[0-5] in the
376  order shown)
377  A list of three numbers. The first is the minimum limit, the second is the
378  maximum limit, and the third is the current value.  Note that
379  minimum means 'closest to zero'; so if the normal value equals -10, a
380  minimum could equal -9, and a maximum -11. Vccp1 and Vccp2 reflect core
381  voltages; they are by default set from the vid values, or set to 2.80V
382  if the vid lines seem to be unconnected. Not all voltage values
383  can be accurately represented, so some rounding is done.
384  The first two numbers can be changed, the third not.
385  If accessed through sysctl, this is a list of longs, each being the voltage
386  times 100.
387* temp
388  A list of three numbers. The first number is the Overtemperature Shutdown
389  value; the second is the Hysteresis value and the third number is the
390  current value. The first two values can be modified. All values are in
391  degrees Celsius. An alarm is issued when the temperature first gets above
392  the Overtemperature Shutdown value; no more alarms are issued until the
393  temperature gets below the Hysteresis value, at which moment another alarm
394  is issued, and the state is reset. A more useful behaviour can be found
395  by setting the Hysteresis value to +127 degrees Celsius; in this case,
396  alarms are issued during all the time when the actual temperature is
397  above the Overtemperature Shutdown value.
398  The first two numbers can be changed, the third not.
399  If accessed through sysctl, this is a list of longs, each being the
400  temperature in degrees Celsius times 10.
401* vid
402  The core voltage value (the voltage level your processor should work with),
403  in volts. This is the value IN0 and IN1 are initialized to. If unconnected,
404  it usually reads 3.50V.
405  This number can not be changed.
406  If accessed through sysctl, this is a long, being the voltage times 100.
407* analog_out
408   This is feature is specific to the ADM9240.  It is a DAC voltage
409   control register for the Analog-Out pin.  Valid values are from 255
410   to 0 (with 255 being the highest voltage, and 0 the lowest).  From
411   the docs: "The ADM9240 has a single analog output from an unsigned
412   8-bit DAC which produces 0 V - 1.25 V."
413
414The data for each ADM9240 is updated each 1.5 seconds,
415but only if it is actually read.
416
417Note: Much of this documentation is copied from the LM78 documenation
418(the device from which most featuers of the ADM9240 is modelled from).
419The maintainer of the ADM9240 is Philip Edelbrock
420<phil@netroedge.com>; please forward corrections, suggestions, etc.
421to him.  For further technical information on this chip, I suggest
422getting the Acrobat PDF documentation from www.analog.com.
423
424Dallas documentation is at http://www.dalsemi.com.
Note: See TracBrowser for help on using the browser.