Back to home page

OSCL-LXR

 
 

    


0001 Kernel driver f71805f
0002 =====================
0003 
0004 Supported chips:
0005 
0006   * Fintek F71805F/FG
0007 
0008     Prefix: 'f71805f'
0009 
0010     Addresses scanned: none, address read from Super I/O config space
0011 
0012     Datasheet: Available from the Fintek website
0013 
0014   * Fintek F71806F/FG
0015 
0016     Prefix: 'f71872f'
0017 
0018     Addresses scanned: none, address read from Super I/O config space
0019 
0020     Datasheet: Available from the Fintek website
0021 
0022   * Fintek F71872F/FG
0023 
0024     Prefix: 'f71872f'
0025 
0026     Addresses scanned: none, address read from Super I/O config space
0027 
0028     Datasheet: Available from the Fintek website
0029 
0030 Author: Jean Delvare <jdelvare@suse.de>
0031 
0032 Thanks to Denis Kieft from Barracuda Networks for the donation of a
0033 test system (custom Jetway K8M8MS motherboard, with CPU and RAM) and
0034 for providing initial documentation.
0035 
0036 Thanks to Kris Chen and Aaron Huang from Fintek for answering technical
0037 questions and providing additional documentation.
0038 
0039 Thanks to Chris Lin from Jetway for providing wiring schematics and
0040 answering technical questions.
0041 
0042 
0043 Description
0044 -----------
0045 
0046 The Fintek F71805F/FG Super I/O chip includes complete hardware monitoring
0047 capabilities. It can monitor up to 9 voltages (counting its own power
0048 source), 3 fans and 3 temperature sensors.
0049 
0050 This chip also has fan controlling features, using either DC or PWM, in
0051 three different modes (one manual, two automatic).
0052 
0053 The Fintek F71872F/FG Super I/O chip is almost the same, with two
0054 additional internal voltages monitored (VSB and battery). It also features
0055 6 VID inputs. The VID inputs are not yet supported by this driver.
0056 
0057 The Fintek F71806F/FG Super-I/O chip is essentially the same as the
0058 F71872F/FG, and is undistinguishable therefrom.
0059 
0060 The driver assumes that no more than one chip is present, which seems
0061 reasonable.
0062 
0063 
0064 Voltage Monitoring
0065 ------------------
0066 
0067 Voltages are sampled by an 8-bit ADC with a LSB of 8 mV. The supported
0068 range is thus from 0 to 2.040 V. Voltage values outside of this range
0069 need external resistors. An exception is in0, which is used to monitor
0070 the chip's own power source (+3.3V), and is divided internally by a
0071 factor 2. For the F71872F/FG, in9 (VSB) and in10 (battery) are also
0072 divided internally by a factor 2.
0073 
0074 The two LSB of the voltage limit registers are not used (always 0), so
0075 you can only set the limits in steps of 32 mV (before scaling).
0076 
0077 The wirings and resistor values suggested by Fintek are as follow:
0078 
0079 ======= ======= =========== ==== ======= ============ ==============
0080 in      pin                                           expected
0081         name    use           R1      R2     divider  raw val.
0082 ======= ======= =========== ==== ======= ============ ==============
0083 in0     VCC     VCC3.3V     int.    int.        2.00    1.65 V
0084 in1     VIN1    VTT1.2V      10K       -        1.00    1.20 V
0085 in2     VIN2    VRAM        100K    100K        2.00   ~1.25 V [1]_
0086 in3     VIN3    VCHIPSET     47K    100K        1.47    2.24 V [2]_
0087 in4     VIN4    VCC5V       200K     47K        5.25    0.95 V
0088 in5     VIN5    +12V        200K     20K       11.00    1.05 V
0089 in6     VIN6    VCC1.5V      10K       -        1.00    1.50 V
0090 in7     VIN7    VCORE        10K       -        1.00   ~1.40 V [1]_
0091 in8     VIN8    VSB5V       200K     47K        1.00    0.95 V
0092 in10    VSB     VSB3.3V     int.    int.        2.00    1.65 V [3]_
0093 in9     VBAT    VBATTERY    int.    int.        2.00    1.50 V [3]_
0094 ======= ======= =========== ==== ======= ============ ==============
0095 
0096 .. [1] Depends on your hardware setup.
0097 .. [2] Obviously not correct, swapping R1 and R2 would make more sense.
0098 .. [3] F71872F/FG only.
0099 
0100 These values can be used as hints at best, as motherboard manufacturers
0101 are free to use a completely different setup. As a matter of fact, the
0102 Jetway K8M8MS uses a significantly different setup. You will have to
0103 find out documentation about your own motherboard, and edit sensors.conf
0104 accordingly.
0105 
0106 Each voltage measured has associated low and high limits, each of which
0107 triggers an alarm when crossed.
0108 
0109 
0110 Fan Monitoring
0111 --------------
0112 
0113 Fan rotation speeds are reported as 12-bit values from a gated clock
0114 signal. Speeds down to 366 RPM can be measured. There is no theoretical
0115 high limit, but values over 6000 RPM seem to cause problem. The effective
0116 resolution is much lower than you would expect, the step between different
0117 register values being 10 rather than 1.
0118 
0119 The chip assumes 2 pulse-per-revolution fans.
0120 
0121 An alarm is triggered if the rotation speed drops below a programmable
0122 limit or is too low to be measured.
0123 
0124 
0125 Temperature Monitoring
0126 ----------------------
0127 
0128 Temperatures are reported in degrees Celsius. Each temperature measured
0129 has a high limit, those crossing triggers an alarm. There is an associated
0130 hysteresis value, below which the temperature has to drop before the
0131 alarm is cleared.
0132 
0133 All temperature channels are external, there is no embedded temperature
0134 sensor. Each channel can be used for connecting either a thermal diode
0135 or a thermistor. The driver reports the currently selected mode, but
0136 doesn't allow changing it. In theory, the BIOS should have configured
0137 everything properly.
0138 
0139 
0140 Fan Control
0141 -----------
0142 
0143 Both PWM (pulse-width modulation) and DC fan speed control methods are
0144 supported. The right one to use depends on external circuitry on the
0145 motherboard, so the driver assumes that the BIOS set the method
0146 properly. The driver will report the method, but won't let you change
0147 it.
0148 
0149 When the PWM method is used, you can select the operating frequency,
0150 from 187.5 kHz (default) to 31 Hz. The best frequency depends on the
0151 fan model. As a rule of thumb, lower frequencies seem to give better
0152 control, but may generate annoying high-pitch noise. So a frequency just
0153 above the audible range, such as 25 kHz, may be a good choice; if this
0154 doesn't give you good linear control, try reducing it. Fintek recommends
0155 not going below 1 kHz, as the fan tachometers get confused by lower
0156 frequencies as well.
0157 
0158 When the DC method is used, Fintek recommends not going below 5 V, which
0159 corresponds to a pwm value of 106 for the driver. The driver doesn't
0160 enforce this limit though.
0161 
0162 Three different fan control modes are supported; the mode number is written
0163 to the pwm<n>_enable file.
0164 
0165 * 1: Manual mode
0166   You ask for a specific PWM duty cycle or DC voltage by writing to the
0167   pwm<n> file.
0168 
0169 * 2: Temperature mode
0170   You define 3 temperature/fan speed trip points using the
0171   pwm<n>_auto_point<m>_temp and _fan files. These define a staircase
0172   relationship between temperature and fan speed with two additional points
0173   interpolated between the values that you define. When the temperature
0174   is below auto_point1_temp the fan is switched off.
0175 
0176 * 3: Fan speed mode
0177   You ask for a specific fan speed by writing to the fan<n>_target file.
0178 
0179 Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
0180 fan2 and pwm3 to fan3. Temperature mode also requires that temp1 corresponds
0181 to pwm1 and fan1, etc.