1*4882a593SmuzhiyunKernel driver f71805f 2*4882a593Smuzhiyun===================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSupported chips: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun * Fintek F71805F/FG 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun Prefix: 'f71805f' 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Addresses scanned: none, address read from Super I/O config space 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun Datasheet: Available from the Fintek website 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun * Fintek F71806F/FG 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun Prefix: 'f71872f' 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun Addresses scanned: none, address read from Super I/O config space 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun Datasheet: Available from the Fintek website 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun * Fintek F71872F/FG 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun Prefix: 'f71872f' 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*4882a593SmuzhiyunAuthor: Jean Delvare <jdelvare@suse.de> 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunThanks to Denis Kieft from Barracuda Networks for the donation of a 33*4882a593Smuzhiyuntest system (custom Jetway K8M8MS motherboard, with CPU and RAM) and 34*4882a593Smuzhiyunfor providing initial documentation. 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunThanks to Kris Chen and Aaron Huang from Fintek for answering technical 37*4882a593Smuzhiyunquestions and providing additional documentation. 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunThanks to Chris Lin from Jetway for providing wiring schematics and 40*4882a593Smuzhiyunanswering technical questions. 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunDescription 44*4882a593Smuzhiyun----------- 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunThe Fintek F71805F/FG Super I/O chip includes complete hardware monitoring 47*4882a593Smuzhiyuncapabilities. It can monitor up to 9 voltages (counting its own power 48*4882a593Smuzhiyunsource), 3 fans and 3 temperature sensors. 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunThis chip also has fan controlling features, using either DC or PWM, in 51*4882a593Smuzhiyunthree different modes (one manual, two automatic). 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunThe Fintek F71872F/FG Super I/O chip is almost the same, with two 54*4882a593Smuzhiyunadditional internal voltages monitored (VSB and battery). It also features 55*4882a593Smuzhiyun6 VID inputs. The VID inputs are not yet supported by this driver. 56*4882a593Smuzhiyun 57*4882a593SmuzhiyunThe Fintek F71806F/FG Super-I/O chip is essentially the same as the 58*4882a593SmuzhiyunF71872F/FG, and is undistinguishable therefrom. 59*4882a593Smuzhiyun 60*4882a593SmuzhiyunThe driver assumes that no more than one chip is present, which seems 61*4882a593Smuzhiyunreasonable. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun 64*4882a593SmuzhiyunVoltage Monitoring 65*4882a593Smuzhiyun------------------ 66*4882a593Smuzhiyun 67*4882a593SmuzhiyunVoltages are sampled by an 8-bit ADC with a LSB of 8 mV. The supported 68*4882a593Smuzhiyunrange is thus from 0 to 2.040 V. Voltage values outside of this range 69*4882a593Smuzhiyunneed external resistors. An exception is in0, which is used to monitor 70*4882a593Smuzhiyunthe chip's own power source (+3.3V), and is divided internally by a 71*4882a593Smuzhiyunfactor 2. For the F71872F/FG, in9 (VSB) and in10 (battery) are also 72*4882a593Smuzhiyundivided internally by a factor 2. 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunThe two LSB of the voltage limit registers are not used (always 0), so 75*4882a593Smuzhiyunyou can only set the limits in steps of 32 mV (before scaling). 76*4882a593Smuzhiyun 77*4882a593SmuzhiyunThe wirings and resistor values suggested by Fintek are as follow: 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun======= ======= =========== ==== ======= ============ ============== 80*4882a593Smuzhiyunin pin expected 81*4882a593Smuzhiyun name use R1 R2 divider raw val. 82*4882a593Smuzhiyun======= ======= =========== ==== ======= ============ ============== 83*4882a593Smuzhiyunin0 VCC VCC3.3V int. int. 2.00 1.65 V 84*4882a593Smuzhiyunin1 VIN1 VTT1.2V 10K - 1.00 1.20 V 85*4882a593Smuzhiyunin2 VIN2 VRAM 100K 100K 2.00 ~1.25 V [1]_ 86*4882a593Smuzhiyunin3 VIN3 VCHIPSET 47K 100K 1.47 2.24 V [2]_ 87*4882a593Smuzhiyunin4 VIN4 VCC5V 200K 47K 5.25 0.95 V 88*4882a593Smuzhiyunin5 VIN5 +12V 200K 20K 11.00 1.05 V 89*4882a593Smuzhiyunin6 VIN6 VCC1.5V 10K - 1.00 1.50 V 90*4882a593Smuzhiyunin7 VIN7 VCORE 10K - 1.00 ~1.40 V [1]_ 91*4882a593Smuzhiyunin8 VIN8 VSB5V 200K 47K 1.00 0.95 V 92*4882a593Smuzhiyunin10 VSB VSB3.3V int. int. 2.00 1.65 V [3]_ 93*4882a593Smuzhiyunin9 VBAT VBATTERY int. int. 2.00 1.50 V [3]_ 94*4882a593Smuzhiyun======= ======= =========== ==== ======= ============ ============== 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun.. [1] Depends on your hardware setup. 97*4882a593Smuzhiyun.. [2] Obviously not correct, swapping R1 and R2 would make more sense. 98*4882a593Smuzhiyun.. [3] F71872F/FG only. 99*4882a593Smuzhiyun 100*4882a593SmuzhiyunThese values can be used as hints at best, as motherboard manufacturers 101*4882a593Smuzhiyunare free to use a completely different setup. As a matter of fact, the 102*4882a593SmuzhiyunJetway K8M8MS uses a significantly different setup. You will have to 103*4882a593Smuzhiyunfind out documentation about your own motherboard, and edit sensors.conf 104*4882a593Smuzhiyunaccordingly. 105*4882a593Smuzhiyun 106*4882a593SmuzhiyunEach voltage measured has associated low and high limits, each of which 107*4882a593Smuzhiyuntriggers an alarm when crossed. 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun 110*4882a593SmuzhiyunFan Monitoring 111*4882a593Smuzhiyun-------------- 112*4882a593Smuzhiyun 113*4882a593SmuzhiyunFan rotation speeds are reported as 12-bit values from a gated clock 114*4882a593Smuzhiyunsignal. Speeds down to 366 RPM can be measured. There is no theoretical 115*4882a593Smuzhiyunhigh limit, but values over 6000 RPM seem to cause problem. The effective 116*4882a593Smuzhiyunresolution is much lower than you would expect, the step between different 117*4882a593Smuzhiyunregister values being 10 rather than 1. 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunThe chip assumes 2 pulse-per-revolution fans. 120*4882a593Smuzhiyun 121*4882a593SmuzhiyunAn alarm is triggered if the rotation speed drops below a programmable 122*4882a593Smuzhiyunlimit or is too low to be measured. 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun 125*4882a593SmuzhiyunTemperature Monitoring 126*4882a593Smuzhiyun---------------------- 127*4882a593Smuzhiyun 128*4882a593SmuzhiyunTemperatures are reported in degrees Celsius. Each temperature measured 129*4882a593Smuzhiyunhas a high limit, those crossing triggers an alarm. There is an associated 130*4882a593Smuzhiyunhysteresis value, below which the temperature has to drop before the 131*4882a593Smuzhiyunalarm is cleared. 132*4882a593Smuzhiyun 133*4882a593SmuzhiyunAll temperature channels are external, there is no embedded temperature 134*4882a593Smuzhiyunsensor. Each channel can be used for connecting either a thermal diode 135*4882a593Smuzhiyunor a thermistor. The driver reports the currently selected mode, but 136*4882a593Smuzhiyundoesn't allow changing it. In theory, the BIOS should have configured 137*4882a593Smuzhiyuneverything properly. 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun 140*4882a593SmuzhiyunFan Control 141*4882a593Smuzhiyun----------- 142*4882a593Smuzhiyun 143*4882a593SmuzhiyunBoth PWM (pulse-width modulation) and DC fan speed control methods are 144*4882a593Smuzhiyunsupported. The right one to use depends on external circuitry on the 145*4882a593Smuzhiyunmotherboard, so the driver assumes that the BIOS set the method 146*4882a593Smuzhiyunproperly. The driver will report the method, but won't let you change 147*4882a593Smuzhiyunit. 148*4882a593Smuzhiyun 149*4882a593SmuzhiyunWhen the PWM method is used, you can select the operating frequency, 150*4882a593Smuzhiyunfrom 187.5 kHz (default) to 31 Hz. The best frequency depends on the 151*4882a593Smuzhiyunfan model. As a rule of thumb, lower frequencies seem to give better 152*4882a593Smuzhiyuncontrol, but may generate annoying high-pitch noise. So a frequency just 153*4882a593Smuzhiyunabove the audible range, such as 25 kHz, may be a good choice; if this 154*4882a593Smuzhiyundoesn't give you good linear control, try reducing it. Fintek recommends 155*4882a593Smuzhiyunnot going below 1 kHz, as the fan tachometers get confused by lower 156*4882a593Smuzhiyunfrequencies as well. 157*4882a593Smuzhiyun 158*4882a593SmuzhiyunWhen the DC method is used, Fintek recommends not going below 5 V, which 159*4882a593Smuzhiyuncorresponds to a pwm value of 106 for the driver. The driver doesn't 160*4882a593Smuzhiyunenforce this limit though. 161*4882a593Smuzhiyun 162*4882a593SmuzhiyunThree different fan control modes are supported; the mode number is written 163*4882a593Smuzhiyunto the pwm<n>_enable file. 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun* 1: Manual mode 166*4882a593Smuzhiyun You ask for a specific PWM duty cycle or DC voltage by writing to the 167*4882a593Smuzhiyun pwm<n> file. 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun* 2: Temperature mode 170*4882a593Smuzhiyun You define 3 temperature/fan speed trip points using the 171*4882a593Smuzhiyun pwm<n>_auto_point<m>_temp and _fan files. These define a staircase 172*4882a593Smuzhiyun relationship between temperature and fan speed with two additional points 173*4882a593Smuzhiyun interpolated between the values that you define. When the temperature 174*4882a593Smuzhiyun is below auto_point1_temp the fan is switched off. 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun* 3: Fan speed mode 177*4882a593Smuzhiyun You ask for a specific fan speed by writing to the fan<n>_target file. 178*4882a593Smuzhiyun 179*4882a593SmuzhiyunBoth of the automatic modes require that pwm1 corresponds to fan1, pwm2 to 180*4882a593Smuzhiyunfan2 and pwm3 to fan3. Temperature mode also requires that temp1 corresponds 181*4882a593Smuzhiyunto pwm1 and fan1, etc. 182