200 lines · plain
1Kernel driver w83792d2=====================3 4Supported chips:5 6 * Winbond W83792D7 8 Prefix: 'w83792d'9 10 Addresses scanned: I2C 0x2c - 0x2f11 12 Datasheet: http://www.winbond.com.tw13 14Author: Shane Huang (Winbond)15Updated: Roger Lucas16 17 18Module Parameters19-----------------20 21* init int22 (default 1)23 24 Use 'init=0' to bypass initializing the chip.25 Try this if your computer crashes when you load the module.26 27* force_subclients=bus,caddr,saddr,saddr28 This is used to force the i2c addresses for subclients of29 a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b`30 to force the subclients of chip 0x2f on bus 0 to i2c addresses31 0x4a and 0x4b.32 33 34Description35-----------36 37This driver implements support for the Winbond W83792AD/D.38 39Detection of the chip can sometimes be foiled because it can be in an40internal state that allows no clean access (Bank with ID register is not41currently selected). If you know the address of the chip, use a 'force'42parameter; this will put it into a more well-behaved state first.43 44The driver implements three temperature sensors, seven fan rotation speed45sensors, nine voltage sensors, and two automatic fan regulation46strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.47 48The driver also implements up to seven fan control outputs: pwm1-7. Pwm1-749can be configured to PWM output or Analogue DC output via their associated50pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on51how the W83792AD/D was configured by the BIOS.52 53Automatic fan control mode is possible only for fan1-fan3.54 55For all pwmX outputs, a value of 0 means minimum fan speed and a value of56255 means maximum fan speed.57 58Temperatures are measured in degrees Celsius and measurement resolution is 159degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when60the temperature gets higher than the Overtemperature Shutdown value; it stays61on until the temperature falls below the Hysteresis value.62 63Fan rotation speeds are reported in RPM (rotations per minute). An alarm is64triggered if the rotation speed has dropped below a programmable limit. Fan65readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or66128) to give the readings more range or accuracy.67 68Voltage sensors (also known as IN sensors) report their values in millivolts.69An alarm is triggered if the voltage has crossed a programmable minimum70or maximum limit.71 72Alarms are provided as output from "realtime status register". Following bits73are defined:74 75==== ==========76bit alarm on77==== ==========780 in0791 in1802 temp1813 temp2824 temp3835 fan1846 fan2857 fan3868 in2879 in38810 in48911 in59012 in69113 VID change9214 chassis9315 fan79416 tart19517 tart29618 tart39719 in79820 in89921 fan410022 fan510123 fan6102==== ==========103 104Tart will be asserted while target temperature cannot be achieved after 3 minutes105of full speed rotation of corresponding fan.106 107In addition to the alarms described above, there is a CHAS alarm on the chips108which triggers if your computer case is open (This one is latched, contrary109to realtime alarms).110 111The chips only update values each 3 seconds; reading them more often will112do no harm, but will return 'old' values.113 114 115W83792D PROBLEMS116----------------117Known problems:118 - This driver is only for Winbond W83792D C version device, there119 are also some motherboards with B version W83792D device. The120 calculation method to in6-in7(measured value, limits) is a little121 different between C and B version. C or B version can be identified122 by CR[0x49h].123 - The function of vid and vrm has not been finished, because I'm NOT124 very familiar with them. Adding support is welcome.125 - The function of chassis open detection needs more tests.126 - If you have ASUS server board and chip was not found: Then you will127 need to upgrade to latest (or beta) BIOS. If it does not help please128 contact us.129 130Fan control131-----------132 133Manual mode134-----------135 136Works as expected. You just need to specify desired PWM/DC value (fan speed)137in appropriate pwm# file.138 139Thermal cruise140--------------141 142In this mode, W83792D provides the Smart Fan system to automatically control143fan speed to keep the temperatures of CPU and the system within specific144range. At first a wanted temperature and interval must be set. This is done145via thermal_cruise# file. The tolerance# file serves to create T +- tolerance146interval. The fan speed will be lowered as long as the current temperature147remains below the thermal_cruise# +- tolerance# value. Once the temperature148exceeds the high limit (T+tolerance), the fan will be turned on with a149specific speed set by pwm# and automatically controlled its PWM duty cycle150with the temperature varying. Three conditions may occur:151 152(1) If the temperature still exceeds the high limit, PWM duty153cycle will increase slowly.154 155(2) If the temperature goes below the high limit, but still above the low156limit (T-tolerance), the fan speed will be fixed at the current speed because157the temperature is in the target range.158 159(3) If the temperature goes below the low limit, PWM duty cycle will decrease160slowly to 0 or a preset stop value until the temperature exceeds the low161limit. (The preset stop value handling is not yet implemented in driver)162 163Smart Fan II164------------165 166W83792D also provides a special mode for fan. Four temperature points are167available. When related temperature sensors detects the temperature in preset168temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run169on programmed value from sf2_level@_fan#. You need to set four temperatures170for each fan.171 172 173/sys files174----------175 176pwm[1-7]177 - this file stores PWM duty cycle or DC value (fan speed) in range:178 179 0 (stop) to 255 (full)180pwm[1-3]_enable181 - this file controls mode of fan/temperature control:182 183 * 0 Disabled184 * 1 Manual mode185 * 2 Smart Fan II186 * 3 Thermal Cruise187pwm[1-7]_mode188 - Select PWM or DC mode189 190 * 0 DC191 * 1 PWM192thermal_cruise[1-3]193 - Selects the desired temperature for cruise (degC)194tolerance[1-3]195 - Value in degrees of Celsius (degC) for +- T196sf2_point[1-4]_fan[1-3]197 - four temperature points for each fan for Smart Fan II198sf2_level[1-3]_fan[1-3]199 - three PWM/DC levels for each fan for Smart Fan II200