Merge tag 'mips_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
[linux-2.6-block.git] / Documentation / hwmon / asc7621.rst
CommitLineData
1288cfe0 1=====================
d58de038 2Kernel driver asc7621
1288cfe0 3=====================
d58de038
GJ
4
5Supported chips:
1288cfe0 6
d58de038 7 Andigilog aSC7621 and aSC7621a
1288cfe0 8
d58de038 9 Prefix: 'asc7621'
1288cfe0 10
d58de038 11 Addresses scanned: I2C 0x2c, 0x2d, 0x2e
1288cfe0 12
d58de038
GJ
13 Datasheet: http://www.fairview5.com/linux/asc7621/asc7621.pdf
14
15Author:
16 George Joseph
17
18Description provided by Dave Pivin @ Andigilog:
19
20Andigilog has both the PECI and pre-PECI versions of the Heceta-6, as
21Intel calls them. Heceta-6e has high frequency PWM and Heceta-6p has
22added PECI and a 4th thermal zone. The Andigilog aSC7611 is the
23Heceta-6e part and aSC7621 is the Heceta-6p part. They are both in
24volume production, shipping to Intel and their subs.
25
26We have enhanced both parts relative to the governing Intel
27specification. First enhancement is temperature reading resolution. We
28have used registers below 20h for vendor-specific functions in addition
29to those in the Intel-specified vendor range.
30
31Our conversion process produces a result that is reported as two bytes.
32The fan speed control uses this finer value to produce a "step-less" fan
33PWM output. These two bytes are "read-locked" to guarantee that once a
34high or low byte is read, the other byte is locked-in until after the
35next read of any register. So to get an atomic reading, read high or low
36byte, then the very next read should be the opposite byte. Our data
37sheet says 10-bits of resolution, although you may find the lower bits
38are active, they are not necessarily reliable or useful externally. We
39chose not to mask them.
40
41We employ significant filtering that is user tunable as described in the
42data sheet. Our temperature reports and fan PWM outputs are very smooth
43when compared to the competition, in addition to the higher resolution
44temperature reports. The smoother PWM output does not require user
45intervention.
46
47We offer GPIO features on the former VID pins. These are open-drain
48outputs or inputs and may be used as general purpose I/O or as alarm
49outputs that are based on temperature limits. These are in 19h and 1Ah.
50
51We offer flexible mapping of temperature readings to thermal zones. Any
52temperature may be mapped to any zone, which has a default assignment
53that follows Intel's specs.
54
55Since there is a fan to zone assignment that allows for the "hotter" of
56a set of zones to control the PWM of an individual fan, but there is no
57indication to the user, we have added an indicator that shows which zone
58is currently controlling the PWM for a given fan. This is in register
5900h.
60
61Both remote diode temperature readings may be given an offset value such
62that the reported reading as well as the temperature used to determine
63PWM may be offset for system calibration purposes.
64
65PECI Extended configuration allows for having more than two domains per
66PECI address and also provides an enabling function for each PECI
67address. One could use our flexible zone assignment to have a zone
68assigned to up to 4 PECI addresses. This is not possible in the default
69Intel configuration. This would be useful in multi-CPU systems with
70individual fans on each that would benefit from individual fan control.
71This is in register 0Eh.
72
73The tachometer measurement system is flexible and able to adapt to many
74fan types. We can also support pulse-stretched PWM so that 3-wire fans
75may be used. These characteristics are in registers 04h to 07h.
76
77Finally, we have added a tach disable function that turns off the tach
78measurement system for individual tachs in order to save power. That is
79in register 75h.
80
1288cfe0
MCC
81--------------------------------------------------------------------------
82
d58de038 83aSC7621 Product Description
1288cfe0 84===========================
d58de038
GJ
85
86The aSC7621 has a two wire digital interface compatible with SMBus 2.0.
87Using a 10-bit ADC, the aSC7621 measures the temperature of two remote diode
88connected transistors as well as its own die. Support for Platform
89Environmental Control Interface (PECI) is included.
90
91Using temperature information from these four zones, an automatic fan speed
92control algorithm is employed to minimize acoustic impact while achieving
93recommended CPU temperature under varying operational loads.
94
95To set fan speed, the aSC7621 has three independent pulse width modulation
96(PWM) outputs that are controlled by one, or a combination of three,
97temperature zones. Both high- and low-frequency PWM ranges are supported.
98
99The aSC7621 also includes a digital filter that can be invoked to smooth
100temperature readings for better control of fan speed and minimum acoustic
101impact.
102
103The aSC7621 has tachometer inputs to measure fan speed on up to four fans.
104Limit and status registers for all measured values are included to alert
105the system host that any measurements are outside of programmed limits
106via status registers.
107
108System voltages of VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard power are
109monitored efficiently with internal scaling resistors.
110
111Features
1288cfe0
MCC
112--------
113
d58de038
GJ
114- Supports PECI interface and monitors internal and remote thermal diodes
115- 2-wire, SMBus 2.0 compliant, serial interface
116- 10-bit ADC
117- Monitors VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard/processor supplies
118- Programmable autonomous fan control based on temperature readings
119- Noise filtering of temperature reading for fan speed control
120- 0.25C digital temperature sensor resolution
121- 3 PWM fan speed control outputs for 2-, 3- or 4-wire fans and up to 4 fan
1288cfe0 122 tachometer inputs
d58de038
GJ
123- Enhanced measured temperature to Temperature Zone assignment.
124- Provides high and low PWM frequency ranges
125- 3 GPIO pins for custom use
126- 24-Lead QSOP package
127
128Configuration Notes
129===================
130
131Except where noted below, the sysfs entries created by this driver follow
132the standards defined in "sysfs-interface".
133
134temp1_source
1288cfe0 135 = ===============================================
d58de038 136 0 (default) peci_legacy = 0, Remote 1 Temperature
1288cfe0 137 peci_legacy = 1, PECI Processor Temperature 0
d58de038
GJ
138 1 Remote 1 Temperature
139 2 Remote 2 Temperature
140 3 Internal Temperature
141 4 PECI Processor Temperature 0
142 5 PECI Processor Temperature 1
143 6 PECI Processor Temperature 2
1288cfe0
MCC
144 7 PECI Processor Temperature 3
145 = ===============================================
d58de038
GJ
146
147temp2_source
1288cfe0 148 = ===============================================
d58de038
GJ
149 0 (default) Internal Temperature
150 1 Remote 1 Temperature
151 2 Remote 2 Temperature
152 3 Internal Temperature
153 4 PECI Processor Temperature 0
154 5 PECI Processor Temperature 1
155 6 PECI Processor Temperature 2
156 7 PECI Processor Temperature 3
1288cfe0 157 = ===============================================
d58de038
GJ
158
159temp3_source
1288cfe0 160 = ===============================================
d58de038
GJ
161 0 (default) Remote 2 Temperature
162 1 Remote 1 Temperature
163 2 Remote 2 Temperature
164 3 Internal Temperature
165 4 PECI Processor Temperature 0
166 5 PECI Processor Temperature 1
167 6 PECI Processor Temperature 2
168 7 PECI Processor Temperature 3
1288cfe0 169 = ===============================================
d58de038
GJ
170
171temp4_source
1288cfe0 172 = ===============================================
d58de038 173 0 (default) peci_legacy = 0, PECI Processor Temperature 0
1288cfe0 174 peci_legacy = 1, Remote 1 Temperature
d58de038
GJ
175 1 Remote 1 Temperature
176 2 Remote 2 Temperature
177 3 Internal Temperature
178 4 PECI Processor Temperature 0
179 5 PECI Processor Temperature 1
180 6 PECI Processor Temperature 2
181 7 PECI Processor Temperature 3
1288cfe0 182 = ===============================================
d58de038 183
1288cfe0 184temp[1-4]_smoothing_enable / temp[1-4]_smoothing_time
d58de038
GJ
185 Smooths spikes in temp readings caused by noise.
186 Valid values in milliseconds are:
1288cfe0
MCC
187
188 * 35000
189 * 17600
190 * 11800
191 * 7000
192 * 4400
193 * 3000
194 * 1600
195 * 800
d58de038
GJ
196
197temp[1-4]_crit
198 When the corresponding zone temperature reaches this value,
199 ALL pwm outputs will got to 100%.
200
1288cfe0 201temp[5-8]_input / temp[5-8]_enable
d58de038
GJ
202 The aSC7621 can also read temperatures provided by the processor
203 via the PECI bus. Usually these are "core" temps and are relative
204 to the point where the automatic thermal control circuit starts
205 throttling. This means that these are usually negative numbers.
206
207pwm[1-3]_enable
1288cfe0 208 =============== ========================================================
d58de038
GJ
209 0 Fan off.
210 1 Fan on manual control.
211 2 Fan on automatic control and will run at the minimum pwm
1288cfe0
MCC
212 if the temperature for the zone is below the minimum.
213 3 Fan on automatic control but will be off if the
214 temperature for the zone is below the minimum.
215 4-254 Ignored.
d58de038 216 255 Fan on full.
1288cfe0 217 =============== ========================================================
d58de038
GJ
218
219pwm[1-3]_auto_channels
220 Bitmap as described in sysctl-interface with the following
221 exceptions...
1288cfe0 222
d58de038
GJ
223 Only the following combination of zones (and their corresponding masks)
224 are valid:
d58de038 225
1288cfe0
MCC
226 * 1
227 * 2
228 * 3
229 * 2,3
230 * 1,2,3
231 * 4
232 * 1,2,3,4
233
234 * Special values:
235
236 == ======================
237 0 Disabled.
238 16 Fan on manual control.
239 31 Fan on full.
240 == ======================
d58de038
GJ
241
242
243pwm[1-3]_invert
244 When set, inverts the meaning of pwm[1-3].
245 i.e. when pwm = 0, the fan will be on full and
246 when pwm = 255 the fan will be off.
247
248pwm[1-3]_freq
249 PWM frequency in Hz
250 Valid values in Hz are:
251
1288cfe0
MCC
252 * 10
253 * 15
254 * 23
255 * 30 (default)
256 * 38
257 * 47
258 * 62
259 * 94
260 * 23000
261 * 24000
262 * 25000
263 * 26000
264 * 27000
265 * 28000
266 * 29000
267 * 30000
d58de038
GJ
268
269 Setting any other value will be ignored.
270
271peci_enable
272 Enables or disables PECI
273
274peci_avg
275 Input filter average time.
276
1288cfe0
MCC
277 * 0 0 Sec. (no Smoothing) (default)
278 * 1 0.25 Sec.
279 * 2 0.5 Sec.
280 * 3 1.0 Sec.
281 * 4 2.0 Sec.
282 * 5 4.0 Sec.
283 * 6 8.0 Sec.
284 * 7 0.0 Sec.
d58de038
GJ
285
286peci_legacy
1288cfe0 287 = ============================================
d58de038
GJ
288 0 Standard Mode (default)
289 Remote Diode 1 reading is associated with
290 Temperature Zone 1, PECI is associated with
291 Zone 4
292
293 1 Legacy Mode
294 PECI is associated with Temperature Zone 1,
295 Remote Diode 1 is associated with Zone 4
1288cfe0 296 = ============================================
d58de038
GJ
297
298peci_diode
299 Diode filter
300
1288cfe0 301 = ====================
d58de038
GJ
302 0 0.25 Sec.
303 1 1.1 Sec.
304 2 2.4 Sec. (default)
305 3 3.4 Sec.
306 4 5.0 Sec.
307 5 6.8 Sec.
308 6 10.2 Sec.
309 7 16.4 Sec.
1288cfe0 310 = ====================
d58de038
GJ
311
312peci_4domain
313 Four domain enable
314
1288cfe0 315 = ===============================================
d58de038
GJ
316 0 1 or 2 Domains for enabled processors (default)
317 1 3 or 4 Domains for enabled processors
1288cfe0 318 = ===============================================
d58de038
GJ
319
320peci_domain
321 Domain
322
1288cfe0 323 = ==================================================
d58de038
GJ
324 0 Processor contains a single domain (0) (default)
325 1 Processor contains two domains (0,1)
1288cfe0 326 = ==================================================