1 Kernel driver w83792d 1 Kernel driver w83792d 2 ===================== 2 ===================== 3 3 4 Supported chips: 4 Supported chips: 5 5 6 * Winbond W83792D 6 * Winbond W83792D 7 7 8 Prefix: 'w83792d' 8 Prefix: 'w83792d' 9 9 10 Addresses scanned: I2C 0x2c - 0x2f 10 Addresses scanned: I2C 0x2c - 0x2f 11 11 12 Datasheet: http://www.winbond.com.tw 12 Datasheet: http://www.winbond.com.tw 13 13 14 Author: Shane Huang (Winbond) 14 Author: Shane Huang (Winbond) 15 Updated: Roger Lucas 15 Updated: Roger Lucas 16 16 17 17 18 Module Parameters 18 Module Parameters 19 ----------------- 19 ----------------- 20 20 21 * init int 21 * init int 22 (default 1) 22 (default 1) 23 23 24 Use 'init=0' to bypass initializing the ch 24 Use 'init=0' to bypass initializing the chip. 25 Try this if your computer crashes when you 25 Try this if your computer crashes when you load the module. 26 26 27 * force_subclients=bus,caddr,saddr,saddr 27 * force_subclients=bus,caddr,saddr,saddr 28 This is used to force the i2c addresses fo 28 This is used to force the i2c addresses for subclients of 29 a certain chip. Example usage is `force_su 29 a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b` 30 to force the subclients of chip 0x2f on bu 30 to force the subclients of chip 0x2f on bus 0 to i2c addresses 31 0x4a and 0x4b. 31 0x4a and 0x4b. 32 32 33 33 34 Description 34 Description 35 ----------- 35 ----------- 36 36 37 This driver implements support for the Winbond 37 This driver implements support for the Winbond W83792AD/D. 38 38 39 Detection of the chip can sometimes be foiled 39 Detection of the chip can sometimes be foiled because it can be in an 40 internal state that allows no clean access (Ba 40 internal state that allows no clean access (Bank with ID register is not 41 currently selected). If you know the address o 41 currently selected). If you know the address of the chip, use a 'force' 42 parameter; this will put it into a more well-b 42 parameter; this will put it into a more well-behaved state first. 43 43 44 The driver implements three temperature sensor 44 The driver implements three temperature sensors, seven fan rotation speed 45 sensors, nine voltage sensors, and two automat 45 sensors, nine voltage sensors, and two automatic fan regulation 46 strategies called: Smart Fan I (Thermal Cruise 46 strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II. 47 47 48 The driver also implements up to seven fan con 48 The driver also implements up to seven fan control outputs: pwm1-7. Pwm1-7 49 can be configured to PWM output or Analogue DC 49 can be configured to PWM output or Analogue DC output via their associated 50 pwmX_mode. Outputs pwm4 through pwm7 may or ma 50 pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on 51 how the W83792AD/D was configured by the BIOS. 51 how the W83792AD/D was configured by the BIOS. 52 52 53 Automatic fan control mode is possible only fo 53 Automatic fan control mode is possible only for fan1-fan3. 54 54 55 For all pwmX outputs, a value of 0 means minim 55 For all pwmX outputs, a value of 0 means minimum fan speed and a value of 56 255 means maximum fan speed. 56 255 means maximum fan speed. 57 57 58 Temperatures are measured in degrees Celsius a 58 Temperatures are measured in degrees Celsius and measurement resolution is 1 59 degC for temp1 and 0.5 degC for temp2 and temp 59 degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when 60 the temperature gets higher than the Overtempe 60 the temperature gets higher than the Overtemperature Shutdown value; it stays 61 on until the temperature falls below the Hyste 61 on until the temperature falls below the Hysteresis value. 62 62 63 Fan rotation speeds are reported in RPM (rotat 63 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 64 triggered if the rotation speed has dropped be 64 triggered if the rotation speed has dropped below a programmable limit. Fan 65 readings can be divided by a programmable divi 65 readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or 66 128) to give the readings more range or accura 66 128) to give the readings more range or accuracy. 67 67 68 Voltage sensors (also known as IN sensors) rep 68 Voltage sensors (also known as IN sensors) report their values in millivolts. 69 An alarm is triggered if the voltage has cross 69 An alarm is triggered if the voltage has crossed a programmable minimum 70 or maximum limit. 70 or maximum limit. 71 71 72 Alarms are provided as output from "realtime s 72 Alarms are provided as output from "realtime status register". Following bits 73 are defined: 73 are defined: 74 74 75 ==== ========== 75 ==== ========== 76 bit alarm on 76 bit alarm on 77 ==== ========== 77 ==== ========== 78 0 in0 78 0 in0 79 1 in1 79 1 in1 80 2 temp1 80 2 temp1 81 3 temp2 81 3 temp2 82 4 temp3 82 4 temp3 83 5 fan1 83 5 fan1 84 6 fan2 84 6 fan2 85 7 fan3 85 7 fan3 86 8 in2 86 8 in2 87 9 in3 87 9 in3 88 10 in4 88 10 in4 89 11 in5 89 11 in5 90 12 in6 90 12 in6 91 13 VID change 91 13 VID change 92 14 chassis 92 14 chassis 93 15 fan7 93 15 fan7 94 16 tart1 94 16 tart1 95 17 tart2 95 17 tart2 96 18 tart3 96 18 tart3 97 19 in7 97 19 in7 98 20 in8 98 20 in8 99 21 fan4 99 21 fan4 100 22 fan5 100 22 fan5 101 23 fan6 101 23 fan6 102 ==== ========== 102 ==== ========== 103 103 104 Tart will be asserted while target temperature 104 Tart will be asserted while target temperature cannot be achieved after 3 minutes 105 of full speed rotation of corresponding fan. 105 of full speed rotation of corresponding fan. 106 106 107 In addition to the alarms described above, the 107 In addition to the alarms described above, there is a CHAS alarm on the chips 108 which triggers if your computer case is open ( 108 which triggers if your computer case is open (This one is latched, contrary 109 to realtime alarms). 109 to realtime alarms). 110 110 111 The chips only update values each 3 seconds; r 111 The chips only update values each 3 seconds; reading them more often will 112 do no harm, but will return 'old' values. 112 do no harm, but will return 'old' values. 113 113 114 114 115 W83792D PROBLEMS 115 W83792D PROBLEMS 116 ---------------- 116 ---------------- 117 Known problems: 117 Known problems: 118 - This driver is only for Winbond W837 118 - This driver is only for Winbond W83792D C version device, there 119 are also some motherboards with B ve 119 are also some motherboards with B version W83792D device. The 120 calculation method to in6-in7(measur 120 calculation method to in6-in7(measured value, limits) is a little 121 different between C and B version. C 121 different between C and B version. C or B version can be identified 122 by CR[0x49h]. 122 by CR[0x49h]. 123 - The function of vid and vrm has not 123 - The function of vid and vrm has not been finished, because I'm NOT 124 very familiar with them. Adding supp 124 very familiar with them. Adding support is welcome. 125 - The function of chassis open detecti 125 - The function of chassis open detection needs more tests. 126 - If you have ASUS server board and ch 126 - If you have ASUS server board and chip was not found: Then you will 127 need to upgrade to latest (or beta) 127 need to upgrade to latest (or beta) BIOS. If it does not help please 128 contact us. 128 contact us. 129 129 130 Fan control 130 Fan control 131 ----------- 131 ----------- 132 132 133 Manual mode 133 Manual mode 134 ----------- 134 ----------- 135 135 136 Works as expected. You just need to specify de 136 Works as expected. You just need to specify desired PWM/DC value (fan speed) 137 in appropriate pwm# file. 137 in appropriate pwm# file. 138 138 139 Thermal cruise 139 Thermal cruise 140 -------------- 140 -------------- 141 141 142 In this mode, W83792D provides the Smart Fan s 142 In this mode, W83792D provides the Smart Fan system to automatically control 143 fan speed to keep the temperatures of CPU and 143 fan speed to keep the temperatures of CPU and the system within specific 144 range. At first a wanted temperature and inter 144 range. At first a wanted temperature and interval must be set. This is done 145 via thermal_cruise# file. The tolerance# file 145 via thermal_cruise# file. The tolerance# file serves to create T +- tolerance 146 interval. The fan speed will be lowered as lon 146 interval. The fan speed will be lowered as long as the current temperature 147 remains below the thermal_cruise# +- tolerance 147 remains below the thermal_cruise# +- tolerance# value. Once the temperature 148 exceeds the high limit (T+tolerance), the fan 148 exceeds the high limit (T+tolerance), the fan will be turned on with a 149 specific speed set by pwm# and automatically c 149 specific speed set by pwm# and automatically controlled its PWM duty cycle 150 with the temperature varying. Three conditions 150 with the temperature varying. Three conditions may occur: 151 151 152 (1) If the temperature still exceeds the high 152 (1) If the temperature still exceeds the high limit, PWM duty 153 cycle will increase slowly. 153 cycle will increase slowly. 154 154 155 (2) If the temperature goes below the high lim 155 (2) If the temperature goes below the high limit, but still above the low 156 limit (T-tolerance), the fan speed will be fix 156 limit (T-tolerance), the fan speed will be fixed at the current speed because 157 the temperature is in the target range. 157 the temperature is in the target range. 158 158 159 (3) If the temperature goes below the low limi 159 (3) If the temperature goes below the low limit, PWM duty cycle will decrease 160 slowly to 0 or a preset stop value until the t 160 slowly to 0 or a preset stop value until the temperature exceeds the low 161 limit. (The preset stop value handling is not 161 limit. (The preset stop value handling is not yet implemented in driver) 162 162 163 Smart Fan II 163 Smart Fan II 164 ------------ 164 ------------ 165 165 166 W83792D also provides a special mode for fan. 166 W83792D also provides a special mode for fan. Four temperature points are 167 available. When related temperature sensors de 167 available. When related temperature sensors detects the temperature in preset 168 temperature region (sf2_point@_fan# +- toleran 168 temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run 169 on programmed value from sf2_level@_fan#. You 169 on programmed value from sf2_level@_fan#. You need to set four temperatures 170 for each fan. 170 for each fan. 171 171 172 172 173 /sys files 173 /sys files 174 ---------- 174 ---------- 175 175 176 pwm[1-7] 176 pwm[1-7] 177 - this file stores PWM duty cycle or D 177 - this file stores PWM duty cycle or DC value (fan speed) in range: 178 178 179 0 (stop) to 255 (full) 179 0 (stop) to 255 (full) 180 pwm[1-3]_enable 180 pwm[1-3]_enable 181 - this file controls mode of fan/tempe 181 - this file controls mode of fan/temperature control: 182 182 183 * 0 Disabled 183 * 0 Disabled 184 * 1 Manual mode 184 * 1 Manual mode 185 * 2 Smart Fan II 185 * 2 Smart Fan II 186 * 3 Thermal Cruise 186 * 3 Thermal Cruise 187 pwm[1-7]_mode 187 pwm[1-7]_mode 188 - Select PWM or DC mode 188 - Select PWM or DC mode 189 189 190 * 0 DC 190 * 0 DC 191 * 1 PWM 191 * 1 PWM 192 thermal_cruise[1-3] 192 thermal_cruise[1-3] 193 - Selects the desired temperature for 193 - Selects the desired temperature for cruise (degC) 194 tolerance[1-3] 194 tolerance[1-3] 195 - Value in degrees of Celsius (degC) f 195 - Value in degrees of Celsius (degC) for +- T 196 sf2_point[1-4]_fan[1-3] 196 sf2_point[1-4]_fan[1-3] 197 - four temperature points for each fan 197 - four temperature points for each fan for Smart Fan II 198 sf2_level[1-3]_fan[1-3] 198 sf2_level[1-3]_fan[1-3] 199 - three PWM/DC levels for each fan for 199 - three PWM/DC levels for each fan for Smart Fan II
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.