0001 Kernel driver it87
0002 ==================
0003
0004 Supported chips:
0005
0006 * IT8603E/IT8623E
0007
0008 Prefix: 'it8603'
0009
0010 Addresses scanned: from Super I/O config space (8 I/O ports)
0011
0012 Datasheet: Not publicly available
0013
0014 * IT8620E
0015
0016 Prefix: 'it8620'
0017
0018 Addresses scanned: from Super I/O config space (8 I/O ports)
0019
0020 * IT8628E
0021
0022 Prefix: 'it8628'
0023
0024 Addresses scanned: from Super I/O config space (8 I/O ports)
0025
0026 Datasheet: Not publicly available
0027
0028 * IT8705F
0029
0030 Prefix: 'it87'
0031
0032 Addresses scanned: from Super I/O config space (8 I/O ports)
0033
0034 Datasheet: Once publicly available at the ITE website, but no longer
0035
0036 * IT8712F
0037
0038 Prefix: 'it8712'
0039
0040 Addresses scanned: from Super I/O config space (8 I/O ports)
0041
0042 Datasheet: Once publicly available at the ITE website, but no longer
0043
0044 * IT8716F/IT8726F
0045
0046 Prefix: 'it8716'
0047
0048 Addresses scanned: from Super I/O config space (8 I/O ports)
0049
0050 Datasheet: Once publicly available at the ITE website, but no longer
0051
0052 * IT8718F
0053
0054 Prefix: 'it8718'
0055
0056 Addresses scanned: from Super I/O config space (8 I/O ports)
0057
0058 Datasheet: Once publicly available at the ITE website, but no longer
0059
0060 * IT8720F
0061
0062 Prefix: 'it8720'
0063
0064 Addresses scanned: from Super I/O config space (8 I/O ports)
0065
0066 Datasheet: Not publicly available
0067
0068 * IT8721F/IT8758E
0069
0070 Prefix: 'it8721'
0071
0072 Addresses scanned: from Super I/O config space (8 I/O ports)
0073
0074 Datasheet: Not publicly available
0075
0076 * IT8728F
0077
0078 Prefix: 'it8728'
0079
0080 Addresses scanned: from Super I/O config space (8 I/O ports)
0081
0082 Datasheet: Not publicly available
0083
0084 * IT8732F
0085
0086 Prefix: 'it8732'
0087
0088 Addresses scanned: from Super I/O config space (8 I/O ports)
0089
0090 Datasheet: Not publicly available
0091
0092 * IT8771E
0093
0094 Prefix: 'it8771'
0095
0096 Addresses scanned: from Super I/O config space (8 I/O ports)
0097
0098 Datasheet: Not publicly available
0099
0100 * IT8772E
0101
0102 Prefix: 'it8772'
0103
0104 Addresses scanned: from Super I/O config space (8 I/O ports)
0105
0106 Datasheet: Not publicly available
0107
0108 * IT8781F
0109
0110 Prefix: 'it8781'
0111
0112 Addresses scanned: from Super I/O config space (8 I/O ports)
0113
0114 Datasheet: Not publicly available
0115
0116 * IT8782F
0117
0118 Prefix: 'it8782'
0119
0120 Addresses scanned: from Super I/O config space (8 I/O ports)
0121
0122 Datasheet: Not publicly available
0123
0124 * IT8783E/F
0125
0126 Prefix: 'it8783'
0127
0128 Addresses scanned: from Super I/O config space (8 I/O ports)
0129
0130 Datasheet: Not publicly available
0131
0132 * IT8786E
0133
0134 Prefix: 'it8786'
0135
0136 Addresses scanned: from Super I/O config space (8 I/O ports)
0137
0138 Datasheet: Not publicly available
0139
0140 * IT8790E
0141
0142 Prefix: 'it8790'
0143
0144 Addresses scanned: from Super I/O config space (8 I/O ports)
0145
0146 Datasheet: Not publicly available
0147
0148 * SiS950 [clone of IT8705F]
0149
0150 Prefix: 'it87'
0151
0152 Addresses scanned: from Super I/O config space (8 I/O ports)
0153
0154 Datasheet: No longer be available
0155
0156
0157 Authors:
0158 - Christophe Gauthron
0159 - Jean Delvare <jdelvare@suse.de>
0160
0161
0162 Module Parameters
0163 -----------------
0164
0165 * update_vbat: int
0166 0 if vbat should report power on value, 1 if vbat should be updated after
0167 each read. Default is 0. On some boards the battery voltage is provided
0168 by either the battery or the onboard power supply. Only the first reading
0169 at power on will be the actual battery voltage (which the chip does
0170 automatically). On other boards the battery voltage is always fed to
0171 the chip so can be read at any time. Excessive reading may decrease
0172 battery life but no information is given in the datasheet.
0173
0174 * fix_pwm_polarity int
0175 Force PWM polarity to active high (DANGEROUS). Some chips are
0176 misconfigured by BIOS - PWM values would be inverted. This option tries
0177 to fix this. Please contact your BIOS manufacturer and ask him for fix.
0178
0179
0180 Hardware Interfaces
0181 -------------------
0182
0183 All the chips supported by this driver are LPC Super-I/O chips, accessed
0184 through the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
0185 SMBus interface to the hardware monitoring functions. This driver no
0186 longer supports this interface though, as it is slower and less reliable
0187 than the ISA access, and was only available on a small number of
0188 motherboard models.
0189
0190
0191 Description
0192 -----------
0193
0194 This driver implements support for the IT8603E, IT8620E, IT8623E, IT8628E,
0195 IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
0196 IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and
0197 SiS950 chips.
0198
0199 These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
0200 joysticks and other miscellaneous stuff. For hardware monitoring, they
0201 include an 'environment controller' with 3 temperature sensors, 3 fan
0202 rotation speed sensors, 8 voltage sensors, associated alarms, and chassis
0203 intrusion detection.
0204
0205 The IT8712F and IT8716F additionally feature VID inputs, used to report
0206 the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
0207 the IT8716F and late IT8712F have 6. They are shared with other functions
0208 though, so the functionality may not be available on a given system.
0209
0210 The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
0211 is stored in the Super-I/O configuration space. Due to technical limitations,
0212 this value can currently only be read once at initialization time, so
0213 the driver won't notice and report changes in the VID value. The two
0214 upper VID bits share their pins with voltage inputs (in5 and in6) so you
0215 can't have both on a given board.
0216
0217 The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
0218 have support for 2 additional fans. The additional fans are supported by the
0219 driver.
0220
0221 The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
0222 IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
0223 counters for fans 1 to 3. This is better (no more fan clock divider mess) but
0224 not compatible with the older chips and revisions. The 16-bit tachometer mode
0225 is enabled by the driver when one of the above chips is detected.
0226
0227 The IT8726F is just bit enhanced IT8716F with additional hardware
0228 for AMD power sequencing. Therefore the chip will appear as IT8716F
0229 to userspace applications.
0230
0231 The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
0232 until a datasheet becomes available (hopefully.)
0233
0234 The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
0235 IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
0236 of the fan is not supported (value 0 of pwmX_enable).
0237
0238 The IT8620E and IT8628E are custom designs, hardware monitoring part is similar
0239 to IT8728F. It only supports 16-bit fan mode. Both chips support up to 6 fans.
0240
0241 The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
0242
0243 The IT8732F supports a closed-loop mode for fan control, but this is not
0244 currently implemented by the driver.
0245
0246 Temperatures are measured in degrees Celsius. An alarm is triggered once
0247 when the Overtemperature Shutdown limit is crossed.
0248
0249 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
0250 triggered if the rotation speed has dropped below a programmable limit. When
0251 16-bit tachometer counters aren't used, fan readings can be divided by
0252 a programmable divider (1, 2, 4 or 8) to give the readings more range or
0253 accuracy. With a divider of 2, the lowest representable value is around
0254 2600 RPM. Not all RPM values can accurately be represented, so some rounding
0255 is done.
0256
0257 Voltage sensors (also known as IN sensors) report their values in volts. An
0258 alarm is triggered if the voltage has crossed a programmable minimum or
0259 maximum limit. Note that minimum in this case always means 'closest to
0260 zero'; this is important for negative voltage measurements. On most chips, all
0261 voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
0262 of 0.016 volt. IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
0263 3.06 volts, with a resolution of 0.012 volt. IT8732F can measure between 0 and
0264 2.8 volts with a resolution of 0.0109 volt. The battery voltage in8 does not
0265 have limit registers.
0266
0267 On the IT8603E, IT8620E, IT8628E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
0268 and IT8783E/F, some voltage inputs are internal and scaled inside the chip:
0269 * in3 (optional)
0270 * in7 (optional for IT8781F, IT8782F, and IT8783E/F)
0271 * in8 (always)
0272 * in9 (relevant for IT8603E only)
0273 The driver handles this transparently so user-space doesn't have to care.
0274
0275 The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
0276 the voltage level your processor should work with. This is hardcoded by
0277 the mainboard and/or processor itself. It is a value in volts.
0278
0279 If an alarm triggers, it will remain triggered until the hardware register
0280 is read at least once. This means that the cause for the alarm may already
0281 have disappeared! Note that in the current implementation, all hardware
0282 registers are read whenever any data is read (unless it is less than 1.5
0283 seconds since the last update). This means that you can easily miss
0284 once-only alarms.
0285
0286 Out-of-limit readings can also result in beeping, if the chip is properly
0287 wired and configured. Beeping can be enabled or disabled per sensor type
0288 (temperatures, voltages and fans.)
0289
0290 The IT87xx only updates its values each 1.5 seconds; reading it more often
0291 will do no harm, but will return 'old' values.
0292
0293 To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
0294 or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
0295 Give 0 for unused sensor. Any other value is invalid. To configure this at
0296 startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
0297 3 = thermal diode)
0298
0299
0300 Fan speed control
0301 -----------------
0302
0303 The fan speed control features are limited to manual PWM mode. Automatic
0304 "Smart Guardian" mode control handling is only implemented for older chips
0305 (see below.) However if you want to go for "manual mode" just write 1 to
0306 pwmN_enable.
0307
0308 If you are only able to control the fan speed with very small PWM values,
0309 try lowering the PWM base frequency (pwm1_freq). Depending on the fan,
0310 it may give you a somewhat greater control range. The same frequency is
0311 used to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
0312 read-only.
0313
0314
0315 Automatic fan speed control (old interface)
0316 -------------------------------------------
0317
0318 The driver supports the old interface to automatic fan speed control
0319 which is implemented by IT8705F chips up to revision F and IT8712F
0320 chips up to revision G.
0321
0322 This interface implements 4 temperature vs. PWM output trip points.
0323 The PWM output of trip point 4 is always the maximum value (fan running
0324 at full speed) while the PWM output of the other 3 trip points can be
0325 freely chosen. The temperature of all 4 trip points can be freely chosen.
0326 Additionally, trip point 1 has an hysteresis temperature attached, to
0327 prevent fast switching between fan on and off.
0328
0329 The chip automatically computes the PWM output value based on the input
0330 temperature, based on this simple rule: if the temperature value is
0331 between trip point N and trip point N+1 then the PWM output value is
0332 the one of trip point N. The automatic control mode is less flexible
0333 than the manual control mode, but it reacts faster, is more robust and
0334 doesn't use CPU cycles.
0335
0336 Trip points must be set properly before switching to automatic fan speed
0337 control mode. The driver will perform basic integrity checks before
0338 actually switching to automatic control mode.
0339
0340
0341 Temperature offset attributes
0342 -----------------------------
0343
0344 The driver supports temp[1-3]_offset sysfs attributes to adjust the reported
0345 temperature for thermal diodes or diode-connected thermal transistors.
0346 If a temperature sensor is configured for thermistors, the attribute values
0347 are ignored. If the thermal sensor type is Intel PECI, the temperature offset
0348 must be programmed to the critical CPU temperature.