| 1 |
Kernel driver `w83781d.o' |
|---|
| 2 |
========================= |
|---|
| 3 |
|
|---|
| 4 |
Status: W83781D support is complete and well-tested. |
|---|
| 5 |
W83782D support is complete and well-tested. |
|---|
| 6 |
W83783S support is complete but has not been well-tested. |
|---|
| 7 |
W83791D support is BETA. |
|---|
| 8 |
W83627HF support is complete but has not been well-tested. |
|---|
| 9 |
AS99127F support is BETA and has known problems due to lack of a |
|---|
| 10 |
chip datasheet. SEE BELOW. |
|---|
| 11 |
|
|---|
| 12 |
Supported chips: |
|---|
| 13 |
* Winbond W83781D |
|---|
| 14 |
Prefix: 'w83781d' |
|---|
| 15 |
Addresses scanned: I2C 0x20 - 0x2f, ISA 0x290 (8 I/O ports) |
|---|
| 16 |
Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/w83781d.pdf |
|---|
| 17 |
* Winbond W83782D |
|---|
| 18 |
Prefix: 'w83782d' |
|---|
| 19 |
Addresses scanned: I2C 0x20 - 0x2f, ISA 0x290 (8 I/O ports) |
|---|
| 20 |
Datasheet: http://www.winbond.com/PDF/sheet/w83782d.pdf |
|---|
| 21 |
* Winbond W83783S |
|---|
| 22 |
Prefix: 'w83783s' |
|---|
| 23 |
Addresses scanned: I2C 0x2d |
|---|
| 24 |
Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/w83783s.pdf |
|---|
| 25 |
* Winbond W83791D |
|---|
| 26 |
Prefix: 'w83791d' |
|---|
| 27 |
Addresses scanned: I2C 0x2c - 0x2f |
|---|
| 28 |
Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/w83791d.pdf |
|---|
| 29 |
* Winbond W83627HF |
|---|
| 30 |
Prefix: 'w83627hf' |
|---|
| 31 |
Addresses scanned: I2C 0x20 - 0x2f, ISA 0x290 (8 I/O ports) |
|---|
| 32 |
Datasheet: http://www.winbond.com/PDF/sheet/w83627hf.pdf |
|---|
| 33 |
* Asus AS99127F |
|---|
| 34 |
Prefix: 'as99127f' |
|---|
| 35 |
Addresses scanned: I2C 0x28 - 0x2f |
|---|
| 36 |
Datasheet: Unavailable from Asus |
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 |
|
|---|
| 40 |
Authors: Frodo Looijaard <frodol@dds.nl>, Philip Edelbrock <phil@netroedge.com>, |
|---|
| 41 |
and Mark Studebaker <mdsxyz123@yahoo.com> |
|---|
| 42 |
|
|---|
| 43 |
|
|---|
| 44 |
Module Parameters |
|---|
| 45 |
----------------- |
|---|
| 46 |
|
|---|
| 47 |
* force: short array (min = 1, max = 48) |
|---|
| 48 |
List of adapter,address pairs to boldly assume to be present |
|---|
| 49 |
* force_w83781d: short array (min = 1, max = 48) |
|---|
| 50 |
List of adapter,address pairs which are unquestionably assumed to contain |
|---|
| 51 |
a `w83781d' chip |
|---|
| 52 |
* force_w83782d: |
|---|
| 53 |
Ditto |
|---|
| 54 |
* force_w83783s: |
|---|
| 55 |
Ditto |
|---|
| 56 |
* force_w83791d: |
|---|
| 57 |
Ditto |
|---|
| 58 |
* force_w83627hf: |
|---|
| 59 |
Ditto |
|---|
| 60 |
* force_as99127f: |
|---|
| 61 |
Ditto |
|---|
| 62 |
* force_subclients=bus,caddr,saddr,saddr |
|---|
| 63 |
This is used to force the i2c addresses for subclients of |
|---|
| 64 |
a certain chip. Typical usage is `force_subclients=0,0x2d,0x4a,0x4b' |
|---|
| 65 |
to force the subclients of chip 0x2d on bus 0 to i2c addresses |
|---|
| 66 |
0x4a and 0x4b. |
|---|
| 67 |
This parameter is useful for certain Tyan boards. |
|---|
| 68 |
* ignore: short array (min = 1, max = 48) |
|---|
| 69 |
List of adapter,address pairs not to scan |
|---|
| 70 |
* ignore_range: short array (min = 1, max = 48) |
|---|
| 71 |
List of adapter,start-addr,end-addr triples not to scan |
|---|
| 72 |
* probe: short array (min = 1, max = 48) |
|---|
| 73 |
List of adapter,address pairs to scan additionally |
|---|
| 74 |
* probe_range: short array (min = 1, max = 48) |
|---|
| 75 |
List of adapter,start-addr,end-addr triples to scan additionally |
|---|
| 76 |
* init=[0,1] (default 1) |
|---|
| 77 |
Use 'init=0' to bypass initializing the chip. |
|---|
| 78 |
Try this if your computer crashes when you load the module. |
|---|
| 79 |
|
|---|
| 80 |
|
|---|
| 81 |
Description |
|---|
| 82 |
----------- |
|---|
| 83 |
|
|---|
| 84 |
This driver implements support for the Winbond W83781D, W83782D, |
|---|
| 85 |
W83783S, W83791D, W83627HF and W83698HF chips, and the Asus AS99127F chips. |
|---|
| 86 |
We will refer to them collectively as W8378* chips. |
|---|
| 87 |
|
|---|
| 88 |
There is quite some difference between these chips, but they are similar |
|---|
| 89 |
enough that it was sensible to put them together in one driver. |
|---|
| 90 |
The W83627HF chip is assumed to be identical to the ISA W83782D. |
|---|
| 91 |
The Asus chips are similar to an I2C-only W83782D. |
|---|
| 92 |
|
|---|
| 93 |
Detection of these chips can sometimes be foiled because they can be in |
|---|
| 94 |
an internal state that allows no clean access. If you know the address |
|---|
| 95 |
of the chip, use a 'force' parameter; this will put them into a more |
|---|
| 96 |
well-behaved state first. |
|---|
| 97 |
|
|---|
| 98 |
The W8378* implements temperature sensors (three on the W83781D and W83782D, |
|---|
| 99 |
two on the W83783S), three fan rotation speed sensors, voltage sensors |
|---|
| 100 |
(seven on the W83781D, nine on the W83782D and six on the W83783S), VID |
|---|
| 101 |
lines, alarms with beep warnings, and some miscellaneous stuff. |
|---|
| 102 |
|
|---|
| 103 |
Temperatures are measured in degrees Celsius. There is always one main |
|---|
| 104 |
temperature sensor, and one (W83783S) or two (W83781D and W83782D) other |
|---|
| 105 |
sensors. An alarm is triggered for the main sensor once when the |
|---|
| 106 |
Overtemperature Shutdown limit is crossed; it is triggered again as soon as |
|---|
| 107 |
it drops below the Hysteresis value. A more useful behaviour |
|---|
| 108 |
can be found by setting the Hysteresis value to +127 degrees Celsius; in |
|---|
| 109 |
this case, alarms are issued during all the time when the actual temperature |
|---|
| 110 |
is above the Overtemperature Shutdown value. The driver sets the |
|---|
| 111 |
hysteresis value for temp1 to 127 at initialization. |
|---|
| 112 |
|
|---|
| 113 |
For the other temperature sensor(s), an |
|---|
| 114 |
alarm is triggered when the temperature gets higher then the Overtemperature |
|---|
| 115 |
Shutdown value; it stays on until the temperature falls below the Hysteresis |
|---|
| 116 |
value. But on the W83781D, there is only one alarm that functions for both |
|---|
| 117 |
other sensors! Temperatures are guaranteed within a range of -55 to +125 |
|---|
| 118 |
degrees. The main temperature sensors has a resolution of 1 degree; the other |
|---|
| 119 |
sensor(s) of 0.5 degree. |
|---|
| 120 |
|
|---|
| 121 |
Fan rotation speeds are reported in RPM (rotations per minute). An alarm is |
|---|
| 122 |
triggered if the rotation speed has dropped below a programmable limit. Fan |
|---|
| 123 |
readings can be divided by a programmable divider (1, 2, 4 or 8 for the |
|---|
| 124 |
W83781D; 1, 2, 4, 8, 16, 32, 64 or 128 for the others) to give |
|---|
| 125 |
the readings more range or accuracy. Not all RPM values can accurately be |
|---|
| 126 |
represented, so some rounding is done. With a divider of 2, the lowest |
|---|
| 127 |
representable value is around 2600 RPM. |
|---|
| 128 |
|
|---|
| 129 |
Voltage sensors (also known as IN sensors) report their values in volts. |
|---|
| 130 |
An alarm is triggered if the voltage has crossed a programmable minimum |
|---|
| 131 |
or maximum limit. Note that minimum in this case always means 'closest to |
|---|
| 132 |
zero'; this is important for negative voltage measurements. All voltage |
|---|
| 133 |
inputs can measure voltages between 0 and 4.08 volts, with a resolution |
|---|
| 134 |
of 0.016 volt. |
|---|
| 135 |
|
|---|
| 136 |
The VID lines encode the core voltage value: the voltage level your processor |
|---|
| 137 |
should work with. This is hardcoded by the mainboard and/or processor itself. |
|---|
| 138 |
It is a value in volts. When it is unconnected, you will often find the |
|---|
| 139 |
value 3.50 V here. |
|---|
| 140 |
|
|---|
| 141 |
The W83782D and W83783S temperature conversion machine understands about |
|---|
| 142 |
several kinds of temperature probes. You can program the so-called |
|---|
| 143 |
beta value in the sensor files. '1' is the PII/Celeron diode, '2' is the |
|---|
| 144 |
TN3904 transistor, and 3435 the default thermistor value. Other values |
|---|
| 145 |
are (not yet) supported. You can program your own values through the |
|---|
| 146 |
rt interface, but this is not very useful, because these tables are |
|---|
| 147 |
under NDA. |
|---|
| 148 |
|
|---|
| 149 |
In addition to the alarms described above, there is a CHAS alarm on the |
|---|
| 150 |
chips which triggers if your computer case is open. |
|---|
| 151 |
|
|---|
| 152 |
When an alarm goes off, you can be warned by a beeping signal through |
|---|
| 153 |
your computer speaker. It is possible to enable all beeping globally, |
|---|
| 154 |
or only the beeping for some alarms. |
|---|
| 155 |
|
|---|
| 156 |
Individual alarm and beep bits: |
|---|
| 157 |
|
|---|
| 158 |
0x000001: in0 |
|---|
| 159 |
0x000002: in1 |
|---|
| 160 |
0x000004: in2 |
|---|
| 161 |
0x000008: in3 |
|---|
| 162 |
0x000010: temp1 |
|---|
| 163 |
0x000020: temp2 (+temp3 on W83781D) |
|---|
| 164 |
0x000040: fan1 |
|---|
| 165 |
0x000080: fan2 |
|---|
| 166 |
0x000100: in4 |
|---|
| 167 |
0x000200: in5 |
|---|
| 168 |
0x000400: in6 |
|---|
| 169 |
0x000800: fan3 |
|---|
| 170 |
0x001000: chassis |
|---|
| 171 |
0x002000: temp3 (W83782D and W83627HF only) |
|---|
| 172 |
0x010000: in7 (W83782D and W83627HF only) |
|---|
| 173 |
0x020000: in8 (W83782D and W83627HF only) |
|---|
| 174 |
|
|---|
| 175 |
If an alarm triggers, it will remain triggered until the hardware register |
|---|
| 176 |
is read at least once. This means that the cause for the alarm may |
|---|
| 177 |
already have disappeared! Note that in the current implementation, all |
|---|
| 178 |
hardware registers are read whenever any data is read (unless it is less |
|---|
| 179 |
than 1.5 seconds since the last update). This means that you can easily |
|---|
| 180 |
miss once-only alarms. |
|---|
| 181 |
|
|---|
| 182 |
The chips only update values each 1.5 seconds; reading them more often |
|---|
| 183 |
will do no harm, but will return 'old' values. |
|---|
| 184 |
|
|---|
| 185 |
|
|---|
| 186 |
AS99127F PROBLEMS |
|---|
| 187 |
----------------- |
|---|
| 188 |
The as99127f support was developed without the benefit of a datasheet. |
|---|
| 189 |
In most cases it is treated as a w83781d (although revision 2 of the |
|---|
| 190 |
AS9917F looks more like a w83782d). |
|---|
| 191 |
This support will be BETA until a datasheet is released. |
|---|
| 192 |
One user has reported problems with fans stopping |
|---|
| 193 |
occasionally. |
|---|
| 194 |
|
|---|
| 195 |
Note that the individual beep bits are inverted from the other chips. |
|---|
| 196 |
The driver now takes care of this so that user-space applications |
|---|
| 197 |
don't have to know about it. |
|---|
| 198 |
|
|---|
| 199 |
Known problems: |
|---|
| 200 |
- Problems with diode/thermistor settings (supported?) |
|---|
| 201 |
- One user reports fans stopping under high server load. |
|---|
| 202 |
- Revision 2 seems to have 2 PWM registers but we don't know |
|---|
| 203 |
how to handle them. More details below. |
|---|
| 204 |
|
|---|
| 205 |
These will not be fixed unless we get a datasheet. |
|---|
| 206 |
If you have problems, please lobby Asus to release a datasheet. |
|---|
| 207 |
Unfortunately several others have without success. |
|---|
| 208 |
Please do not send mail to us asking for better as99127f support. |
|---|
| 209 |
We have done the best we can without a datasheet. |
|---|
| 210 |
Please do not send mail to the author or the sensors group asking for |
|---|
| 211 |
a datasheet or ideas on how to convince Asus. We can't help. |
|---|
| 212 |
|
|---|
| 213 |
|
|---|
| 214 |
Chip Features |
|---|
| 215 |
------------- |
|---|
| 216 |
|
|---|
| 217 |
Chip `w83781d' |
|---|
| 218 |
LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| 219 |
in0 NONE NONE R 2 |
|---|
| 220 |
in1 NONE NONE R 2 |
|---|
| 221 |
in2 NONE NONE R 2 |
|---|
| 222 |
in3 NONE NONE R 2 |
|---|
| 223 |
in4 NONE NONE R 2 |
|---|
| 224 |
in5 NONE NONE R 2 |
|---|
| 225 |
in6 NONE NONE R 2 |
|---|
| 226 |
in0_min in0 in0 RW 2 |
|---|
| 227 |
in1_min in1 in1 RW 2 |
|---|
| 228 |
in2_min in2 in2 RW 2 |
|---|
| 229 |
in3_min in3 in3 RW 2 |
|---|
| 230 |
in4_min in4 in4 RW 2 |
|---|
| 231 |
in5_min in5 in5 RW 2 |
|---|
| 232 |
in6_min in6 in6 RW 2 |
|---|
| 233 |
in0_max in0 in0 RW 2 |
|---|
| 234 |
in1_max in1 in1 RW 2 |
|---|
| 235 |
in2_max in2 in2 RW 2 |
|---|
| 236 |
in3_max in3 in3 RW 2 |
|---|
| 237 |
in4_max in4 in4 RW 2 |
|---|
| 238 |
in5_max in5 in5 RW 2 |
|---|
| 239 |
in6_max in6 in6 RW 2 |
|---|
| 240 |
fan1 NONE NONE R 0 |
|---|
| 241 |
fan2 NONE NONE R 0 |
|---|
| 242 |
fan3 NONE NONE R 0 |
|---|
| 243 |
fan1_min fan1 NONE RW 0 |
|---|
| 244 |
fan2_min fan2 NONE RW 0 |
|---|
| 245 |
fan3_min fan3 NONE RW 0 |
|---|
| 246 |
temp1 NONE NONE R 1 |
|---|
| 247 |
temp1_hyst temp1 temp1 RW 1 |
|---|
| 248 |
temp1_over temp1 temp1 RW 1 |
|---|
| 249 |
temp2 NONE NONE R 1 |
|---|
| 250 |
temp2_hyst temp2 temp2 RW 1 |
|---|
| 251 |
temp2_over temp2 temp2 RW 1 |
|---|
| 252 |
temp3 NONE NONE R 1 |
|---|
| 253 |
temp3_hyst temp3 temp3 RW 1 |
|---|
| 254 |
temp3_over temp3 temp3 RW 1 |
|---|
| 255 |
vid NONE NONE R 2 |
|---|
| 256 |
fan1_div fan1 NONE RW 0 |
|---|
| 257 |
fan2_div fan2 NONE RW 0 |
|---|
| 258 |
fan3_div fan3 NONE R 0 |
|---|
| 259 |
alarms NONE NONE R 0 |
|---|
| 260 |
beep_enable alarms NONE RW 0 |
|---|
| 261 |
beeps alarms alarms RW 0 |
|---|
| 262 |
|
|---|
| 263 |
LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| 264 |
in0 SENSORS_W83781D_IN0 in0:3 |
|---|
| 265 |
in1 SENSORS_W83781D_IN1 in1:3 |
|---|
| 266 |
in2 SENSORS_W83781D_IN2 in2:3 |
|---|
| 267 |
in3 SENSORS_W83781D_IN3 in3:3 |
|---|
| 268 |
in4 SENSORS_W83781D_IN4 in4:3 |
|---|
| 269 |
in5 SENSORS_W83781D_IN5 in5:3 |
|---|
| 270 |
in6 SENSORS_W83781D_IN6 in6:3 |
|---|
| 271 |
in0_min SENSORS_W83781D_IN0_MIN in0:1 |
|---|
| 272 |
in1_min SENSORS_W83781D_IN1_MIN in1:1 |
|---|
| 273 |
in2_min SENSORS_W83781D_IN2_MIN in2:1 |
|---|
| 274 |
in3_min SENSORS_W83781D_IN3_MIN in3:1 |
|---|
| 275 |
in4_min SENSORS_W83781D_IN4_MIN in4:1 |
|---|
| 276 |
in5_min SENSORS_W83781D_IN5_MIN in5:1 |
|---|
| 277 |
in6_min SENSORS_W83781D_IN6_MIN in6:1 |
|---|
| 278 |
in0_max SENSORS_W83781D_IN0_MAX in0:2 |
|---|
| 279 |
in1_max SENSORS_W83781D_IN1_MAX in1:2 |
|---|
| 280 |
in2_max SENSORS_W83781D_IN2_MAX in2:2 |
|---|
| 281 |
in3_max SENSORS_W83781D_IN3_MAX in3:2 |
|---|
| 282 |
in4_max SENSORS_W83781D_IN4_MAX in4:2 |
|---|
| 283 |
in5_max SENSORS_W83781D_IN5_MAX in5:2 |
|---|
| 284 |
in6_max SENSORS_W83781D_IN6_MAX in6:2 |
|---|
| 285 |
fan1 SENSORS_W83781D_FAN1 fan1:2 |
|---|
| 286 |
fan2 SENSORS_W83781D_FAN2 fan2:2 |
|---|
| 287 |
fan3 SENSORS_W83781D_FAN3 fan3:2 |
|---|
| 288 |
fan1_min SENSORS_W83781D_FAN1_MIN fan1:1 |
|---|
| 289 |
fan2_min SENSORS_W83781D_FAN2_MIN fan2:1 |
|---|
| 290 |
fan3_min SENSORS_W83781D_FAN3_MIN fan3:1 |
|---|
| 291 |
temp1 SENSORS_W83781D_TEMP1 temp1:3 |
|---|
| 292 |
temp1_hyst SENSORS_W83781D_TEMP1_HYST temp1:2 |
|---|
| 293 |
temp1_over SENSORS_W83781D_TEMP1_OVER temp1:1 |
|---|
| 294 |
temp2 SENSORS_W83781D_TEMP2 temp2:3 |
|---|
| 295 |
temp2_hyst SENSORS_W83781D_TEMP2_HYST temp2:2 |
|---|
| 296 |
temp2_over SENSORS_W83781D_TEMP2_OVER temp2:1 |
|---|
| 297 |
temp3 SENSORS_W83781D_TEMP3 temp3:3 |
|---|
| 298 |
temp3_hyst SENSORS_W83781D_TEMP3_HYST temp3:2 |
|---|
| 299 |
temp3_over SENSORS_W83781D_TEMP3_OVER temp3:1 |
|---|
| 300 |
vid SENSORS_W83781D_VID vid:1 |
|---|
| 301 |
fan1_div SENSORS_W83781D_FAN1_DIV fan_div:1 |
|---|
| 302 |
fan2_div SENSORS_W83781D_FAN2_DIV fan_div:2 |
|---|
| 303 |
fan3_div SENSORS_W83781D_FAN3_DIV fan_div:3 |
|---|
| 304 |
alarms SENSORS_W83781D_ALARMS alarms:1 |
|---|
| 305 |
beep_enable SENSORS_W83781D_BEEP_ENABLE beep:1 |
|---|
| 306 |
beeps SENSORS_W83781D_BEEPS beep:2 |
|---|
| 307 |
|
|---|
| 308 |
|
|---|
| 309 |
Chip `w83782d' |
|---|
| 310 |
LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| 311 |
in0 NONE NONE R 2 |
|---|
| 312 |
in1 NONE NONE R 2 |
|---|
| 313 |
in2 NONE NONE R 2 |
|---|
| 314 |
in3 NONE NONE R 2 |
|---|
| 315 |
in4 NONE NONE R 2 |
|---|
| 316 |
in5 NONE NONE R 2 |
|---|
| 317 |
in6 NONE NONE R 2 |
|---|
| 318 |
in7 NONE NONE R 2 |
|---|
| 319 |
in8 NONE NONE R 2 |
|---|
| 320 |
in0_min in0 in0 RW 2 |
|---|
| 321 |
in1_min in1 in1 RW 2 |
|---|
| 322 |
in2_min in2 in2 RW 2 |
|---|
| 323 |
in3_min in3 in3 RW 2 |
|---|
| 324 |
in4_min in4 in4 RW 2 |
|---|
| 325 |
in5_min in5 in5 RW 2 |
|---|
| 326 |
in6_min in6 in6 RW 2 |
|---|
| 327 |
in7_min in7 in7 RW 2 |
|---|
| 328 |
in8_min in8 in8 RW 2 |
|---|
| 329 |
in0_max in0 in0 RW 2 |
|---|
| 330 |
in1_max in1 in1 RW 2 |
|---|
| 331 |
in2_max in2 in2 RW 2 |
|---|
| 332 |
in3_max in3 in3 RW 2 |
|---|
| 333 |
in4_max in4 in4 RW 2 |
|---|
| 334 |
in5_max in5 in5 RW 2 |
|---|
| 335 |
in6_max in6 in6 RW 2 |
|---|
| 336 |
in7_max in7 in7 RW 2 |
|---|
| 337 |
in8_max in8 in8 RW 2 |
|---|
| 338 |
fan1 NONE NONE R 0 |
|---|
| 339 |
fan2 NONE NONE R 0 |
|---|
| 340 |
fan3 NONE NONE R 0 |
|---|
| 341 |
fan1_min fan1 NONE RW 0 |
|---|
| 342 |
fan2_min fan2 NONE RW 0 |
|---|
| 343 |
fan3_min fan3 NONE RW 0 |
|---|
| 344 |
temp1 NONE NONE R 1 |
|---|
| 345 |
temp1_hyst temp1 temp1 RW 1 |
|---|
| 346 |
temp1_over temp1 temp1 RW 1 |
|---|
| 347 |
temp2 NONE NONE R 1 |
|---|
| 348 |
temp2_hyst temp2 temp2 RW 1 |
|---|
| 349 |
temp2_over temp2 temp2 RW 1 |
|---|
| 350 |
temp3 NONE NONE R 1 |
|---|
| 351 |
temp3_hyst temp3 temp3 RW 1 |
|---|
| 352 |
temp3_over temp3 temp3 RW 1 |
|---|
| 353 |
vid NONE NONE R 2 |
|---|
| 354 |
fan1_div fan1 NONE RW 0 |
|---|
| 355 |
fan2_div fan2 NONE RW 0 |
|---|
| 356 |
fan3_div fan3 NONE R 0 |
|---|
| 357 |
alarms NONE NONE R 0 |
|---|
| 358 |
beep_enable alarms NONE RW 0 |
|---|
| 359 |
beeps alarms alarms RW 0 |
|---|
| 360 |
sensor1 NONE NONE RW 0 |
|---|
| 361 |
sensor2 NONE NONE RW 0 |
|---|
| 362 |
sensor3 NONE NONE RW 0 |
|---|
| 363 |
|
|---|
| 364 |
LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| 365 |
in0 SENSORS_W83782D_IN0 in0:3 |
|---|
| 366 |
in1 SENSORS_W83782D_IN1 in1:3 |
|---|
| 367 |
in2 SENSORS_W83782D_IN2 in2:3 |
|---|
| 368 |
in3 SENSORS_W83782D_IN3 in3:3 |
|---|
| 369 |
in4 SENSORS_W83782D_IN4 in4:3 |
|---|
| 370 |
in5 SENSORS_W83782D_IN5 in5:3 |
|---|
| 371 |
in6 SENSORS_W83782D_IN6 in6:3 |
|---|
| 372 |
in7 SENSORS_W83782D_IN7 in7:3 |
|---|
| 373 |
in8 SENSORS_W83782D_IN8 in8:3 |
|---|
| 374 |
in0_min SENSORS_W83782D_IN0_MIN in0:1 |
|---|
| 375 |
in1_min SENSORS_W83782D_IN1_MIN in1:1 |
|---|
| 376 |
in2_min SENSORS_W83782D_IN2_MIN in2:1 |
|---|
| 377 |
in3_min SENSORS_W83782D_IN3_MIN in3:1 |
|---|
| 378 |
in4_min SENSORS_W83782D_IN4_MIN in4:1 |
|---|
| 379 |
in5_min SENSORS_W83782D_IN5_MIN in5:1 |
|---|
| 380 |
in6_min SENSORS_W83782D_IN6_MIN in6:1 |
|---|
| 381 |
in7_min SENSORS_W83782D_IN7_MIN in7:1 |
|---|
| 382 |
in8_min SENSORS_W83782D_IN8_MIN in8:1 |
|---|
| 383 |
in0_max SENSORS_W83782D_IN0_MAX in0:2 |
|---|
| 384 |
in1_max SENSORS_W83782D_IN1_MAX in1:2 |
|---|
| 385 |
in2_max SENSORS_W83782D_IN2_MAX in2:2 |
|---|
| 386 |
in3_max SENSORS_W83782D_IN3_MAX in3:2 |
|---|
| 387 |
in4_max SENSORS_W83782D_IN4_MAX in4:2 |
|---|
| 388 |
in5_max SENSORS_W83782D_IN5_MAX in5:2 |
|---|
| 389 |
in6_max SENSORS_W83782D_IN6_MAX in6:2 |
|---|
| 390 |
in7_max SENSORS_W83782D_IN7_MAX in7:2 |
|---|
| 391 |
in8_max SENSORS_W83782D_IN8_MAX in8:2 |
|---|
| 392 |
fan1 SENSORS_W83782D_FAN1 fan1:2 |
|---|
| 393 |
fan2 SENSORS_W83782D_FAN2 fan2:2 |
|---|
| 394 |
fan3 SENSORS_W83781D_FAN3 fan3:2 |
|---|
| 395 |
fan1_min SENSORS_W83782D_FAN1_MIN fan1:1 |
|---|
| 396 |
fan2_min SENSORS_W83782D_FAN2_MIN fan2:1 |
|---|
| 397 |
fan3_min SENSORS_W83781D_FAN3_MIN fan3:1 |
|---|
| 398 |
temp1 SENSORS_W83782D_TEMP1 temp1:3 |
|---|
| 399 |
temp1_hyst SENSORS_W83782D_TEMP1_HYST temp1:2 |
|---|
| 400 |
temp1_over SENSORS_W83782D_TEMP1_OVER temp1:1 |
|---|
| 401 |
temp2 SENSORS_W83782D_TEMP2 temp2:3 |
|---|
| 402 |
temp2_hyst SENSORS_W83782D_TEMP2_HYST temp2:2 |
|---|
| 403 |
temp2_over SENSORS_W83782D_TEMP2_OVER temp2:1 |
|---|
| 404 |
temp3 SENSORS_W83782D_TEMP3 temp3:3 |
|---|
| 405 |
temp3_hyst SENSORS_W83782D_TEMP3_HYST temp3:2 |
|---|
| 406 |
temp3_over SENSORS_W83782D_TEMP3_OVER temp3:1 |
|---|
| 407 |
vid SENSORS_W83782D_VID vid:1 |
|---|
| 408 |
fan1_div SENSORS_W83782D_FAN1_DIV fan_div:1 |
|---|
| 409 |
fan2_div SENSORS_W83782D_FAN2_DIV fan_div:2 |
|---|
| 410 |
fan3_div SENSORS_W83781D_FAN3_DIV fan_div:3 |
|---|
| 411 |
alarms SENSORS_W83782D_ALARMS alarms:1 |
|---|
| 412 |
beep_enable SENSORS_W83782D_BEEP_ENABLE beep:1 |
|---|
| 413 |
beeps SENSORS_W83782D_BEEPS beep:2 |
|---|
| 414 |
sensor1 SENSORS_W83782D_SENS1 sensor1:1 |
|---|
| 415 |
sensor2 SENSORS_W83782D_SENS2 sensor2:1 |
|---|
| 416 |
sensor3 SENSORS_W83782D_SENS3 sensor3:1 |
|---|
| 417 |
|
|---|
| 418 |
|
|---|
| 419 |
Chip `w83783s' |
|---|
| 420 |
LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| 421 |
in0 NONE NONE R 2 |
|---|
| 422 |
in1 NONE NONE R 2 |
|---|
| 423 |
in2 NONE NONE R 2 |
|---|
| 424 |
in3 NONE NONE R 2 |
|---|
| 425 |
in4 NONE NONE R 2 |
|---|
| 426 |
in5 NONE NONE R 2 |
|---|
| 427 |
in6 NONE NONE R 2 |
|---|
| 428 |
in0_min in0 in0 RW 2 |
|---|
| 429 |
in1_min in1 in1 RW 2 |
|---|
| 430 |
in2_min in2 in2 RW 2 |
|---|
| 431 |
in3_min in3 in3 RW 2 |
|---|
| 432 |
in4_min in4 in4 RW 2 |
|---|
| 433 |
in5_min in5 in5 RW 2 |
|---|
| 434 |
in6_min in6 in6 RW 2 |
|---|
| 435 |
in0_max in0 in0 RW 2 |
|---|
| 436 |
in1_max in1 in1 RW 2 |
|---|
| 437 |
in2_max in2 in2 RW 2 |
|---|
| 438 |
in3_max in3 in3 RW 2 |
|---|
| 439 |
in4_max in4 in4 RW 2 |
|---|
| 440 |
in5_max in5 in5 RW 2 |
|---|
| 441 |
in6_max in6 in6 RW 2 |
|---|
| 442 |
fan1 NONE NONE R 0 |
|---|
| 443 |
fan2 NONE NONE R 0 |
|---|
| 444 |
fan3 NONE NONE R 0 |
|---|
| 445 |
fan1_min fan1 NONE RW 0 |
|---|
| 446 |
fan2_min fan2 NONE RW 0 |
|---|
| 447 |
fan3_min fan3 NONE RW 0 |
|---|
| 448 |
temp1 NONE NONE R 1 |
|---|
| 449 |
temp1_hyst temp1 temp1 RW 1 |
|---|
| 450 |
temp1_over temp1 temp1 RW 1 |
|---|
| 451 |
temp2 NONE NONE R 1 |
|---|
| 452 |
temp2_hyst temp2 temp2 RW 1 |
|---|
| 453 |
temp2_over temp2 temp2 RW 1 |
|---|
| 454 |
vid NONE NONE R 2 |
|---|
| 455 |
fan1_div fan1 NONE RW 0 |
|---|
| 456 |
fan2_div fan2 NONE RW 0 |
|---|
| 457 |
fan3_div fan3 NONE R 0 |
|---|
| 458 |
alarms NONE NONE R 0 |
|---|
| 459 |
beep_enable alarms NONE RW 0 |
|---|
| 460 |
beeps alarms alarms RW 0 |
|---|
| 461 |
sensor1 NONE NONE RW 0 |
|---|
| 462 |
sensor2 NONE NONE RW 0 |
|---|
| 463 |
|
|---|
| 464 |
LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| 465 |
in0 SENSORS_W83783S_IN0 in0:3 |
|---|
| 466 |
in1 SENSORS_W83783S_IN1 in1:3 |
|---|
| 467 |
in2 SENSORS_W83783S_IN2 in2:3 |
|---|
| 468 |
in3 SENSORS_W83783S_IN3 in3:3 |
|---|
| 469 |
in4 SENSORS_W83783S_IN4 in4:3 |
|---|
| 470 |
in5 SENSORS_W83783S_IN5 in5:3 |
|---|
| 471 |
in6 SENSORS_W83783S_IN6 in6:3 |
|---|
| 472 |
in0_min SENSORS_W83783S_IN0_MIN in0:1 |
|---|
| 473 |
in1_min SENSORS_W83783S_IN1_MIN in1:1 |
|---|
| 474 |
in2_min SENSORS_W83783S_IN2_MIN in2:1 |
|---|
| 475 |
in3_min SENSORS_W83783S_IN3_MIN in3:1 |
|---|
| 476 |
in4_min SENSORS_W83783S_IN4_MIN in4:1 |
|---|
| 477 |
in5_min SENSORS_W83783S_IN5_MIN in5:1 |
|---|
| 478 |
in6_min SENSORS_W83783S_IN6_MIN in6:1 |
|---|
| 479 |
in0_max SENSORS_W83783S_IN0_MAX in0:2 |
|---|
| 480 |
in1_max SENSORS_W83783S_IN1_MAX in1:2 |
|---|
| 481 |
in2_max SENSORS_W83783S_IN2_MAX in2:2 |
|---|
| 482 |
in3_max SENSORS_W83783S_IN3_MAX in3:2 |
|---|
| 483 |
in4_max SENSORS_W83783S_IN4_MAX in4:2 |
|---|
| 484 |
in5_max SENSORS_W83783S_IN5_MAX in5:2 |
|---|
| 485 |
in6_max SENSORS_W83783S_IN6_MAX in6:2 |
|---|
| 486 |
fan1 SENSORS_W83783S_FAN1 fan1:2 |
|---|
| 487 |
fan2 SENSORS_W83783S_FAN2 fan2:2 |
|---|
| 488 |
fan3 SENSORS_W83783S_FAN3 fan3:2 |
|---|
| 489 |
fan1_min SENSORS_W83783S_FAN1_MIN fan1:1 |
|---|
| 490 |
fan2_min SENSORS_W83783S_FAN2_MIN fan2:1 |
|---|
| 491 |
fan3_min SENSORS_W83783S_FAN3_MIN fan3:1 |
|---|
| 492 |
temp1 SENSORS_W83783S_TEMP1 temp1:3 |
|---|
| 493 |
temp1_hyst SENSORS_W83783S_TEMP1_HYST temp1:2 |
|---|
| 494 |
temp1_over SENSORS_W83783S_TEMP1_OVER temp1:1 |
|---|
| 495 |
temp2 SENSORS_W83783S_TEMP2 temp2:3 |
|---|
| 496 |
temp2_hyst SENSORS_W83783S_TEMP2_HYST temp2:2 |
|---|
| 497 |
temp2_over SENSORS_W83783S_TEMP2_OVER temp2:1 |
|---|
| 498 |
vid SENSORS_W83783S_VID vid:1 |
|---|
| 499 |
fan1_div SENSORS_W83783S_FAN1_DIV fan_div:1 |
|---|
| 500 |
fan2_div SENSORS_W83783S_FAN2_DIV fan_div:2 |
|---|
| 501 |
fan3_div SENSORS_W83783S_FAN3_DIV fan_div:3 |
|---|
| 502 |
alarms SENSORS_W83783S_ALARMS alarms:1 |
|---|
| 503 |
beep_enable SENSORS_W83783S_BEEP_ENABLE beep:1 |
|---|
| 504 |
beeps SENSORS_W83783S_BEEPS beep:2 |
|---|
| 505 |
sensor1 SENSORS_W83783S_SENS1 sensor1:1 |
|---|
| 506 |
sensor2 SENSORS_W83783S_SENS2 sensor2:1 |
|---|
| 507 |
|
|---|
| 508 |
|
|---|
| 509 |
|
|---|
| 510 |
Miscellaneous documentation |
|---|
| 511 |
=========================== |
|---|
| 512 |
|
|---|
| 513 |
|
|---|
| 514 |
|
|---|
| 515 |
/PROC ENTRIES |
|---|
| 516 |
------------- |
|---|
| 517 |
Varies depending on chip type. Most are identical to the lm78 entries. |
|---|
| 518 |
See the lm78 documentation for details. |
|---|
| 519 |
|
|---|
| 520 |
Additional entries not in the lm78: |
|---|
| 521 |
|
|---|
| 522 |
pwm[1-4]: (not on w83781d nor as99127f) |
|---|
| 523 |
Controls the speed of the fans with PWM (Pulse Width Modulation) |
|---|
| 524 |
Valid values: |
|---|
| 525 |
0 - 255. 255 = max speed. |
|---|
| 526 |
Second value is PWM enable 0/1. |
|---|
| 527 |
|
|---|
| 528 |
sensor[1-3]: (not on w83781d nor as99127f) |
|---|
| 529 |
Controls the sensor type. To change to a different |
|---|
| 530 |
sensor type, for example, do 'echo 2 > sensor1'. |
|---|
| 531 |
Valid values: |
|---|
| 532 |
1: Pentium II / Celeron diode |
|---|
| 533 |
2: 2N3904 Transistor in a diode configuration |
|---|
| 534 |
3435: Thermistor with Beta = 3435. Beta is a measure |
|---|
| 535 |
of sensitivity to temperature. |
|---|
| 536 |
Thermistors with other Betas could in theory be supported |
|---|
| 537 |
after correspondence with Winbond. See below. |
|---|
| 538 |
|
|---|
| 539 |
rt[1-3]: (w83781d only) |
|---|
| 540 |
32-byte tables controlling the conversion from |
|---|
| 541 |
resistance to temperature for thermistors. |
|---|
| 542 |
For the curious only. Writing to these entries will |
|---|
| 543 |
probably render temperature sensing insane. |
|---|
| 544 |
Only set at initialization; not updated every 1.5 seconds. |
|---|
| 545 |
|
|---|
| 546 |
|
|---|
| 547 |
|
|---|
| 548 |
TO DO: |
|---|
| 549 |
----- |
|---|
| 550 |
782d programmable pins |
|---|
| 551 |
|
|---|
| 552 |
|
|---|
| 553 |
NOTES: |
|---|
| 554 |
----- |
|---|
| 555 |
783s has no in1 so that in[2-6] are compatible with the 781d/782d. |
|---|
| 556 |
|
|---|
| 557 |
783s pin is programmable for -5V or temp1; defaults to -5V, |
|---|
| 558 |
no control in driver so temp1 doesn't work. |
|---|
| 559 |
|
|---|
| 560 |
782d and 783s datasheets differ on which is pwm1 and which is pwm2. |
|---|
| 561 |
We chose to follow 782d. |
|---|
| 562 |
|
|---|
| 563 |
782d and 783s pin is programmable for fan3 input or pwm2 output; |
|---|
| 564 |
defaults to fan3 input. |
|---|
| 565 |
If pwm2 is enabled (with echo 255 1 > pwm2), then |
|---|
| 566 |
fan3 will report 0. |
|---|
| 567 |
|
|---|
| 568 |
782d has pwm1-2 for isa, pwm1-4 for i2c. (pwm3-4 share pins with |
|---|
| 569 |
the isa pins) |
|---|
| 570 |
|
|---|
| 571 |
|
|---|
| 572 |
|
|---|
| 573 |
Data sheet updates: |
|---|
| 574 |
------------------ |
|---|
| 575 |
- PWM clock registers: |
|---|
| 576 |
|
|---|
| 577 |
000: master / 512 |
|---|
| 578 |
001: master / 1024 |
|---|
| 579 |
010: master / 2048 |
|---|
| 580 |
011: master / 4096 |
|---|
| 581 |
100: master / 8192 |
|---|
| 582 |
|
|---|
| 583 |
|
|---|
| 584 |
Answers from Winbond tech support |
|---|
| 585 |
--------------------------------- |
|---|
| 586 |
> |
|---|
| 587 |
> 1) In the W83781D data sheet section 7.2 last paragraph, it talks about |
|---|
| 588 |
> reprogramming the R-T table if the Beta of the thermistor is not |
|---|
| 589 |
> 3435K. The R-T table is described briefly in section 8.20. |
|---|
| 590 |
> What formulas do I use to program a new R-T table for a given Beta? |
|---|
| 591 |
> |
|---|
| 592 |
We are sorry that the calculation for R-T table value is |
|---|
| 593 |
confidential. If you have another Beta value of thermistor, we can help |
|---|
| 594 |
to calculate the R-T table for you. But you should give us real R-T |
|---|
| 595 |
Table which can be gotten by thermistor vendor. Therefore we will calculate |
|---|
| 596 |
them and obtain 32-byte data, and you can fill the 32-byte data to the |
|---|
| 597 |
register in Bank0.CR51 of W83781D. |
|---|
| 598 |
|
|---|
| 599 |
|
|---|
| 600 |
> 2) In the W83782D data sheet, it mentions that pins 38, 39, and 40 are |
|---|
| 601 |
> programmable to be either thermistor or Pentium II diode inputs. |
|---|
| 602 |
> How do I program them for diode inputs? I can't find any register |
|---|
| 603 |
> to program these to be diode inputs. |
|---|
| 604 |
--> You may program Bank0 CR[5Dh] and CR[59h] registers. |
|---|
| 605 |
|
|---|
| 606 |
CR[5Dh] bit 1(VTIN1) bit 2(VTIN2) bit 3(VTIN3) |
|---|
| 607 |
|
|---|
| 608 |
thermistor 0 0 0 |
|---|
| 609 |
diode 1 1 1 |
|---|
| 610 |
|
|---|
| 611 |
|
|---|
| 612 |
(error) CR[59h] bit 4(VTIN1) bit 2(VTIN2) bit 3(VTIN3) |
|---|
| 613 |
(right) CR[59h] bit 4(VTIN1) bit 5(VTIN2) bit 6(VTIN3) |
|---|
| 614 |
|
|---|
| 615 |
PII thermal diode 1 1 1 |
|---|
| 616 |
2N3904 diode 0 0 0 |
|---|
| 617 |
|
|---|
| 618 |
|
|---|
| 619 |
Author/Maintainer |
|---|
| 620 |
----------------- |
|---|
| 621 |
Original 781D support: Frodo and Phil |
|---|
| 622 |
782D/783S support added by: Mark D. Studebaker (mdsxyz123@yahoo.com) |
|---|
| 623 |
|
|---|
| 624 |
|
|---|
| 625 |
Asus Clones |
|---|
| 626 |
----------- |
|---|
| 627 |
|
|---|
| 628 |
We have no datasheets for the Asus clones (AS99127F and ASB100 Bach). |
|---|
| 629 |
Here are some very useful information that were given to us by Alex Van |
|---|
| 630 |
Kaam about how to detect these chips, and how to read their values. He |
|---|
| 631 |
also gives advice for another Asus chipset, the Mozart-2 (which we |
|---|
| 632 |
don't support yet). Thanks Alex! |
|---|
| 633 |
I reworded some parts and added personal comments. |
|---|
| 634 |
|
|---|
| 635 |
# Detection: |
|---|
| 636 |
|
|---|
| 637 |
AS99127F rev.1, AS99127F rev.2 and ASB100: |
|---|
| 638 |
- I2C address range: 0x29 - 0x2F |
|---|
| 639 |
- If register 0x58 holds 0x31 then we have an Asus (either ASB100 or |
|---|
| 640 |
AS99127F) |
|---|
| 641 |
- Which one depends on register 0x4F (manufacturer ID): |
|---|
| 642 |
0x06 or 0x94: ASB100 |
|---|
| 643 |
0x12 or 0xC3: AS99127F rev.1 |
|---|
| 644 |
0x5C or 0xA3: AS99127F rev.2 |
|---|
| 645 |
Note that 0x5CA3 is Winbond's ID (WEC), which let us think Asus get their |
|---|
| 646 |
AS99127F rev.2 direct from Winbond. The other codes mean ATT and DVC, |
|---|
| 647 |
respectively. ATT could stand for Asustek something (although it would be |
|---|
| 648 |
very badly chosen IMHO), I don't know what DVC could stand for. Maybe |
|---|
| 649 |
these codes simply aren't meant to be decoded that way. |
|---|
| 650 |
|
|---|
| 651 |
Mozart-2: |
|---|
| 652 |
- I2C address: 0x77 |
|---|
| 653 |
- If register 0x58 holds 0x56 or 0x10 then we have a Mozart-2 |
|---|
| 654 |
- Of the mozart there are 3 types: |
|---|
| 655 |
0x58=0x56, 0x4E=0x94, 0x4F=0x36: Asus ASM58 Mozart-2 |
|---|
| 656 |
0x58=0x56, 0x4E=0x94, 0x4F=0x06: Asus AS2K129R Mozart-2 |
|---|
| 657 |
0x58=0x10, 0x4E=0x5C, 0x4F=0xA3: Asus ??? Mozart-2 |
|---|
| 658 |
You can handle all 3 the exact same way :) |
|---|
| 659 |
|
|---|
| 660 |
# Temperature sensors: |
|---|
| 661 |
|
|---|
| 662 |
ASB100: |
|---|
| 663 |
- sensor 1: register 0x27 |
|---|
| 664 |
- sensor 2 & 3 are the 2 LM75's on the SMBus |
|---|
| 665 |
- sensor 4: register 0x17 |
|---|
| 666 |
Remark: I noticed that on Intel boards sensor 2 is used for the CPU |
|---|
| 667 |
and 4 is ignored/stuck, on AMD boards sensor 4 is the CPU and sensor 2 is |
|---|
| 668 |
either ignored or a socket temperature. |
|---|
| 669 |
|
|---|
| 670 |
AS99127F (rev.1 and 2 alike): |
|---|
| 671 |
- sensor 1: register 0x27 |
|---|
| 672 |
- sensor 2 & 3 are the 2 LM75's on the SMBus |
|---|
| 673 |
Remark: Register 0x5b is suspected to be temperature type selector. Bit 1 |
|---|
| 674 |
would control temp1, bit 3 temp2 and bit 5 temp3. |
|---|
| 675 |
|
|---|
| 676 |
Mozart-2: |
|---|
| 677 |
- sensor 1: register 0x27 |
|---|
| 678 |
- sensor 2: register 0x13 |
|---|
| 679 |
|
|---|
| 680 |
# Fan sensors: |
|---|
| 681 |
|
|---|
| 682 |
ASB100, AS99127F (rev.1 and 2 alike): |
|---|
| 683 |
- 3 fans, identical to the W83781D |
|---|
| 684 |
|
|---|
| 685 |
Mozart-2: |
|---|
| 686 |
- 2 fans only, 1350000/rpm/div |
|---|
| 687 |
- fan 1: register 0x28, divisor on register 0xA1 (bits 4-5) |
|---|
| 688 |
- fan 2: register 0x29, divisor on register 0xA1 (bits 6-7) |
|---|
| 689 |
|
|---|
| 690 |
# Voltages: |
|---|
| 691 |
|
|---|
| 692 |
This is where there is a difference between AS99127F rev.1 and 2. |
|---|
| 693 |
Remark: The difference is similar to the difference between |
|---|
| 694 |
W83781D and W83782D. |
|---|
| 695 |
|
|---|
| 696 |
ASB100: |
|---|
| 697 |
in0=r(0x20)*0.016 |
|---|
| 698 |
in1=r(0x21)*0.016 |
|---|
| 699 |
in2=r(0x22)*0.016 |
|---|
| 700 |
in3=r(0x23)*0.016*1.68 |
|---|
| 701 |
in4=r(0x24)*0.016*3.8 |
|---|
| 702 |
in5=r(0x25)*(-0.016)*3.97 |
|---|
| 703 |
in6=r(0x26)*(-0.016)*1.666 |
|---|
| 704 |
|
|---|
| 705 |
AS99127F rev.1: |
|---|
| 706 |
in0=r(0x20)*0.016 |
|---|
| 707 |
in1=r(0x21)*0.016 |
|---|
| 708 |
in2=r(0x22)*0.016 |
|---|
| 709 |
in3=r(0x23)*0.016*1.68 |
|---|
| 710 |
in4=r(0x24)*0.016*3.8 |
|---|
| 711 |
in5=r(0x25)*(-0.016)*3.97 |
|---|
| 712 |
in6=r(0x26)*(-0.016)*1.503 |
|---|
| 713 |
|
|---|
| 714 |
AS99127F rev.2: |
|---|
| 715 |
in0=r(0x20)*0.016 |
|---|
| 716 |
in1=r(0x21)*0.016 |
|---|
| 717 |
in2=r(0x22)*0.016 |
|---|
| 718 |
in3=r(0x23)*0.016*1.68 |
|---|
| 719 |
in4=r(0x24)*0.016*3.8 |
|---|
| 720 |
in5=(r(0x25)*0.016-3.6)*5.14+3.6 |
|---|
| 721 |
in6=(r(0x26)*0.016-3.6)*3.14+3.6 |
|---|
| 722 |
|
|---|
| 723 |
Mozart-2: |
|---|
| 724 |
in0=r(0x20)*0.016 |
|---|
| 725 |
in1=255 |
|---|
| 726 |
in2=r(0x22)*0.016 |
|---|
| 727 |
in3=r(0x23)*0.016*1.68 |
|---|
| 728 |
in4=r(0x24)*0.016*4 |
|---|
| 729 |
in5=255 |
|---|
| 730 |
in6=255 |
|---|
| 731 |
|
|---|
| 732 |
|
|---|
| 733 |
# PWM |
|---|
| 734 |
|
|---|
| 735 |
* Additional info about PWM on the AS99127F (may apply to other Asus |
|---|
| 736 |
chips as well) by Jean Delvare as of 2004-04-09: |
|---|
| 737 |
|
|---|
| 738 |
AS99127F revision 2 seems to have two PWM registers at 0x59 and 0x5A, |
|---|
| 739 |
and a temperature sensor type selector at 0x5B (which basically means |
|---|
| 740 |
that they swapped registers 0x59 and 0x5B when you compare with Winbond |
|---|
| 741 |
chips). |
|---|
| 742 |
Revision 1 of the chip also has the temperature sensor type selector at |
|---|
| 743 |
0x5B, but PWM registers have no effect. |
|---|
| 744 |
|
|---|
| 745 |
We don't know exactly how the temperature sensor type selection works. |
|---|
| 746 |
Looks like bits 1-0 are for temp1, bits 3-2 for temp2 and bits 5-4 for |
|---|
| 747 |
temp3, although it is possible that only the most significant bit matters |
|---|
| 748 |
each time. So far, values other than 0 always broke the readings. |
|---|
| 749 |
|
|---|
| 750 |
PWM registers seem to be split in two parts: bit 7 is a mode selector, |
|---|
| 751 |
while the other bits seem to define a value or threshold. |
|---|
| 752 |
|
|---|
| 753 |
When bit 7 is clear, bits 6-0 seem to hold a threshold value. If the value |
|---|
| 754 |
is below a given limit, the fan runs at low speed. If the value is above |
|---|
| 755 |
the limit, the fan runs at full speed. We have no clue as to what the limit |
|---|
| 756 |
represents. Note that there seem to be some inertia in this mode, speed |
|---|
| 757 |
changes may need some time to trigger. Also, an hysteresis mechanism is |
|---|
| 758 |
suspected since walking through all the values increasingly and then |
|---|
| 759 |
decreasingly led to slightly different limits. |
|---|
| 760 |
|
|---|
| 761 |
When bit 7 is set, bits 3-0 seem to hold a threshold value, while bits 6-4 |
|---|
| 762 |
would not be significant. If the value is below a given limit, the fan runs |
|---|
| 763 |
at full speed, while if it is above the limit it runs at low speed (so this |
|---|
| 764 |
is the contrary of the other mode, in a way). Here again, we don't know |
|---|
| 765 |
what the limit is supposed to represent. |
|---|
| 766 |
|
|---|
| 767 |
One remarkable thing is that the fans would only have two or three |
|---|
| 768 |
different speeds (transitional states left apart), not a whole range as |
|---|
| 769 |
you usually get with PWM. |
|---|
| 770 |
|
|---|
| 771 |
As a conclusion, you can write 0x00 or 0x8F to the PWM registers to make |
|---|
| 772 |
fans run at low speed, and 0x7F or 0x80 to make them run at full speed. |
|---|
| 773 |
|
|---|
| 774 |
Please contact us if you can figure out how it is supposed to work. As |
|---|
| 775 |
long as we don't know more, the w83781d driver doesn't handle PWM on |
|---|
| 776 |
AS99127F chips at all. |
|---|
| 777 |
|
|---|
| 778 |
* Additional info about PWM on the AS99127F rev.1 by Hector Martin: |
|---|
| 779 |
|
|---|
| 780 |
I've been fiddling around with the (in)famous 0x59 register and |
|---|
| 781 |
found out the following values do work as a form of coarse pwm: |
|---|
| 782 |
|
|---|
| 783 |
0x80 - seems to turn fans off after some time(1-2 minutes)... might be |
|---|
| 784 |
some form of auto-fan-control based on temp? hmm (Qfan? this mobo is an |
|---|
| 785 |
old ASUS, it isn't marketed as Qfan. Maybe some beta pre-attempt at Qfan |
|---|
| 786 |
that was dropped at the BIOS) |
|---|
| 787 |
0x81 - off |
|---|
| 788 |
0x82 - slightly "on-ner" than off, but my fans do not get to move. I can |
|---|
| 789 |
hear the high-pitched PWM sound that motors give off at too-low-pwm. |
|---|
| 790 |
0x83 - now they do move. Estimate about 70% speed or so. |
|---|
| 791 |
0x84-0x8f - full on |
|---|
| 792 |
|
|---|
| 793 |
Changing the high nibble doesn't seem to do much except the high bit |
|---|
| 794 |
(0x80) must be set for PWM to work, else the current pwm doesn't seem to |
|---|
| 795 |
change. |
|---|
| 796 |
|
|---|
| 797 |
My mobo is an ASUS A7V266-E. This behaviour is similar to what I got |
|---|
| 798 |
with speedfan under Windows, where 0-15% would be off, 15-2x% (can't |
|---|
| 799 |
remember the exact value) would be 70% and higher would be full on. |
|---|
| 800 |
|
|---|
| 801 |
* Additional info about PWM on the AS99127F rev.1 from lm-sensors |
|---|
| 802 |
ticket #2350: |
|---|
| 803 |
|
|---|
| 804 |
I conducted some experiment on Asus P3B-F motherboard with AS99127F |
|---|
|
|---|