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