Back to home page

OSCL-LXR

 
 

    


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.