Kernel driver pc87427
=====================

Supported chips:
  * National Semiconductor PC87427
    Prefix: 'pc87427'
    Addresses scanned: none, address read from Super I/O config space
    Datasheet: No longer available

Author: Jean Delvare <khali@linux-fr.org>

Thanks to Amir Habibi at Candelis for setting up a test system, and to
Michael Kress for testing several iterations of this driver.


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

The National Semiconductor Super I/O chip includes complete hardware
monitoring capabilities. It can monitor up to 18 voltages, 8 fans and
6 temperature sensors. Only the fans and temperatures are supported at
the moment, voltages aren't.

This chip also has fan controlling features (up to 4 PWM outputs),
which are partly supported by this driver.

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


Fan Monitoring
--------------

Fan rotation speeds are reported as 14-bit values from a gated clock
signal. Speeds down to 83 RPM can be measured.

An alarm is triggered if the rotation speed drops below a programmable
limit. Another alarm is triggered if the speed is too low to be measured
(including stalled or missing fan).


Fan Speed Control
-----------------

Fan speed can be controlled by PWM outputs. There are 4 possible modes:
always off, always on, manual and automatic. The latter isn't supported
by the driver: you can only return to that mode if it was the original
setting, and the configuration interface is missing.


Temperature Monitoring
----------------------

The PC87427 relies on external sensors (following the SensorPath
standard), so the resolution and range depend on the type of sensor
connected. The integer part can be 8-bit or 9-bit, and can be signed or
not. I couldn't find a way to figure out the external sensor data
temperature format, so user-space adjustment (typically by a factor 2)
may be required.