Kernel driver f71805f¶
Supported chips:
Fintek F71805F/FG
Prefix: ‘f71805f’
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
Fintek F71806F/FG
Prefix: ‘f71872f’
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
Fintek F71872F/FG
Prefix: ‘f71872f’
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
Author: Jean Delvare <jdelvare@suse.de>
Thanks to Denis Kieft from Barracuda Networks for the donation of atest system (custom Jetway K8M8MS motherboard, with CPU and RAM) andfor providing initial documentation.
Thanks to Kris Chen and Aaron Huang from Fintek for answering technicalquestions and providing additional documentation.
Thanks to Chris Lin from Jetway for providing wiring schematics andanswering technical questions.
Description¶
The Fintek F71805F/FG Super I/O chip includes complete hardware monitoringcapabilities. It can monitor up to 9 voltages (counting its own powersource), 3 fans and 3 temperature sensors.
This chip also has fan controlling features, using either DC or PWM, inthree different modes (one manual, two automatic).
The Fintek F71872F/FG Super I/O chip is almost the same, with twoadditional internal voltages monitored (VSB and battery). It also features6 VID inputs. The VID inputs are not yet supported by this driver.
The Fintek F71806F/FG Super-I/O chip is essentially the same as theF71872F/FG, and is undistinguishable therefrom.
The driver assumes that no more than one chip is present, which seemsreasonable.
Voltage Monitoring¶
Voltages are sampled by an 8-bit ADC with a LSB of 8 mV. The supportedrange is thus from 0 to 2.040 V. Voltage values outside of this rangeneed external resistors. An exception is in0, which is used to monitorthe chip’s own power source (+3.3V), and is divided internally by afactor 2. For the F71872F/FG, in9 (VSB) and in10 (battery) are alsodivided internally by a factor 2.
The two LSB of the voltage limit registers are not used (always 0), soyou can only set the limits in steps of 32 mV (before scaling).
The wirings and resistor values suggested by Fintek are as follow:
| in | pinname | use | R1 | R2 | divider | expectedraw val. |
|---|---|---|---|---|---|---|
| in0 | VCC | VCC3.3V | int. | int. | 2.00 | 1.65 V |
| in1 | VIN1 | VTT1.2V | 10K | 1.00 | 1.20 V | |
| in2 | VIN2 | VRAM | 100K | 100K | 2.00 | ~1.25 V[1] |
| in3 | VIN3 | VCHIPSET | 47K | 100K | 1.47 | 2.24 V[2] |
| in4 | VIN4 | VCC5V | 200K | 47K | 5.25 | 0.95 V |
| in5 | VIN5 | +12V | 200K | 20K | 11.00 | 1.05 V |
| in6 | VIN6 | VCC1.5V | 10K | 1.00 | 1.50 V | |
| in7 | VIN7 | VCORE | 10K | 1.00 | ~1.40 V[1] | |
| in8 | VIN8 | VSB5V | 200K | 47K | 1.00 | 0.95 V |
| in10 | VSB | VSB3.3V | int. | int. | 2.00 | 1.65 V[3] |
| in9 | VBAT | VBATTERY | int. | int. | 2.00 | 1.50 V[3] |
| [1] | (1,2) Depends on your hardware setup. |
| [2] | Obviously not correct, swapping R1 and R2 would make more sense. |
| [3] | (1,2) F71872F/FG only. |
These values can be used as hints at best, as motherboard manufacturersare free to use a completely different setup. As a matter of fact, theJetway K8M8MS uses a significantly different setup. You will have tofind out documentation about your own motherboard, and edit sensors.confaccordingly.
Each voltage measured has associated low and high limits, each of whichtriggers an alarm when crossed.
Fan Monitoring¶
Fan rotation speeds are reported as 12-bit values from a gated clocksignal. Speeds down to 366 RPM can be measured. There is no theoreticalhigh limit, but values over 6000 RPM seem to cause problem. The effectiveresolution is much lower than you would expect, the step between differentregister values being 10 rather than 1.
The chip assumes 2 pulse-per-revolution fans.
An alarm is triggered if the rotation speed drops below a programmablelimit or is too low to be measured.
Temperature Monitoring¶
Temperatures are reported in degrees Celsius. Each temperature measuredhas a high limit, those crossing triggers an alarm. There is an associatedhysteresis value, below which the temperature has to drop before thealarm is cleared.
All temperature channels are external, there is no embedded temperaturesensor. Each channel can be used for connecting either a thermal diodeor a thermistor. The driver reports the currently selected mode, butdoesn’t allow changing it. In theory, the BIOS should have configuredeverything properly.
Fan Control¶
Both PWM (pulse-width modulation) and DC fan speed control methods aresupported. The right one to use depends on external circuitry on themotherboard, so the driver assumes that the BIOS set the methodproperly. The driver will report the method, but won’t let you changeit.
When the PWM method is used, you can select the operating frequency,from 187.5 kHz (default) to 31 Hz. The best frequency depends on thefan model. As a rule of thumb, lower frequencies seem to give bettercontrol, but may generate annoying high-pitch noise. So a frequency justabove the audible range, such as 25 kHz, may be a good choice; if thisdoesn’t give you good linear control, try reducing it. Fintek recommendsnot going below 1 kHz, as the fan tachometers get confused by lowerfrequencies as well.
When the DC method is used, Fintek recommends not going below 5 V, whichcorresponds to a pwm value of 106 for the driver. The driver doesn’tenforce this limit though.
Three different fan control modes are supported; the mode number is writtento the pwm<n>_enable file.
- 1: Manual modeYou ask for a specific PWM duty cycle or DC voltage by writing to thepwm<n> file.
- 2: Temperature modeYou define 3 temperature/fan speed trip points using thepwm<n>_auto_point<m>_temp and _fan files. These define a staircaserelationship between temperature and fan speed with two additional pointsinterpolated between the values that you define. When the temperatureis below auto_point1_temp the fan is switched off.
- 3: Fan speed modeYou ask for a specific fan speed by writing to the fan<n>_target file.
Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 tofan2 and pwm3 to fan3. Temperature mode also requires that temp1 correspondsto pwm1 and fan1, etc.