blob: 91063b0f4c6f196952823e7a56310c556e1c4d4c [file] [log] [blame]
Grant Coadya0ef1482005-06-03 10:05:19 +10001Kernel driver adm9240
2=====================
3
4Supported chips:
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -03005
Grant Coadya0ef1482005-06-03 10:05:19 +10006 * Analog Devices ADM9240
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -03007
Grant Coadya0ef1482005-06-03 10:05:19 +10008 Prefix: 'adm9240'
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -03009
Grant Coadya0ef1482005-06-03 10:05:19 +100010 Addresses scanned: I2C 0x2c - 0x2f
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030011
Grant Coadya0ef1482005-06-03 10:05:19 +100012 Datasheet: Publicly available at the Analog Devices website
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030013
14 http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf
Grant Coadya0ef1482005-06-03 10:05:19 +100015
16 * Dallas Semiconductor DS1780
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030017
Grant Coadya0ef1482005-06-03 10:05:19 +100018 Prefix: 'ds1780'
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030019
Grant Coadya0ef1482005-06-03 10:05:19 +100020 Addresses scanned: I2C 0x2c - 0x2f
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030021
Grant Coadya0ef1482005-06-03 10:05:19 +100022 Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030023
24 http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf
Grant Coadya0ef1482005-06-03 10:05:19 +100025
26 * National Semiconductor LM81
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030027
Grant Coadya0ef1482005-06-03 10:05:19 +100028 Prefix: 'lm81'
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030029
Grant Coadya0ef1482005-06-03 10:05:19 +100030 Addresses scanned: I2C 0x2c - 0x2f
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030031
Grant Coadya0ef1482005-06-03 10:05:19 +100032 Datasheet: Publicly available at the National Semiconductor website
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030033
34 http://www.national.com/ds.cgi/LM/LM81.pdf
Grant Coadya0ef1482005-06-03 10:05:19 +100035
36Authors:
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -030037 - Frodo Looijaard <frodol@dds.nl>,
38 - Philip Edelbrock <phil@netroedge.com>,
39 - Michiel Rook <michiel@grendelproject.nl>,
40 - Grant Coady <gcoady.lk@gmail.com> with guidance
41 from Jean Delvare <jdelvare@suse.de>
Grant Coadya0ef1482005-06-03 10:05:19 +100042
43Interface
44---------
45The I2C addresses listed above assume BIOS has not changed the
46chip MSB 5-bit address. Each chip reports a unique manufacturer
47identification code as well as the chip revision/stepping level.
48
49Description
50-----------
51[From ADM9240] The ADM9240 is a complete system hardware monitor for
52microprocessor-based systems, providing measurement and limit comparison
53of up to four power supplies and two processor core voltages, plus
54temperature, two fan speeds and chassis intrusion. Measured values can
55be read out via an I2C-compatible serial System Management Bus, and values
56for limit comparisons can be programmed in over the same serial bus. The
57high speed successive approximation ADC allows frequent sampling of all
58analog channels to ensure a fast interrupt response to any out-of-limit
59measurement.
60
61The ADM9240, DS1780 and LM81 are register compatible, the following
62details are common to the three chips. Chip differences are described
63after this section.
64
65
66Measurements
67------------
68The measurement cycle
69
70The adm9240 driver will take a measurement reading no faster than once
71each two seconds. User-space may read sysfs interface faster than the
72measurement update rate and will receive cached data from the most
73recent measurement.
74
75ADM9240 has a very fast 320us temperature and voltage measurement cycle
76with independent fan speed measurement cycles counting alternating rising
77edges of the fan tacho inputs.
78
79DS1780 measurement cycle is about once per second including fan speed.
80
81LM81 measurement cycle is about once per 400ms including fan speed.
82The LM81 12-bit extended temperature measurement mode is not supported.
83
84Temperature
85-----------
86On chip temperature is reported as degrees Celsius as 9-bit signed data
87with resolution of 0.5 degrees Celsius. High and low temperature limits
88are 8-bit signed data with resolution of one degree Celsius.
89
90Temperature alarm is asserted once the temperature exceeds the high limit,
91and is cleared when the temperature falls below the temp1_max_hyst value.
92
93Fan Speed
94---------
95Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz
96clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by:
97
98rpm = (22500 * 60) / (count * divider)
99
100Automatic fan clock divider
101
102 * User sets 0 to fan_min limit
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300103
Grant Coadya0ef1482005-06-03 10:05:19 +1000104 - low speed alarm is disabled
105 - fan clock divider not changed
106 - auto fan clock adjuster enabled for valid fan speed reading
107
108 * User sets fan_min limit too low
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300109
Grant Coadya0ef1482005-06-03 10:05:19 +1000110 - low speed alarm is enabled
111 - fan clock divider set to max
112 - fan_min set to register value 254 which corresponds
113 to 664 rpm on adm9240
114 - low speed alarm will be asserted if fan speed is
115 less than minimum measurable speed
116 - auto fan clock adjuster disabled
117
118 * User sets reasonable fan speed
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300119
Grant Coadya0ef1482005-06-03 10:05:19 +1000120 - low speed alarm is enabled
121 - fan clock divider set to suit fan_min
122 - auto fan clock adjuster enabled: adjusts fan_min
123
124 * User sets unreasonably high low fan speed limit
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300125
Grant Coadya0ef1482005-06-03 10:05:19 +1000126 - resolution of the low speed limit may be reduced
127 - alarm will be asserted
128 - auto fan clock adjuster enabled: adjusts fan_min
129
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300130 * fan speed may be displayed as zero until the auto fan clock divider
131 adjuster brings fan speed clock divider back into chip measurement
132 range, this will occur within a few measurement cycles.
Grant Coadya0ef1482005-06-03 10:05:19 +1000133
134Analog Output
135-------------
136An analog output provides a 0 to 1.25 volt signal intended for an external
137fan speed amplifier circuit. The analog output is set to maximum value on
138power up or reset. This doesn't do much on the test Intel SE440BX-2.
139
140Voltage Monitor
141
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300142^^^^^^^^^^^^^^^
143
Grant Coadya0ef1482005-06-03 10:05:19 +1000144Voltage (IN) measurement is internally scaled:
145
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300146 === =========== =========== ========= ==========
Grant Coadya0ef1482005-06-03 10:05:19 +1000147 nr label nominal maximum resolution
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300148 mV mV mV
149 === =========== =========== ========= ==========
Grant Coadya0ef1482005-06-03 10:05:19 +1000150 0 +2.5V 2500 3320 13.0
151 1 Vccp1 2700 3600 14.1
152 2 +3.3V 3300 4380 17.2
153 3 +5V 5000 6640 26.0
154 4 +12V 12000 15940 62.5
155 5 Vccp2 2700 3600 14.1
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300156 === =========== =========== ========= ==========
Grant Coadya0ef1482005-06-03 10:05:19 +1000157
158The reading is an unsigned 8-bit value, nominal voltage measurement is
159represented by a reading of 192, being 3/4 of the measurement range.
160
161An alarm is asserted for any voltage going below or above the set limits.
162
163The driver reports and accepts voltage limits scaled to the above table.
164
165VID Monitor
166-----------
167The chip has five inputs to read the 5-bit VID and reports the mV value
168based on detected CPU type.
169
170Chassis Intrusion
171-----------------
172An alarm is asserted when the CI pin goes active high. The ADM9240
173Datasheet has an example of an external temperature sensor driving
174this pin. On an Intel SE440BX-2 the Chassis Intrusion header is
175connected to a normally open switch.
176
177The ADM9240 provides an internal open drain on this line, and may output
178a 20 ms active low pulse to reset an external Chassis Intrusion latch.
179
Jean Delvare0de2b242011-01-12 21:55:09 +0100180Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file.
Grant Coadya0ef1482005-06-03 10:05:19 +1000181
182Alarm flags reported as 16-bit word
183
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300184 === ============= ==========================
Grant Coadya0ef1482005-06-03 10:05:19 +1000185 bit label comment
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300186 === ============= ==========================
Grant Coadya0ef1482005-06-03 10:05:19 +1000187 0 +2.5 V_Error high or low limit exceeded
188 1 VCCP_Error high or low limit exceeded
189 2 +3.3 V_Error high or low limit exceeded
190 3 +5 V_Error high or low limit exceeded
191 4 Temp_Error temperature error
192 6 FAN1_Error fan low limit exceeded
193 7 FAN2_Error fan low limit exceeded
194 8 +12 V_Error high or low limit exceeded
195 9 VCCP2_Error high or low limit exceeded
196 12 Chassis_Error CI pin went high
Mauro Carvalho Chehabb04f2f72019-04-17 06:46:28 -0300197 === ============= ==========================
Grant Coadya0ef1482005-06-03 10:05:19 +1000198
199Remaining bits are reserved and thus undefined. It is important to note
200that alarm bits may be cleared on read, user-space may latch alarms and
201provide the end-user with a method to clear alarm memory.