PageRenderTime 24ms CodeModel.GetById 16ms app.highlight 6ms RepoModel.GetById 0ms app.codeStats 0ms

#! | 183 lines | 145 code | 38 blank | 0 comment | 0 complexity | 3f54183b54e1d03fac4df7e5361162f7 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
  1Kernel driver it87
  4Supported chips:
  5  * IT8705F
  6    Prefix: 'it87'
  7    Addresses scanned: from Super I/O config space (8 I/O ports)
  8    Datasheet: Once publicly available at the ITE website, but no longer
  9  * IT8712F
 10    Prefix: 'it8712'
 11    Addresses scanned: from Super I/O config space (8 I/O ports)
 12    Datasheet: Once publicly available at the ITE website, but no longer
 13  * IT8716F/IT8726F
 14    Prefix: 'it8716'
 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  * IT8718F
 18    Prefix: 'it8718'
 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  * IT8720F
 22    Prefix: 'it8720'
 23    Addresses scanned: from Super I/O config space (8 I/O ports)
 24    Datasheet: Not publicly available
 25  * SiS950   [clone of IT8705F]
 26    Prefix: 'it87'
 27    Addresses scanned: from Super I/O config space (8 I/O ports)
 28    Datasheet: No longer be available
 31    Christophe Gauthron
 32    Jean Delvare <>
 35Module Parameters
 38* update_vbat: int
 40  0 if vbat should report power on value, 1 if vbat should be updated after
 41  each read. Default is 0. On some boards the battery voltage is provided
 42  by either the battery or the onboard power supply. Only the first reading
 43  at power on will be the actual battery voltage (which the chip does
 44  automatically). On other boards the battery voltage is always fed to
 45  the chip so can be read at any time. Excessive reading may decrease
 46  battery life but no information is given in the datasheet.
 48* fix_pwm_polarity int
 50  Force PWM polarity to active high (DANGEROUS). Some chips are
 51  misconfigured by BIOS - PWM values would be inverted. This option tries
 52  to fix this. Please contact your BIOS manufacturer and ask him for fix.
 55Hardware Interfaces
 58All the chips suported by this driver are LPC Super-I/O chips, accessed
 59through the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
 60SMBus interface to the hardware monitoring functions. This driver no
 61longer supports this interface though, as it is slower and less reliable
 62than the ISA access, and was only available on a small number of
 63motherboard models.
 69This driver implements support for the IT8705F, IT8712F, IT8716F,
 70IT8718F, IT8720F, IT8726F and SiS950 chips.
 72These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
 73joysticks and other miscellaneous stuff. For hardware monitoring, they
 74include an 'environment controller' with 3 temperature sensors, 3 fan
 75rotation speed sensors, 8 voltage sensors, and associated alarms.
 77The IT8712F and IT8716F additionally feature VID inputs, used to report
 78the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
 79the IT8716F and late IT8712F have 6. They are shared with other functions
 80though, so the functionality may not be available on a given system.
 82The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
 83is stored in the Super-I/O configuration space. Due to technical limitations,
 84this value can currently only be read once at initialization time, so
 85the driver won't notice and report changes in the VID value. The two
 86upper VID bits share their pins with voltage inputs (in5 and in6) so you
 87can't have both on a given board.
 89The IT8716F, IT8718F, IT8720F and later IT8712F revisions have support for
 902 additional fans. The additional fans are supported by the driver.
 92The IT8716F, IT8718F and IT8720F, and late IT8712F and IT8705F also have
 93optional 16-bit tachometer counters for fans 1 to 3. This is better (no more
 94fan clock divider mess) but not compatible with the older chips and
 95revisions. The 16-bit tachometer mode is enabled by the driver when one
 96of the above chips is detected.
 98The IT8726F is just bit enhanced IT8716F with additional hardware
 99for AMD power sequencing. Therefore the chip will appear as IT8716F
100to userspace applications.
102Temperatures are measured in degrees Celsius. An alarm is triggered once
103when the Overtemperature Shutdown limit is crossed.
105Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
106triggered if the rotation speed has dropped below a programmable limit. When
10716-bit tachometer counters aren't used, fan readings can be divided by
108a programmable divider (1, 2, 4 or 8) to give the readings more range or
109accuracy. With a divider of 2, the lowest representable value is around
1102600 RPM. Not all RPM values can accurately be represented, so some rounding
111is done.
113Voltage sensors (also known as IN sensors) report their values in volts. An
114alarm is triggered if the voltage has crossed a programmable minimum or
115maximum limit. Note that minimum in this case always means 'closest to
116zero'; this is important for negative voltage measurements. All voltage
117inputs can measure voltages between 0 and 4.08 volts, with a resolution of
1180.016 volt. The battery voltage in8 does not have limit registers.
120The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
121the voltage level your processor should work with. This is hardcoded by
122the mainboard and/or processor itself. It is a value in volts.
124If an alarm triggers, it will remain triggered until the hardware register
125is read at least once. This means that the cause for the alarm may already
126have disappeared! Note that in the current implementation, all hardware
127registers are read whenever any data is read (unless it is less than 1.5
128seconds since the last update). This means that you can easily miss
129once-only alarms.
131Out-of-limit readings can also result in beeping, if the chip is properly
132wired and configured. Beeping can be enabled or disabled per sensor type
133(temperatures, voltages and fans.)
135The IT87xx only updates its values each 1.5 seconds; reading it more often
136will do no harm, but will return 'old' values.
138To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
139or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
140Give 0 for unused sensor. Any other value is invalid. To configure this at
141startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
1423 = thermal diode)
145Fan speed control
148The fan speed control features are limited to manual PWM mode. Automatic
149"Smart Guardian" mode control handling is only implemented for older chips
150(see below.) However if you want to go for "manual mode" just write 1 to
153If you are only able to control the fan speed with very small PWM values,
154try lowering the PWM base frequency (pwm1_freq). Depending on the fan,
155it may give you a somewhat greater control range. The same frequency is
156used to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
160Automatic fan speed control (old interface)
163The driver supports the old interface to automatic fan speed control
164which is implemented by IT8705F chips up to revision F and IT8712F
165chips up to revision G.
167This interface implements 4 temperature vs. PWM output trip points.
168The PWM output of trip point 4 is always the maximum value (fan running
169at full speed) while the PWM output of the other 3 trip points can be
170freely chosen. The temperature of all 4 trip points can be freely chosen.
171Additionally, trip point 1 has an hysteresis temperature attached, to
172prevent fast switching between fan on and off.
174The chip automatically computes the PWM output value based on the input
175temperature, based on this simple rule: if the temperature value is
176between trip point N and trip point N+1 then the PWM output value is
177the one of trip point N. The automatic control mode is less flexible
178than the manual control mode, but it reacts faster, is more robust and
179doesn't use CPU cycles.
181Trip points must be set properly before switching to automatic fan speed
182control mode. The driver will perform basic integrity checks before
183actually switching to automatic control mode.