| 1 | Kernel driver `w83792d.o' |
|---|
| 2 | ========================= |
|---|
| 3 | |
|---|
| 4 | Status: W83792D support is complete and well-tested. |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | Supported chips: |
|---|
| 8 | * Winbond W83792D |
|---|
| 9 | Prefix: 'w83792d' |
|---|
| 10 | Addresses scanned: I2C 0x2c - 0x2f |
|---|
| 11 | Datasheet: http://www.winbond.com.tw/E-WINBONDHTM/partner/PDFresult.asp?Pname=1035 |
|---|
| 12 | |
|---|
| 13 | Author: Chunhao Huang |
|---|
| 14 | Contact: DZShen <DZShen@Winbond.com.tw> |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | Module Parameters |
|---|
| 18 | ----------------- |
|---|
| 19 | |
|---|
| 20 | * init int |
|---|
| 21 | (default 1) |
|---|
| 22 | Use 'init=0' to bypass initializing the chip. |
|---|
| 23 | Try this if your computer crashes when you load the module. |
|---|
| 24 | |
|---|
| 25 | * force_subclients=bus,caddr,saddr,saddr |
|---|
| 26 | This is used to force the i2c addresses for subclients of |
|---|
| 27 | a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b' |
|---|
| 28 | to force the subclients of chip 0x2f on bus 0 to i2c addresses |
|---|
| 29 | 0x4a and 0x4b. |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | Description |
|---|
| 33 | ----------- |
|---|
| 34 | |
|---|
| 35 | This driver implements support for the Winbond W83792AD/D. |
|---|
| 36 | |
|---|
| 37 | Detection of the chip can sometimes be foiled because it can be in an |
|---|
| 38 | internal state that allows no clean access (Bank with ID register is not |
|---|
| 39 | currently selected). If you know the address of the chip, use a 'force' |
|---|
| 40 | parameter; this will put it into a more well-behaved state first. |
|---|
| 41 | |
|---|
| 42 | The driver implements three temperature sensors, seven fan rotation speed |
|---|
| 43 | sensors, nine voltage sensors, and two automatic fan regulation |
|---|
| 44 | strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II. |
|---|
| 45 | Automatic fan control mode is possible only for fan1-fan3. Fan4-fan7 can run |
|---|
| 46 | synchronized with selected fan (fan1-fan3). This functionality and manual PWM |
|---|
| 47 | control for fan4-fan7 is not yet implemented. |
|---|
| 48 | |
|---|
| 49 | Temperatures are measured in degrees Celsius and measurement resolution is 1 |
|---|
| 50 | degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when |
|---|
| 51 | the temperature gets higher than the Overtemperature Shutdown value; it stays |
|---|
| 52 | on until the temperature falls below the Hysteresis value. |
|---|
| 53 | |
|---|
| 54 | Fan rotation speeds are reported in RPM (rotations per minute). An alarm is |
|---|
| 55 | triggered if the rotation speed has dropped below a programmable limit. Fan |
|---|
| 56 | readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or |
|---|
| 57 | 128) to give the readings more range or accuracy. This driver modifies the |
|---|
| 58 | fan divisor automatically to get the reasonable RPM rotation range. |
|---|
| 59 | |
|---|
| 60 | Voltage sensors (also known as IN sensors) report their values in volts. |
|---|
| 61 | An alarm is triggered if the voltage has crossed a programmable minimum |
|---|
| 62 | or maximum limit. |
|---|
| 63 | |
|---|
| 64 | Alarms are provided as output from "realtime status register". Following bits |
|---|
| 65 | are defined: |
|---|
| 66 | |
|---|
| 67 | bit - alarm on: |
|---|
| 68 | 0 - in0 |
|---|
| 69 | 1 - in1 |
|---|
| 70 | 2 - temp1 |
|---|
| 71 | 3 - temp2 |
|---|
| 72 | 4 - temp3 |
|---|
| 73 | 5 - fan1 |
|---|
| 74 | 6 - fan2 |
|---|
| 75 | 7 - fan3 |
|---|
| 76 | 8 - in2 |
|---|
| 77 | 9 - in3 |
|---|
| 78 | 10 - in4 |
|---|
| 79 | 11 - in5 |
|---|
| 80 | 12 - in6 |
|---|
| 81 | 13 - VID change |
|---|
| 82 | 14 - chassis |
|---|
| 83 | 15 - fan7 |
|---|
| 84 | 16 - tart1 |
|---|
| 85 | 17 - tart2 |
|---|
| 86 | 18 - tart3 |
|---|
| 87 | 19 - in7 |
|---|
| 88 | 20 - in8 |
|---|
| 89 | 21 - fan4 |
|---|
| 90 | 22 - fan5 |
|---|
| 91 | 23 - fan6 |
|---|
| 92 | |
|---|
| 93 | Tart will be asserted while target temperature cannot be achieved after 3 minutes |
|---|
| 94 | of full speed rotation of corresponding fan. |
|---|
| 95 | |
|---|
| 96 | In addition to the alarms described above, there is a CHAS alarm on the chips |
|---|
| 97 | which triggers if your computer case is open (This one is latched, contrary |
|---|
| 98 | to realtime alarms). |
|---|
| 99 | |
|---|
| 100 | The chips only update values each 3 seconds; reading them more often will |
|---|
| 101 | do no harm, but will return 'old' values. |
|---|
| 102 | |
|---|
| 103 | |
|---|
| 104 | W83792D PROBLEMS |
|---|
| 105 | ---------------- |
|---|
| 106 | Known problems: |
|---|
| 107 | - This driver is only for Winbond W83792D C version device, there |
|---|
| 108 | are also some motherboards with B version W83792D device. The |
|---|
| 109 | calculation method to in6-in7(measured value, limits) is a little |
|---|
| 110 | different between C and B version. C or B version can be identified |
|---|
| 111 | by CR[0x49h]. |
|---|
| 112 | - The function of vid and vrm has not been finished, because I'm NOT |
|---|
| 113 | very familiar with them. Adding support is welcome. |
|---|
| 114 | - The function of chassis open detection needs more tests. |
|---|
| 115 | - If you have ASUS server board and chip was not found: Then you will |
|---|
| 116 | need to upgrade to latest (or beta) BIOS. If it does not help please |
|---|
| 117 | contact us. |
|---|
| 118 | |
|---|
| 119 | |
|---|
| 120 | Chip Features |
|---|
| 121 | ------------- |
|---|
| 122 | |
|---|
| 123 | Chip `w83792d' |
|---|
| 124 | LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| 125 | in0 NONE NONE R 3 |
|---|
| 126 | in1 NONE NONE R 3 |
|---|
| 127 | in2 NONE NONE R 3 |
|---|
| 128 | in3 NONE NONE R 3 |
|---|
| 129 | in4 NONE NONE R 3 |
|---|
| 130 | in5 NONE NONE R 3 |
|---|
| 131 | in6 NONE NONE R 3 |
|---|
| 132 | in7 NONE NONE R 3 |
|---|
| 133 | in8 NONE NONE R 3 |
|---|
| 134 | in0_min in0 in0 RW 3 |
|---|
| 135 | in1_min in1 in1 RW 3 |
|---|
| 136 | in2_min in2 in2 RW 3 |
|---|
| 137 | in3_min in3 in3 RW 3 |
|---|
| 138 | in4_min in4 in4 RW 3 |
|---|
| 139 | in5_min in5 in5 RW 3 |
|---|
| 140 | in6_min in6 in6 RW 3 |
|---|
| 141 | in7_min in7 in7 RW 3 |
|---|
| 142 | in8_min in8 in8 RW 3 |
|---|
| 143 | in0_max in0 in0 RW 3 |
|---|
| 144 | in1_max in1 in1 RW 3 |
|---|
| 145 | in2_max in2 in2 RW 3 |
|---|
| 146 | in3_max in3 in3 RW 3 |
|---|
| 147 | in4_max in4 in4 RW 3 |
|---|
| 148 | in5_max in5 in5 RW 3 |
|---|
| 149 | in6_max in6 in6 RW 3 |
|---|
| 150 | in7_max in7 in7 RW 3 |
|---|
| 151 | in8_max in8 in8 RW 3 |
|---|
| 152 | fan1 NONE NONE R 0 |
|---|
| 153 | fan2 NONE NONE R 0 |
|---|
| 154 | fan3 NONE NONE R 0 |
|---|
| 155 | fan4 NONE NONE R 0 |
|---|
| 156 | fan5 NONE NONE R 0 |
|---|
| 157 | fan6 NONE NONE R 0 |
|---|
| 158 | fan7 NONE NONE R 0 |
|---|
| 159 | fan1_min fan1 NONE RW 0 |
|---|
| 160 | fan2_min fan2 NONE RW 0 |
|---|
| 161 | fan3_min fan3 NONE RW 0 |
|---|
| 162 | fan4_min fan4 NONE RW 0 |
|---|
| 163 | fan5_min fan5 NONE RW 0 |
|---|
| 164 | fan6_min fan6 NONE RW 0 |
|---|
| 165 | fan7_min fan7 NONE RW 0 |
|---|
| 166 | temp1 NONE NONE R 1 |
|---|
| 167 | temp1_hyst temp1 temp1 RW 1 |
|---|
| 168 | temp1_over temp1 temp1 RW 1 |
|---|
| 169 | temp2 NONE NONE R 1 |
|---|
| 170 | temp2_hyst temp2 temp2 RW 1 |
|---|
| 171 | temp2_over temp2 temp2 RW 1 |
|---|
| 172 | temp3 NONE NONE R 1 |
|---|
| 173 | temp3_hyst temp3 temp3 RW 1 |
|---|
| 174 | temp3_over temp3 temp3 RW 1 |
|---|
| 175 | fan1_div fan1 NONE RW 0 |
|---|
| 176 | fan2_div fan2 NONE RW 0 |
|---|
| 177 | fan3_div fan3 NONE RW 0 |
|---|
| 178 | fan4_div fan4 NONE RW 0 |
|---|
| 179 | fan5_div fan5 NONE RW 0 |
|---|
| 180 | fan6_div fan6 NONE RW 0 |
|---|
| 181 | fan7_div fan7 NONE RW 0 |
|---|
| 182 | |
|---|
| 183 | LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| 184 | in0 SENSORS_W83792D_IN0 in0:3 |
|---|
| 185 | in1 SENSORS_W83792D_IN1 in1:3 |
|---|
| 186 | in2 SENSORS_W83792D_IN2 in2:3 |
|---|
| 187 | in3 SENSORS_W83792D_IN3 in3:3 |
|---|
| 188 | in4 SENSORS_W83792D_IN4 in4:3 |
|---|
| 189 | in5 SENSORS_W83792D_IN5 in5:3 |
|---|
| 190 | in6 SENSORS_W83792D_IN6 in6:3 |
|---|
| 191 | in7 SENSORS_W83792D_IN7 in7:3 |
|---|
| 192 | in8 SENSORS_W83792D_IN8 in8:3 |
|---|
| 193 | in0_min SENSORS_W83792D_IN0_MIN in0:1 |
|---|
| 194 | in1_min SENSORS_W83792D_IN1_MIN in1:1 |
|---|
| 195 | in2_min SENSORS_W83792D_IN2_MIN in2:1 |
|---|
| 196 | in3_min SENSORS_W83792D_IN3_MIN in3:1 |
|---|
| 197 | in4_min SENSORS_W83792D_IN4_MIN in4:1 |
|---|
| 198 | in5_min SENSORS_W83792D_IN5_MIN in5:1 |
|---|
| 199 | in6_min SENSORS_W83792D_IN6_MIN in6:1 |
|---|
| 200 | in7_min SENSORS_W83792D_IN7_MIN in7:1 |
|---|
| 201 | in8_min SENSORS_W83792D_IN8_MIN in8:1 |
|---|
| 202 | in0_max SENSORS_W83792D_IN0_MAX in0:2 |
|---|
| 203 | in1_max SENSORS_W83792D_IN1_MAX in1:2 |
|---|
| 204 | in2_max SENSORS_W83792D_IN2_MAX in2:2 |
|---|
| 205 | in3_max SENSORS_W83792D_IN3_MAX in3:2 |
|---|
| 206 | in4_max SENSORS_W83792D_IN4_MAX in4:2 |
|---|
| 207 | in5_max SENSORS_W83792D_IN5_MAX in5:2 |
|---|
| 208 | in6_max SENSORS_W83792D_IN6_MAX in6:2 |
|---|
| 209 | in7_max SENSORS_W83792D_IN7_MAX in7:2 |
|---|
| 210 | in8_max SENSORS_W83792D_IN8_MAX in8:2 |
|---|
| 211 | fan1 SENSORS_W83792D_FAN1 fan1:2 |
|---|
| 212 | fan2 SENSORS_W83792D_FAN2 fan2:2 |
|---|
| 213 | fan3 SENSORS_W83792D_FAN3 fan3:2 |
|---|
| 214 | fan4 SENSORS_W83792D_FAN4 fan4:2 |
|---|
| 215 | fan5 SENSORS_W83792D_FAN5 fan5:2 |
|---|
| 216 | fan6 SENSORS_W83792D_FAN6 fan6:2 |
|---|
| 217 | fan7 SENSORS_W83792D_FAN7 fan7:2 |
|---|
| 218 | fan1_min SENSORS_W83792D_FAN1_MIN fan1:1 |
|---|
| 219 | fan2_min SENSORS_W83792D_FAN2_MIN fan2:1 |
|---|
| 220 | fan3_min SENSORS_W83792D_FAN3_MIN fan3:1 |
|---|
| 221 | fan4_min SENSORS_W83792D_FAN4_MIN fan4:1 |
|---|
| 222 | fan5_min SENSORS_W83792D_FAN5_MIN fan5:1 |
|---|
| 223 | fan6_min SENSORS_W83792D_FAN6_MIN fan6:1 |
|---|
| 224 | fan7_min SENSORS_W83792D_FAN7_MIN fan7:1 |
|---|
| 225 | temp1 SENSORS_W83792D_TEMP1 temp1:3 |
|---|
| 226 | temp1_hyst SENSORS_W83792D_TEMP1_HYST temp1:2 |
|---|
| 227 | temp1_over SENSORS_W83792D_TEMP1_OVER temp1:1 |
|---|
| 228 | temp2 SENSORS_W83792D_TEMP2 temp2:3 |
|---|
| 229 | temp2_hyst SENSORS_W83792D_TEMP2_HYST temp2:2 |
|---|
| 230 | temp2_over SENSORS_W83792D_TEMP2_OVER temp2:1 |
|---|
| 231 | temp3 SENSORS_W83792D_TEMP3 temp3:3 |
|---|
| 232 | temp3_hyst SENSORS_W83792D_TEMP3_HYST temp3:2 |
|---|
| 233 | temp3_over SENSORS_W83792D_TEMP3_OVER temp3:1 |
|---|
| 234 | fan1_div SENSORS_W83792D_FAN1_DIV fan_div:1 |
|---|
| 235 | fan2_div SENSORS_W83792D_FAN2_DIV fan_div:2 |
|---|
| 236 | fan3_div SENSORS_W83792D_FAN3_DIV fan_div:3 |
|---|
| 237 | fan4_div SENSORS_W83792D_FAN4_DIV fan_div:4 |
|---|
| 238 | fan5_div SENSORS_W83792D_FAN5_DIV fan_div:5 |
|---|
| 239 | fan6_div SENSORS_W83792D_FAN6_DIV fan_div:6 |
|---|
| 240 | fan7_div SENSORS_W83792D_FAN7_DIV fan_div:7 |
|---|
| 241 | |
|---|
| 242 | |
|---|
| 243 | |
|---|
| 244 | |
|---|
| 245 | /PROC ENTRIES |
|---|
| 246 | ------------- |
|---|
| 247 | Most are identical to the w83781d entries. See the w83781d documentation for |
|---|
| 248 | details. |
|---|
| 249 | |
|---|
| 250 | Most of the additional entries not in the w83781d are Winbond Smart Fan I/II: |
|---|
| 251 | Please read "7.7 FAN Speed Count and FAN Speed Control" of W83792AD/D datasheet |
|---|
| 252 | before you read the explanation to the /proc entries below. |
|---|
| 253 | |
|---|
| 254 | fan_cfg: indicates the fan speed control mode: 0 means PWM/DC mode, |
|---|
| 255 | 1 means Smart Fan I(Thermal Cruise) mode, 2 or 3 means Smart Fan II |
|---|
| 256 | mode. There are three items in this entry, the first one is the |
|---|
| 257 | configuration of Fan1, the rest may be deduced by analogy. |
|---|
| 258 | |
|---|
| 259 | pwm_flag: valid under PWM/DC mode, 1 means PWM mode, 0 means DC mode. |
|---|
| 260 | There are three items in this entry, the first one is PWM/DC mode |
|---|
| 261 | of Fan1, the rest may be deduced by analogy. |
|---|
| 262 | |
|---|
| 263 | thermal_cruise: valid under Smart Fan I mode, indicates the wanted |
|---|
| 264 | temperature. There are three items in this entry, the first one |
|---|
| 265 | is setting temperature of Fan1, the rest may be deduced by analogy. |
|---|
| 266 | |
|---|
| 267 | fan_tolerance: valid under Smart Fan I or Smart Fan II mode, indicates |
|---|
| 268 | the interval temperature. There are also three items in this entry. |
|---|
| 269 | |
|---|
| 270 | sf2_points_fan1: valid under Smart Fan II mode, there are four items in |
|---|
| 271 | this entry, indicates the Temp.[1-4] in "Figure 8. Smart Fan II |
|---|
| 272 | behavior" to Fan1. |
|---|
| 273 | |
|---|
| 274 | sf2_points_fan2: almost same as the above one, except that this entry |
|---|
| 275 | is for Fan2. |
|---|
| 276 | |
|---|
| 277 | sf2_points_fan3: almost same as the above one, except that this entry |
|---|
| 278 | is for Fan3. |
|---|
| 279 | |
|---|
| 280 | sf2_levels_fan1: valid under Smart Fan II mode, there are four items in |
|---|
| 281 | this entry, indicates the "Non-Stop Duty Cycle" and "Fan Duty Cycle |
|---|
| 282 | Level [1-3]" in "Figure 8. Smart Fan II behavior" to Fan1. The |
|---|
| 283 | first item "Non-Stop Duty Cycle" is read only in this driver, while |
|---|
| 284 | the other three items can be modified. |
|---|
| 285 | |
|---|
| 286 | sf2_levels_fan2: almost same as the above one, except that this entry |
|---|
| 287 | is for Fan2. |
|---|
| 288 | |
|---|
| 289 | sf2_levels_fan3: almost same as the above one, except that this entry |
|---|
| 290 | is for Fan3. |
|---|
| 291 | |
|---|
| 292 | |
|---|
| 293 | additional entries for chassis intrusion detection: |
|---|
| 294 | chassis: There are two items in this entry, the first one indicats the |
|---|
| 295 | chassis status, 1 means chassis intrusion detected, while 1 means |
|---|
| 296 | normal. The second item in this entry is used to clear the |
|---|
| 297 | detected chassis intrusion interrupt and reset the chassis status |
|---|
| 298 | to normal. |
|---|