xref: /OK3568_Linux_fs/kernel/Documentation/hwmon/it87.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunKernel driver it87
2*4882a593Smuzhiyun==================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSupported chips:
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun  * IT8603E/IT8623E
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun    Prefix: 'it8603'
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun    Datasheet: Not publicly available
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun  * IT8620E
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun    Prefix: 'it8620'
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun  * IT8628E
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun    Prefix: 'it8628'
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun    Datasheet: Not publicly available
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun  * IT8705F
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun    Prefix: 'it87'
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun    Datasheet: Once publicly available at the ITE website, but no longer
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun  * IT8712F
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun    Prefix: 'it8712'
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun    Datasheet: Once publicly available at the ITE website, but no longer
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun  * IT8716F/IT8726F
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun    Prefix: 'it8716'
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun    Datasheet: Once publicly available at the ITE website, but no longer
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun  * IT8718F
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun    Prefix: 'it8718'
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun    Datasheet: Once publicly available at the ITE website, but no longer
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun  * IT8720F
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun    Prefix: 'it8720'
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun    Datasheet: Not publicly available
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun  * IT8721F/IT8758E
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun    Prefix: 'it8721'
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun    Datasheet: Not publicly available
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun  * IT8728F
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun    Prefix: 'it8728'
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun    Datasheet: Not publicly available
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun  * IT8732F
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun    Prefix: 'it8732'
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun    Datasheet: Not publicly available
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun  * IT8771E
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun    Prefix: 'it8771'
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun    Datasheet: Not publicly available
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun  * IT8772E
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun    Prefix: 'it8772'
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun    Datasheet: Not publicly available
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun  * IT8781F
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun    Prefix: 'it8781'
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun    Datasheet: Not publicly available
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun  * IT8782F
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun    Prefix: 'it8782'
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun    Datasheet: Not publicly available
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun  * IT8783E/F
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun    Prefix: 'it8783'
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun    Datasheet: Not publicly available
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun  * IT8786E
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun    Prefix: 'it8786'
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun    Datasheet: Not publicly available
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun  * IT8790E
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun    Prefix: 'it8790'
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun    Datasheet: Not publicly available
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun  * SiS950   [clone of IT8705F]
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun    Prefix: 'it87'
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun    Addresses scanned: from Super I/O config space (8 I/O ports)
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun    Datasheet: No longer be available
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun
157*4882a593SmuzhiyunAuthors:
158*4882a593Smuzhiyun    - Christophe Gauthron
159*4882a593Smuzhiyun    - Jean Delvare <jdelvare@suse.de>
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun
162*4882a593SmuzhiyunModule Parameters
163*4882a593Smuzhiyun-----------------
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun* update_vbat: int
166*4882a593Smuzhiyun    0 if vbat should report power on value, 1 if vbat should be updated after
167*4882a593Smuzhiyun    each read. Default is 0. On some boards the battery voltage is provided
168*4882a593Smuzhiyun    by either the battery or the onboard power supply. Only the first reading
169*4882a593Smuzhiyun    at power on will be the actual battery voltage (which the chip does
170*4882a593Smuzhiyun    automatically). On other boards the battery voltage is always fed to
171*4882a593Smuzhiyun    the chip so can be read at any time. Excessive reading may decrease
172*4882a593Smuzhiyun    battery life but no information is given in the datasheet.
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun* fix_pwm_polarity int
175*4882a593Smuzhiyun    Force PWM polarity to active high (DANGEROUS). Some chips are
176*4882a593Smuzhiyun    misconfigured by BIOS - PWM values would be inverted. This option tries
177*4882a593Smuzhiyun    to fix this. Please contact your BIOS manufacturer and ask him for fix.
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun
180*4882a593SmuzhiyunHardware Interfaces
181*4882a593Smuzhiyun-------------------
182*4882a593Smuzhiyun
183*4882a593SmuzhiyunAll the chips supported by this driver are LPC Super-I/O chips, accessed
184*4882a593Smuzhiyunthrough the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
185*4882a593SmuzhiyunSMBus interface to the hardware monitoring functions. This driver no
186*4882a593Smuzhiyunlonger supports this interface though, as it is slower and less reliable
187*4882a593Smuzhiyunthan the ISA access, and was only available on a small number of
188*4882a593Smuzhiyunmotherboard models.
189*4882a593Smuzhiyun
190*4882a593Smuzhiyun
191*4882a593SmuzhiyunDescription
192*4882a593Smuzhiyun-----------
193*4882a593Smuzhiyun
194*4882a593SmuzhiyunThis driver implements support for the IT8603E, IT8620E, IT8623E, IT8628E,
195*4882a593SmuzhiyunIT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
196*4882a593SmuzhiyunIT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and
197*4882a593SmuzhiyunSiS950 chips.
198*4882a593Smuzhiyun
199*4882a593SmuzhiyunThese chips are 'Super I/O chips', supporting floppy disks, infrared ports,
200*4882a593Smuzhiyunjoysticks and other miscellaneous stuff. For hardware monitoring, they
201*4882a593Smuzhiyuninclude an 'environment controller' with 3 temperature sensors, 3 fan
202*4882a593Smuzhiyunrotation speed sensors, 8 voltage sensors, associated alarms, and chassis
203*4882a593Smuzhiyunintrusion detection.
204*4882a593Smuzhiyun
205*4882a593SmuzhiyunThe IT8712F and IT8716F additionally feature VID inputs, used to report
206*4882a593Smuzhiyunthe Vcore voltage of the processor. The early IT8712F have 5 VID pins,
207*4882a593Smuzhiyunthe IT8716F and late IT8712F have 6. They are shared with other functions
208*4882a593Smuzhiyunthough, so the functionality may not be available on a given system.
209*4882a593Smuzhiyun
210*4882a593SmuzhiyunThe IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
211*4882a593Smuzhiyunis stored in the Super-I/O configuration space. Due to technical limitations,
212*4882a593Smuzhiyunthis value can currently only be read once at initialization time, so
213*4882a593Smuzhiyunthe driver won't notice and report changes in the VID value. The two
214*4882a593Smuzhiyunupper VID bits share their pins with voltage inputs (in5 and in6) so you
215*4882a593Smuzhiyuncan't have both on a given board.
216*4882a593Smuzhiyun
217*4882a593SmuzhiyunThe IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
218*4882a593Smuzhiyunhave support for 2 additional fans. The additional fans are supported by the
219*4882a593Smuzhiyundriver.
220*4882a593Smuzhiyun
221*4882a593SmuzhiyunThe IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
222*4882a593SmuzhiyunIT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
223*4882a593Smuzhiyuncounters for fans 1 to 3. This is better (no more fan clock divider mess) but
224*4882a593Smuzhiyunnot compatible with the older chips and revisions. The 16-bit tachometer mode
225*4882a593Smuzhiyunis enabled by the driver when one of the above chips is detected.
226*4882a593Smuzhiyun
227*4882a593SmuzhiyunThe IT8726F is just bit enhanced IT8716F with additional hardware
228*4882a593Smuzhiyunfor AMD power sequencing. Therefore the chip will appear as IT8716F
229*4882a593Smuzhiyunto userspace applications.
230*4882a593Smuzhiyun
231*4882a593SmuzhiyunThe IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
232*4882a593Smuzhiyununtil a datasheet becomes available (hopefully.)
233*4882a593Smuzhiyun
234*4882a593SmuzhiyunThe IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
235*4882a593SmuzhiyunIT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
236*4882a593Smuzhiyunof the fan is not supported (value 0 of pwmX_enable).
237*4882a593Smuzhiyun
238*4882a593SmuzhiyunThe IT8620E and IT8628E are custom designs, hardware monitoring part is similar
239*4882a593Smuzhiyunto IT8728F. It only supports 16-bit fan mode. Both chips support up to 6 fans.
240*4882a593Smuzhiyun
241*4882a593SmuzhiyunThe IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
242*4882a593Smuzhiyun
243*4882a593SmuzhiyunThe IT8732F supports a closed-loop mode for fan control, but this is not
244*4882a593Smuzhiyuncurrently implemented by the driver.
245*4882a593Smuzhiyun
246*4882a593SmuzhiyunTemperatures are measured in degrees Celsius. An alarm is triggered once
247*4882a593Smuzhiyunwhen the Overtemperature Shutdown limit is crossed.
248*4882a593Smuzhiyun
249*4882a593SmuzhiyunFan rotation speeds are reported in RPM (rotations per minute). An alarm is
250*4882a593Smuzhiyuntriggered if the rotation speed has dropped below a programmable limit. When
251*4882a593Smuzhiyun16-bit tachometer counters aren't used, fan readings can be divided by
252*4882a593Smuzhiyuna programmable divider (1, 2, 4 or 8) to give the readings more range or
253*4882a593Smuzhiyunaccuracy. With a divider of 2, the lowest representable value is around
254*4882a593Smuzhiyun2600 RPM. Not all RPM values can accurately be represented, so some rounding
255*4882a593Smuzhiyunis done.
256*4882a593Smuzhiyun
257*4882a593SmuzhiyunVoltage sensors (also known as IN sensors) report their values in volts. An
258*4882a593Smuzhiyunalarm is triggered if the voltage has crossed a programmable minimum or
259*4882a593Smuzhiyunmaximum limit. Note that minimum in this case always means 'closest to
260*4882a593Smuzhiyunzero'; this is important for negative voltage measurements. On most chips, all
261*4882a593Smuzhiyunvoltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
262*4882a593Smuzhiyunof 0.016 volt.  IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
263*4882a593Smuzhiyun3.06 volts, with a resolution of 0.012 volt.  IT8732F can measure between 0 and
264*4882a593Smuzhiyun2.8 volts with a resolution of 0.0109 volt.  The battery voltage in8 does not
265*4882a593Smuzhiyunhave limit registers.
266*4882a593Smuzhiyun
267*4882a593SmuzhiyunOn the IT8603E, IT8620E, IT8628E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
268*4882a593Smuzhiyunand IT8783E/F, some voltage inputs are internal and scaled inside the chip:
269*4882a593Smuzhiyun* in3 (optional)
270*4882a593Smuzhiyun* in7 (optional for IT8781F, IT8782F, and IT8783E/F)
271*4882a593Smuzhiyun* in8 (always)
272*4882a593Smuzhiyun* in9 (relevant for IT8603E only)
273*4882a593SmuzhiyunThe driver handles this transparently so user-space doesn't have to care.
274*4882a593Smuzhiyun
275*4882a593SmuzhiyunThe VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
276*4882a593Smuzhiyunthe voltage level your processor should work with. This is hardcoded by
277*4882a593Smuzhiyunthe mainboard and/or processor itself. It is a value in volts.
278*4882a593Smuzhiyun
279*4882a593SmuzhiyunIf an alarm triggers, it will remain triggered until the hardware register
280*4882a593Smuzhiyunis read at least once. This means that the cause for the alarm may already
281*4882a593Smuzhiyunhave disappeared! Note that in the current implementation, all hardware
282*4882a593Smuzhiyunregisters are read whenever any data is read (unless it is less than 1.5
283*4882a593Smuzhiyunseconds since the last update). This means that you can easily miss
284*4882a593Smuzhiyunonce-only alarms.
285*4882a593Smuzhiyun
286*4882a593SmuzhiyunOut-of-limit readings can also result in beeping, if the chip is properly
287*4882a593Smuzhiyunwired and configured. Beeping can be enabled or disabled per sensor type
288*4882a593Smuzhiyun(temperatures, voltages and fans.)
289*4882a593Smuzhiyun
290*4882a593SmuzhiyunThe IT87xx only updates its values each 1.5 seconds; reading it more often
291*4882a593Smuzhiyunwill do no harm, but will return 'old' values.
292*4882a593Smuzhiyun
293*4882a593SmuzhiyunTo change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
294*4882a593Smuzhiyunor 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
295*4882a593SmuzhiyunGive 0 for unused sensor. Any other value is invalid. To configure this at
296*4882a593Smuzhiyunstartup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
297*4882a593Smuzhiyun3 = thermal diode)
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun
300*4882a593SmuzhiyunFan speed control
301*4882a593Smuzhiyun-----------------
302*4882a593Smuzhiyun
303*4882a593SmuzhiyunThe fan speed control features are limited to manual PWM mode. Automatic
304*4882a593Smuzhiyun"Smart Guardian" mode control handling is only implemented for older chips
305*4882a593Smuzhiyun(see below.) However if you want to go for "manual mode" just write 1 to
306*4882a593SmuzhiyunpwmN_enable.
307*4882a593Smuzhiyun
308*4882a593SmuzhiyunIf you are only able to control the fan speed with very small PWM values,
309*4882a593Smuzhiyuntry lowering the PWM base frequency (pwm1_freq). Depending on the fan,
310*4882a593Smuzhiyunit may give you a somewhat greater control range. The same frequency is
311*4882a593Smuzhiyunused to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
312*4882a593Smuzhiyunread-only.
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun
315*4882a593SmuzhiyunAutomatic fan speed control (old interface)
316*4882a593Smuzhiyun-------------------------------------------
317*4882a593Smuzhiyun
318*4882a593SmuzhiyunThe driver supports the old interface to automatic fan speed control
319*4882a593Smuzhiyunwhich is implemented by IT8705F chips up to revision F and IT8712F
320*4882a593Smuzhiyunchips up to revision G.
321*4882a593Smuzhiyun
322*4882a593SmuzhiyunThis interface implements 4 temperature vs. PWM output trip points.
323*4882a593SmuzhiyunThe PWM output of trip point 4 is always the maximum value (fan running
324*4882a593Smuzhiyunat full speed) while the PWM output of the other 3 trip points can be
325*4882a593Smuzhiyunfreely chosen. The temperature of all 4 trip points can be freely chosen.
326*4882a593SmuzhiyunAdditionally, trip point 1 has an hysteresis temperature attached, to
327*4882a593Smuzhiyunprevent fast switching between fan on and off.
328*4882a593Smuzhiyun
329*4882a593SmuzhiyunThe chip automatically computes the PWM output value based on the input
330*4882a593Smuzhiyuntemperature, based on this simple rule: if the temperature value is
331*4882a593Smuzhiyunbetween trip point N and trip point N+1 then the PWM output value is
332*4882a593Smuzhiyunthe one of trip point N. The automatic control mode is less flexible
333*4882a593Smuzhiyunthan the manual control mode, but it reacts faster, is more robust and
334*4882a593Smuzhiyundoesn't use CPU cycles.
335*4882a593Smuzhiyun
336*4882a593SmuzhiyunTrip points must be set properly before switching to automatic fan speed
337*4882a593Smuzhiyuncontrol mode. The driver will perform basic integrity checks before
338*4882a593Smuzhiyunactually switching to automatic control mode.
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun
341*4882a593SmuzhiyunTemperature offset attributes
342*4882a593Smuzhiyun-----------------------------
343*4882a593Smuzhiyun
344*4882a593SmuzhiyunThe driver supports temp[1-3]_offset sysfs attributes to adjust the reported
345*4882a593Smuzhiyuntemperature for thermal diodes or diode-connected thermal transistors.
346*4882a593SmuzhiyunIf a temperature sensor is configured for thermistors, the attribute values
347*4882a593Smuzhiyunare ignored. If the thermal sensor type is Intel PECI, the temperature offset
348*4882a593Smuzhiyunmust be programmed to the critical CPU temperature.
349