]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - Documentation/hwmon/it87
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[karo-tx-linux.git] / Documentation / hwmon / it87
1 Kernel driver it87
2 ==================
3
4 Supported chips:
5   * IT8603E/IT8623E
6     Prefix: 'it8603'
7     Addresses scanned: from Super I/O config space (8 I/O ports)
8     Datasheet: Not publicly available
9   * IT8620E
10     Prefix: 'it8620'
11     Addresses scanned: from Super I/O config space (8 I/O ports)
12     Datasheet: Not publicly available
13   * IT8705F
14     Prefix: 'it87'
15     Addresses scanned: from Super I/O config space (8 I/O ports)
16     Datasheet: Once publicly available at the ITE website, but no longer
17   * IT8712F
18     Prefix: 'it8712'
19     Addresses scanned: from Super I/O config space (8 I/O ports)
20     Datasheet: Once publicly available at the ITE website, but no longer
21   * IT8716F/IT8726F
22     Prefix: 'it8716'
23     Addresses scanned: from Super I/O config space (8 I/O ports)
24     Datasheet: Once publicly available at the ITE website, but no longer
25   * IT8718F
26     Prefix: 'it8718'
27     Addresses scanned: from Super I/O config space (8 I/O ports)
28     Datasheet: Once publicly available at the ITE website, but no longer
29   * IT8720F
30     Prefix: 'it8720'
31     Addresses scanned: from Super I/O config space (8 I/O ports)
32     Datasheet: Not publicly available
33   * IT8721F/IT8758E
34     Prefix: 'it8721'
35     Addresses scanned: from Super I/O config space (8 I/O ports)
36     Datasheet: Not publicly available
37   * IT8728F
38     Prefix: 'it8728'
39     Addresses scanned: from Super I/O config space (8 I/O ports)
40     Datasheet: Not publicly available
41   * IT8732F
42     Prefix: 'it8732'
43     Addresses scanned: from Super I/O config space (8 I/O ports)
44     Datasheet: Not publicly available
45   * IT8771E
46     Prefix: 'it8771'
47     Addresses scanned: from Super I/O config space (8 I/O ports)
48     Datasheet: Not publicly available
49   * IT8772E
50     Prefix: 'it8772'
51     Addresses scanned: from Super I/O config space (8 I/O ports)
52     Datasheet: Not publicly available
53   * IT8781F
54     Prefix: 'it8781'
55     Addresses scanned: from Super I/O config space (8 I/O ports)
56     Datasheet: Not publicly available
57   * IT8782F
58     Prefix: 'it8782'
59     Addresses scanned: from Super I/O config space (8 I/O ports)
60     Datasheet: Not publicly available
61   * IT8783E/F
62     Prefix: 'it8783'
63     Addresses scanned: from Super I/O config space (8 I/O ports)
64     Datasheet: Not publicly available
65   * IT8786E
66     Prefix: 'it8786'
67     Addresses scanned: from Super I/O config space (8 I/O ports)
68     Datasheet: Not publicly available
69   * IT8790E
70     Prefix: 'it8790'
71     Addresses scanned: from Super I/O config space (8 I/O ports)
72     Datasheet: Not publicly available
73   * SiS950   [clone of IT8705F]
74     Prefix: 'it87'
75     Addresses scanned: from Super I/O config space (8 I/O ports)
76     Datasheet: No longer be available
77
78 Authors:
79     Christophe Gauthron
80     Jean Delvare <jdelvare@suse.de>
81
82
83 Module Parameters
84 -----------------
85
86 * update_vbat: int
87
88   0 if vbat should report power on value, 1 if vbat should be updated after
89   each read. Default is 0. On some boards the battery voltage is provided
90   by either the battery or the onboard power supply. Only the first reading
91   at power on will be the actual battery voltage (which the chip does
92   automatically). On other boards the battery voltage is always fed to
93   the chip so can be read at any time. Excessive reading may decrease
94   battery life but no information is given in the datasheet.
95
96 * fix_pwm_polarity int
97
98   Force PWM polarity to active high (DANGEROUS). Some chips are
99   misconfigured by BIOS - PWM values would be inverted. This option tries
100   to fix this. Please contact your BIOS manufacturer and ask him for fix.
101
102
103 Hardware Interfaces
104 -------------------
105
106 All the chips supported by this driver are LPC Super-I/O chips, accessed
107 through the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
108 SMBus interface to the hardware monitoring functions. This driver no
109 longer supports this interface though, as it is slower and less reliable
110 than the ISA access, and was only available on a small number of
111 motherboard models.
112
113
114 Description
115 -----------
116
117 This driver implements support for the IT8603E, IT8620E, IT8623E, IT8705F,
118 IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
119 IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and
120 SiS950 chips.
121
122 These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
123 joysticks and other miscellaneous stuff. For hardware monitoring, they
124 include an 'environment controller' with 3 temperature sensors, 3 fan
125 rotation speed sensors, 8 voltage sensors, associated alarms, and chassis
126 intrusion detection.
127
128 The IT8712F and IT8716F additionally feature VID inputs, used to report
129 the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
130 the IT8716F and late IT8712F have 6. They are shared with other functions
131 though, so the functionality may not be available on a given system.
132
133 The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
134 is stored in the Super-I/O configuration space. Due to technical limitations,
135 this value can currently only be read once at initialization time, so
136 the driver won't notice and report changes in the VID value. The two
137 upper VID bits share their pins with voltage inputs (in5 and in6) so you
138 can't have both on a given board.
139
140 The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
141 have support for 2 additional fans. The additional fans are supported by the
142 driver.
143
144 The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
145 IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
146 counters for fans 1 to 3. This is better (no more fan clock divider mess) but
147 not compatible with the older chips and revisions. The 16-bit tachometer mode
148 is enabled by the driver when one of the above chips is detected.
149
150 The IT8726F is just bit enhanced IT8716F with additional hardware
151 for AMD power sequencing. Therefore the chip will appear as IT8716F
152 to userspace applications.
153
154 The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
155 until a datasheet becomes available (hopefully.)
156
157 The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
158 IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
159 of the fan is not supported (value 0 of pwmX_enable).
160
161 The IT8620E is another custom design, hardware monitoring part is similar to
162 IT8728F. It only supports 16-bit fan mode.
163
164 The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
165
166 The IT8732F supports a closed-loop mode for fan control, but this is not
167 currently implemented by the driver.
168
169 Temperatures are measured in degrees Celsius. An alarm is triggered once
170 when the Overtemperature Shutdown limit is crossed.
171
172 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
173 triggered if the rotation speed has dropped below a programmable limit. When
174 16-bit tachometer counters aren't used, fan readings can be divided by
175 a programmable divider (1, 2, 4 or 8) to give the readings more range or
176 accuracy. With a divider of 2, the lowest representable value is around
177 2600 RPM. Not all RPM values can accurately be represented, so some rounding
178 is done.
179
180 Voltage sensors (also known as IN sensors) report their values in volts. An
181 alarm is triggered if the voltage has crossed a programmable minimum or
182 maximum limit. Note that minimum in this case always means 'closest to
183 zero'; this is important for negative voltage measurements. On most chips, all
184 voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
185 of 0.016 volt.  IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
186 3.06 volts, with a resolution of 0.012 volt.  IT8732F can measure between 0 and
187 2.8 volts with a resolution of 0.0109 volt.  The battery voltage in8 does not
188 have limit registers.
189
190 On the IT8603E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F, and IT8783E/F, some
191 voltage inputs are internal and scaled inside the chip:
192 * in3 (optional)
193 * in7 (optional for IT8781F, IT8782F, and IT8783E/F)
194 * in8 (always)
195 * in9 (relevant for IT8603E only)
196 The driver handles this transparently so user-space doesn't have to care.
197
198 The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
199 the voltage level your processor should work with. This is hardcoded by
200 the mainboard and/or processor itself. It is a value in volts.
201
202 If an alarm triggers, it will remain triggered until the hardware register
203 is read at least once. This means that the cause for the alarm may already
204 have disappeared! Note that in the current implementation, all hardware
205 registers are read whenever any data is read (unless it is less than 1.5
206 seconds since the last update). This means that you can easily miss
207 once-only alarms.
208
209 Out-of-limit readings can also result in beeping, if the chip is properly
210 wired and configured. Beeping can be enabled or disabled per sensor type
211 (temperatures, voltages and fans.)
212
213 The IT87xx only updates its values each 1.5 seconds; reading it more often
214 will do no harm, but will return 'old' values.
215
216 To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
217 or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
218 Give 0 for unused sensor. Any other value is invalid. To configure this at
219 startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
220 3 = thermal diode)
221
222
223 Fan speed control
224 -----------------
225
226 The fan speed control features are limited to manual PWM mode. Automatic
227 "Smart Guardian" mode control handling is only implemented for older chips
228 (see below.) However if you want to go for "manual mode" just write 1 to
229 pwmN_enable.
230
231 If you are only able to control the fan speed with very small PWM values,
232 try lowering the PWM base frequency (pwm1_freq). Depending on the fan,
233 it may give you a somewhat greater control range. The same frequency is
234 used to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
235 read-only.
236
237
238 Automatic fan speed control (old interface)
239 -------------------------------------------
240
241 The driver supports the old interface to automatic fan speed control
242 which is implemented by IT8705F chips up to revision F and IT8712F
243 chips up to revision G.
244
245 This interface implements 4 temperature vs. PWM output trip points.
246 The PWM output of trip point 4 is always the maximum value (fan running
247 at full speed) while the PWM output of the other 3 trip points can be
248 freely chosen. The temperature of all 4 trip points can be freely chosen.
249 Additionally, trip point 1 has an hysteresis temperature attached, to
250 prevent fast switching between fan on and off.
251
252 The chip automatically computes the PWM output value based on the input
253 temperature, based on this simple rule: if the temperature value is
254 between trip point N and trip point N+1 then the PWM output value is
255 the one of trip point N. The automatic control mode is less flexible
256 than the manual control mode, but it reacts faster, is more robust and
257 doesn't use CPU cycles.
258
259 Trip points must be set properly before switching to automatic fan speed
260 control mode. The driver will perform basic integrity checks before
261 actually switching to automatic control mode.
262
263
264 Temperature offset attributes
265 -----------------------------
266
267 The driver supports temp[1-3]_offset sysfs attributes to adjust the reported
268 temperature for thermal diodes or diode-connected thermal transistors.
269 If a temperature sensor is configured for thermistors, the attribute values
270 are ignored. If the thermal sensor type is Intel PECI, the temperature offset
271 must be programmed to the critical CPU temperature.