1Kernel driver w83792d 2===================== 3 4Supported chips: 5 * Winbond W83792D 6 Prefix: 'w83792d' 7 Addresses scanned: I2C 0x2c - 0x2f 8 Datasheet: http://www.winbond.com.tw 9 10Author: Shane Huang (Winbond) 11 12 13Module Parameters 14----------------- 15 16* init int 17 (default 1) 18 Use 'init=0' to bypass initializing the chip. 19 Try this if your computer crashes when you load the module. 20 21* force_subclients=bus,caddr,saddr,saddr 22 This is used to force the i2c addresses for subclients of 23 a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b' 24 to force the subclients of chip 0x2f on bus 0 to i2c addresses 25 0x4a and 0x4b. 26 27 28Description 29----------- 30 31This driver implements support for the Winbond W83792AD/D. 32 33Detection of the chip can sometimes be foiled because it can be in an 34internal state that allows no clean access (Bank with ID register is not 35currently selected). If you know the address of the chip, use a 'force' 36parameter; this will put it into a more well-behaved state first. 37 38The driver implements three temperature sensors, seven fan rotation speed 39sensors, nine voltage sensors, and two automatic fan regulation 40strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II. 41Automatic fan control mode is possible only for fan1-fan3. Fan4-fan7 can run 42synchronized with selected fan (fan1-fan3). This functionality and manual PWM 43control for fan4-fan7 is not yet implemented. 44 45Temperatures are measured in degrees Celsius and measurement resolution is 1 46degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when 47the temperature gets higher than the Overtemperature Shutdown value; it stays 48on until the temperature falls below the Hysteresis value. 49 50Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 51triggered if the rotation speed has dropped below a programmable limit. Fan 52readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or 53128) to give the readings more range or accuracy. 54 55Voltage sensors (also known as IN sensors) report their values in millivolts. 56An alarm is triggered if the voltage has crossed a programmable minimum 57or maximum limit. 58 59Alarms are provided as output from "realtime status register". Following bits 60are defined: 61 62bit - alarm on: 630 - in0 641 - in1 652 - temp1 663 - temp2 674 - temp3 685 - fan1 696 - fan2 707 - fan3 718 - in2 729 - in3 7310 - in4 7411 - in5 7512 - in6 7613 - VID change 7714 - chassis 7815 - fan7 7916 - tart1 8017 - tart2 8118 - tart3 8219 - in7 8320 - in8 8421 - fan4 8522 - fan5 8623 - fan6 87 88Tart will be asserted while target temperature cannot be achieved after 3 minutes 89of full speed rotation of corresponding fan. 90 91In addition to the alarms described above, there is a CHAS alarm on the chips 92which triggers if your computer case is open (This one is latched, contrary 93to realtime alarms). 94 95The chips only update values each 3 seconds; reading them more often will 96do no harm, but will return 'old' values. 97 98 99W83792D PROBLEMS 100---------------- 101Known problems: 102 - This driver is only for Winbond W83792D C version device, there 103 are also some motherboards with B version W83792D device. The 104 calculation method to in6-in7(measured value, limits) is a little 105 different between C and B version. C or B version can be identified 106 by CR[0x49h]. 107 - The function of vid and vrm has not been finished, because I'm NOT 108 very familiar with them. Adding support is welcome. 109 - The function of chassis open detection needs more tests. 110 - If you have ASUS server board and chip was not found: Then you will 111 need to upgrade to latest (or beta) BIOS. If it does not help please 112 contact us. 113 114Fan control 115----------- 116 117Manual mode 118----------- 119 120Works as expected. You just need to specify desired PWM/DC value (fan speed) 121in appropriate pwm# file. 122 123Thermal cruise 124-------------- 125 126In this mode, W83792D provides the Smart Fan system to automatically control 127fan speed to keep the temperatures of CPU and the system within specific 128range. At first a wanted temperature and interval must be set. This is done 129via thermal_cruise# file. The tolerance# file serves to create T +- tolerance 130interval. The fan speed will be lowered as long as the current temperature 131remains below the thermal_cruise# +- tolerance# value. Once the temperature 132exceeds the high limit (T+tolerance), the fan will be turned on with a 133specific speed set by pwm# and automatically controlled its PWM duty cycle 134with the temperature varying. Three conditions may occur: 135 136(1) If the temperature still exceeds the high limit, PWM duty 137cycle will increase slowly. 138 139(2) If the temperature goes below the high limit, but still above the low 140limit (T-tolerance), the fan speed will be fixed at the current speed because 141the temperature is in the target range. 142 143(3) If the temperature goes below the low limit, PWM duty cycle will decrease 144slowly to 0 or a preset stop value until the temperature exceeds the low 145limit. (The preset stop value handling is not yet implemented in driver) 146 147Smart Fan II 148------------ 149 150W83792D also provides a special mode for fan. Four temperature points are 151available. When related temperature sensors detects the temperature in preset 152temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run 153on programmed value from sf2_level@_fan#. You need to set four temperatures 154for each fan. 155 156 157/sys files 158---------- 159 160pwm[1-3] - this file stores PWM duty cycle or DC value (fan speed) in range: 161 0 (stop) to 255 (full) 162pwm[1-3]_enable - this file controls mode of fan/temperature control: 163 * 0 Disabled 164 * 1 Manual mode 165 * 2 Smart Fan II 166 * 3 Thermal Cruise 167pwm[1-3]_mode - Select PWM of DC mode 168 * 0 DC 169 * 1 PWM 170thermal_cruise[1-3] - Selects the desired temperature for cruise (degC) 171tolerance[1-3] - Value in degrees of Celsius (degC) for +- T 172sf2_point[1-4]_fan[1-3] - four temperature points for each fan for Smart Fan II 173sf2_level[1-3]_fan[1-3] - three PWM/DC levels for each fan for Smart Fan II 174