^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Kernel driver f71882fg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Supported chips:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Fintek F71808E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Prefix: 'f71808e'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Datasheet: Not public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * Fintek F71808A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Prefix: 'f71808a'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Datasheet: Not public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) * Fintek F71858FG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Prefix: 'f71858fg'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) Datasheet: Available from the Fintek website
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) * Fintek F71862FG and F71863FG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Prefix: 'f71862fg'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) Datasheet: Available from the Fintek website
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) * Fintek F71869F and F71869E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) Prefix: 'f71869'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) Datasheet: Available from the Fintek website
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) * Fintek F71869A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) Prefix: 'f71869a'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) Datasheet: Not public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) * Fintek F71882FG and F71883FG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) Prefix: 'f71882fg'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) Datasheet: Available from the Fintek website
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) * Fintek F71889FG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) Prefix: 'f71889fg'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) Datasheet: Available from the Fintek website
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) * Fintek F71889ED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) Prefix: 'f71889ed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) Datasheet: Should become available on the Fintek website soon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) * Fintek F71889A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Prefix: 'f71889a'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) Datasheet: Should become available on the Fintek website soon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) * Fintek F8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) Prefix: 'f8000'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) Datasheet: Not public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) * Fintek F81801U
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) Prefix: 'f71889fg'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) Datasheet: Not public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) Note:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) This is the 64-pin variant of the F71889FG, they have the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) same device ID and are fully compatible as far as hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) monitoring is concerned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) * Fintek F81865F
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) Prefix: 'f81865f'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) Addresses scanned: none, address read from Super I/O config space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) Datasheet: Available from the Fintek website
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) Author: Hans de Goede <hdegoede@redhat.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) Fintek F718xx/F8000 Super I/O chips include complete hardware monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) capabilities. They can monitor up to 9 voltages, 4 fans and 3 temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) sensors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) These chips also have fan controlling features, using either DC or PWM, in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) three different modes (one manual, two automatic).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) The driver assumes that no more than one chip is present, which seems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) reasonable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) Monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) ----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) The Voltage, Fan and Temperature Monitoring uses the standard sysfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) interface as documented in sysfs-interface, without any exceptions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) Fan Control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) Both PWM (pulse-width modulation) and DC fan speed control methods are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) supported. The right one to use depends on external circuitry on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) motherboard, so the driver assumes that the BIOS set the method
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) properly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) Note that the lowest numbered temperature zone trip point corresponds to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) the border between the highest and one but highest temperature zones, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) vica versa. So the temperature zone trip points 1-4 (or 1-2) go from high temp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) to low temp! This is how things are implemented in the IC, and the driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) mimics this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) There are 2 modes to specify the speed of the fan, PWM duty cycle (or DC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) voltage) mode, where 0-100% duty cycle (0-100% of 12V) is specified. And RPM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) mode where the actual RPM of the fan (as measured) is controlled and the speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) gets specified as 0-100% of the fan#_full_speed file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) Since both modes work in a 0-100% (mapped to 0-255) scale, there isn't a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) whole lot of a difference when modifying fan control settings. The only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) important difference is that in RPM mode the 0-100% controls the fan speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) between 0-100% of fan#_full_speed. It is assumed that if the BIOS programs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) RPM mode, it will also set fan#_full_speed properly, if it does not then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) fan control will not work properly, unless you set a sane fan#_full_speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) value yourself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) Switching between these modes requires re-initializing a whole bunch of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) registers, so the mode which the BIOS has set is kept. The mode is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) printed when loading the driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) Three different fan control modes are supported; the mode number is written
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) to the pwm#_enable file. Note that not all modes are supported on all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) chips, and some modes may only be available in RPM / PWM mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) Writing an unsupported mode will result in an invalid parameter error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) * 1: Manual mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) You ask for a specific PWM duty cycle / DC voltage or a specific % of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) fan#_full_speed by writing to the pwm# file. This mode is only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) available on the F71858FG / F8000 if the fan channel is in RPM mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) * 2: Normal auto mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) You can define a number of temperature/fan speed trip points, which % the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) fan should run at at this temp and which temp a fan should follow using the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) standard sysfs interface. The number and type of trip points is chip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) depended, see which files are available in sysfs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) Fan/PWM channel 3 of the F8000 is always in this mode!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) * 3: Thermostat mode (Only available on the F8000 when in duty cycle mode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) The fan speed is regulated to keep the temp the fan is mapped to between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) temp#_auto_point2_temp and temp#_auto_point3_temp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) All of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) fan2 and pwm3 to fan3.