Kernel driver f71882fg
======================

Supported chips:

  * Fintek F71808E

    Prefix: 'f71808e'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Not public

  * Fintek F71808A

    Prefix: 'f71808a'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Not public

  * Fintek F71858FG

    Prefix: 'f71858fg'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Available from the Fintek website

  * Fintek F71862FG and F71863FG

    Prefix: 'f71862fg'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Available from the Fintek website

  * Fintek F71869F and F71869E

    Prefix: 'f71869'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Available from the Fintek website

  * Fintek F71869A

    Prefix: 'f71869a'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Not public

  * Fintek F71882FG and F71883FG

    Prefix: 'f71882fg'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Available from the Fintek website

  * Fintek F71889FG

    Prefix: 'f71889fg'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Available from the Fintek website

  * Fintek F71889ED

    Prefix: 'f71889ed'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Should become available on the Fintek website soon

  * Fintek F71889A

    Prefix: 'f71889a'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Should become available on the Fintek website soon

  * Fintek F8000

    Prefix: 'f8000'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Not public

  * Fintek F81801U

    Prefix: 'f71889fg'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Not public

    Note:
	  This is the 64-pin variant of the F71889FG, they have the
	  same device ID and are fully compatible as far as hardware
	  monitoring is concerned.

  * Fintek F81865F

    Prefix: 'f81865f'

    Addresses scanned: none, address read from Super I/O config space

    Datasheet: Available from the Fintek website

Author: Hans de Goede <hdegoede@redhat.com>


Description
-----------

Fintek F718xx/F8000 Super I/O chips include complete hardware monitoring
capabilities. They can monitor up to 9 voltages, 4 fans and 3 temperature
sensors.

These chips also have fan controlling features, using either DC or PWM, in
three different modes (one manual, two automatic).

The driver assumes that no more than one chip is present, which seems
reasonable.


Monitoring
----------

The Voltage, Fan and Temperature Monitoring uses the standard sysfs
interface as documented in sysfs-interface, without any exceptions.


Fan Control
-----------

Both PWM (pulse-width modulation) and DC fan speed control methods are
supported. The right one to use depends on external circuitry on the
motherboard, so the driver assumes that the BIOS set the method
properly.

Note that the lowest numbered temperature zone trip point corresponds to
the border between the highest and one but highest temperature zones, and
vica versa. So the temperature zone trip points 1-4 (or 1-2) go from high temp
to low temp! This is how things are implemented in the IC, and the driver
mimics this.

There are 2 modes to specify the speed of the fan, PWM duty cycle (or DC
voltage) mode, where 0-100% duty cycle (0-100% of 12V) is specified. And RPM
mode where the actual RPM of the fan (as measured) is controlled and the speed
gets specified as 0-100% of the fan#_full_speed file.

Since both modes work in a 0-100% (mapped to 0-255) scale, there isn't a
whole lot of a difference when modifying fan control settings. The only
important difference is that in RPM mode the 0-100% controls the fan speed
between 0-100% of fan#_full_speed. It is assumed that if the BIOS programs
RPM mode, it will also set fan#_full_speed properly, if it does not then
fan control will not work properly, unless you set a sane fan#_full_speed
value yourself.

Switching between these modes requires re-initializing a whole bunch of
registers, so the mode which the BIOS has set is kept. The mode is
printed when loading the driver.

Three different fan control modes are supported; the mode number is written
to the pwm#_enable file. Note that not all modes are supported on all
chips, and some modes may only be available in RPM / PWM mode.
Writing an unsupported mode will result in an invalid parameter error.

* 1: Manual mode
  You ask for a specific PWM duty cycle / DC voltage or a specific % of
  fan#_full_speed by writing to the pwm# file. This mode is only
  available on the F71858FG / F8000 if the fan channel is in RPM mode.

* 2: Normal auto mode
  You can define a number of temperature/fan speed trip points that specify
  the percentage at which the fan should run at each temperature, and which
  temperature sensor a fan should follow, using the standard sysfs interface.
  The number and type of trip points are chip dependent - see the available
  files in sysfs.
  Fan/PWM channel 3 of the F8000 is always in this mode!

* 3: Thermostat mode (Only available on the F8000 when in duty cycle mode)
  The fan speed is regulated to keep the temp the fan is mapped to between
  temp#_auto_point2_temp and temp#_auto_point3_temp.

All of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
fan2 and pwm3 to fan3.
