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 <jdelvare@suse.de>

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.