Kernel driver pc87427¶
National Semiconductor PC87427
Addresses scanned: none, address read from Super I/O config space
Datasheet: No longer available
Author: Jean Delvare <firstname.lastname@example.org>
Thanks to Amir Habibi at Candelis for setting up a test system, and to Michael Kress for testing several iterations of this driver.
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 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.
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.