~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/hwmon/w83781d.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/hwmon/w83781d.rst (Version linux-6.11.5) and /Documentation/hwmon/w83781d.rst (Version linux-4.17.19)


  1 Kernel driver w83781d                             
  2 =====================                             
  3                                                   
  4 Supported chips:                                  
  5                                                   
  6   * Winbond W83781D                               
  7                                                   
  8     Prefix: 'w83781d'                             
  9                                                   
 10     Addresses scanned: I2C 0x28 - 0x2f, ISA 0x    
 11                                                   
 12     Datasheet: http://www.winbond-usa.com/prod    
 13                                                   
 14   * Winbond W83782D                               
 15                                                   
 16     Prefix: 'w83782d'                             
 17                                                   
 18     Addresses scanned: I2C 0x28 - 0x2f, ISA 0x    
 19                                                   
 20     Datasheet: https://www.winbond.com            
 21                                                   
 22   * Winbond W83783S                               
 23                                                   
 24     Prefix: 'w83783s'                             
 25                                                   
 26     Addresses scanned: I2C 0x2d                   
 27                                                   
 28     Datasheet: http://www.winbond-usa.com/prod    
 29                                                   
 30   * Asus AS99127F                                 
 31                                                   
 32     Prefix: 'as99127f'                            
 33                                                   
 34     Addresses scanned: I2C 0x28 - 0x2f            
 35                                                   
 36     Datasheet: Unavailable from Asus              
 37                                                   
 38                                                   
 39                                                   
 40 Authors:                                          
 41                                                   
 42       - Frodo Looijaard <frodol@dds.nl>,           
 43       - Philip Edelbrock <phil@netroedge.com>,     
 44       - Mark Studebaker <mdsxyz123@yahoo.com>      
 45                                                   
 46 Module parameters                                 
 47 -----------------                                 
 48                                                   
 49 * init int                                        
 50     (default 1)                                   
 51                                                   
 52     Use 'init=0' to bypass initializing the ch    
 53     Try this if your computer crashes when you    
 54                                                   
 55 * reset int                                       
 56     (default 0)                                   
 57     The driver used to reset the chip on load,    
 58     'reset=1' to restore the old behavior. Rep    
 59                                                   
 60 force_subclients=bus,caddr,saddr,saddr            
 61   This is used to force the i2c addresses for     
 62   a certain chip. Typical usage is `force_subc    
 63   to force the subclients of chip 0x2d on bus     
 64   0x4a and 0x4b. This parameter is useful for     
 65                                                   
 66 Description                                       
 67 -----------                                       
 68                                                   
 69 This driver implements support for the Winbond    
 70 chips, and the Asus AS99127F chips. We will re    
 71 W8378* chips.                                     
 72                                                   
 73 There is quite some difference between these c    
 74 enough that it was sensible to put them togeth    
 75 The Asus chips are similar to an I2C-only W837    
 76                                                   
 77 +----------+---------+--------+-------+-------    
 78 | Chip     | #vin    | #fanin | #pwm  | #temp     
 79 +----------+---------+--------+-------+-------    
 80 | as99127f | 7       | 3      | 0     | 3         
 81 +----------+---------+--------+-------+-------    
 82 | as99127f rev.2 (type_name = as99127f)           
 83 +----------+---------+--------+-------+-------    
 84 | w83781d  | 7       | 3      | 0     | 3         
 85 +----------+---------+--------+-------+-------    
 86 | w83782d  | 9       | 3      | 2-4   | 3         
 87 +----------+---------+--------+-------+-------    
 88 | w83783s  | 5-6     | 3      | 2     |  1-2      
 89 +----------+---------+--------+-------+-------    
 90                                                   
 91 Detection of these chips can sometimes be foil    
 92 an internal state that allows no clean access.    
 93 of the chip, use a 'force' parameter; this wil    
 94 well-behaved state first.                         
 95                                                   
 96 The W8378* implements temperature sensors (thr    
 97 two on the W83783S), three fan rotation speed     
 98 (seven on the W83781D, nine on the W83782D and    
 99 lines, alarms with beep warnings, and some mis    
100                                                   
101 Temperatures are measured in degrees Celsius.     
102 temperature sensor, and one (W83783S) or two (    
103 sensors. An alarm is triggered for the main se    
104 Overtemperature Shutdown limit is crossed; it     
105 it drops below the Hysteresis value. A more us    
106 can be found by setting the Hysteresis value t    
107 this case, alarms are issued during all the ti    
108 is above the Overtemperature Shutdown value. T    
109 hysteresis value for temp1 to 127 at initializ    
110                                                   
111 For the other temperature sensor(s), an alarm     
112 temperature gets higher then the Overtemperatu    
113 on until the temperature falls below the Hyste    
114 W83781D, there is only one alarm that function    
115 Temperatures are guaranteed within a range of     
116 main temperature sensors has a resolution of 1    
117 of 0.5 degree.                                    
118                                                   
119 Fan rotation speeds are reported in RPM (rotat    
120 triggered if the rotation speed has dropped be    
121 readings can be divided by a programmable divi    
122 W83781D; 1, 2, 4, 8, 16, 32, 64 or 128 for the    
123 the readings more range or accuracy. Not all R    
124 be represented, so some rounding is done. With    
125 representable value is around 2600 RPM.           
126                                                   
127 Voltage sensors (also known as IN sensors) rep    
128 An alarm is triggered if the voltage has cross    
129 or maximum limit. Note that minimum in this ca    
130 zero'; this is important for negative voltage     
131 inputs can measure voltages between 0 and 4.08    
132 of 0.016 volt.                                    
133                                                   
134 The VID lines encode the core voltage value: t    
135 should work with. This is hardcoded by the mai    
136 It is a value in volts. When it is unconnected    
137 value 3.50 V here.                                
138                                                   
139 The W83782D and W83783S temperature conversion    
140 several kinds of temperature probes. You can p    
141 beta value in the sensor files. '1' is the PII    
142 TN3904 transistor, and 3435 the default thermi    
143 are (not yet) supported.                          
144                                                   
145 In addition to the alarms described above, the    
146 chips which triggers if your computer case is     
147                                                   
148 When an alarm goes off, you can be warned by a    
149 your computer speaker. It is possible to enabl    
150 or only the beeping for some alarms.              
151                                                   
152 Individual alarm and beep bits:                   
153                                                   
154 ======== ==========================               
155 0x000001 in0                                      
156 0x000002 in1                                      
157 0x000004 in2                                      
158 0x000008 in3                                      
159 0x000010 temp1                                    
160 0x000020 temp2 (+temp3 on W83781D)                
161 0x000040 fan1                                     
162 0x000080 fan2                                     
163 0x000100 in4                                      
164 0x000200 in5                                      
165 0x000400 in6                                      
166 0x000800 fan3                                     
167 0x001000 chassis                                  
168 0x002000 temp3 (W83782D only)                     
169 0x010000 in7 (W83782D only)                       
170 0x020000 in8 (W83782D only)                       
171 ======== ==========================               
172                                                   
173 If an alarm triggers, it will remain triggered    
174 is read at least once. This means that the cau    
175 already have disappeared! Note that in the cur    
176 hardware registers are read whenever any data     
177 than 1.5 seconds since the last update). This     
178 miss once-only alarms.                            
179                                                   
180 The chips only update values each 1.5 seconds;    
181 will do no harm, but will return 'old' values.    
182                                                   
183 AS99127F PROBLEMS                                 
184 -----------------                                 
185 The as99127f support was developed without the    
186 In most cases it is treated as a w83781d (alth    
187 AS99127F looks more like a w83782d).              
188 This support will be BETA until a datasheet is    
189 One user has reported problems with fans stopp    
190 occasionally.                                     
191                                                   
192 Note that the individual beep bits are inverte    
193 The driver now takes care of this so that user    
194 don't have to know about it.                      
195                                                   
196 Known problems:                                   
197         - Problems with diode/thermistor setti    
198         - One user reports fans stopping under    
199         - Revision 2 seems to have 2 PWM regis    
200           how to handle them. More details bel    
201                                                   
202 These will not be fixed unless we get a datash    
203 If you have problems, please lobby Asus to rel    
204 Unfortunately several others have without succ    
205 Please do not send mail to us asking for bette    
206 We have done the best we can without a datashe    
207 Please do not send mail to the author or the s    
208 a datasheet or ideas on how to convince Asus.     
209                                                   
210                                                   
211 NOTES                                             
212 -----                                             
213   783s has no in1 so that in[2-6] are compatib    
214                                                   
215   783s pin is programmable for -5V or temp1; d    
216   no control in driver so temp1 doesn't work.     
217                                                   
218   782d and 783s datasheets differ on which is     
219   We chose to follow 782d.                        
220                                                   
221   782d and 783s pin is programmable for fan3 i    
222   defaults to fan3 input.                         
223   If pwm2 is enabled (with echo 255 1 > pwm2),    
224   fan3 will report 0.                             
225                                                   
226   782d has pwm1-2 for ISA, pwm1-4 for i2c. (pw    
227   the ISA pins)                                   
228                                                   
229 Data sheet updates                                
230 ------------------                                
231         - PWM clock registers:                    
232                 * 000: master /  512              
233                 * 001: master / 1024              
234                 * 010: master / 2048              
235                 * 011: master / 4096              
236                 * 100: master / 8192              
237                                                   
238                                                   
239 Answers from Winbond tech support                 
240 ---------------------------------                 
241                                                   
242 ::                                                
243                                                   
244   >                                               
245   > 1) In the W83781D data sheet section 7.2 l    
246   >    reprogramming the R-T table if the Beta    
247   >    3435K. The R-T table is described brief    
248   >    What formulas do I use to program a new    
249   >                                               
250                                                   
251   We are sorry that the calculation for R-T ta    
252   confidential. If you have another Beta value    
253   to calculate the R-T table for you. But you     
254   Table which can be gotten by thermistor vend    
255   them and obtain 32-byte data, and you can fi    
256   register in Bank0.CR51 of W83781D.              
257                                                   
258                                                   
259   > 2) In the W83782D data sheet, it mentions     
260   >    programmable to be either thermistor or    
261   >    How do I program them for diode inputs?    
262   >    to program these to be diode inputs.       
263                                                   
264   You may program Bank0 CR[5Dh] and CR[59h] re    
265                                                   
266   =============================== ============    
267         CR[5Dh]                 bit 1(VTIN1)      
268                                                   
269                 thermistor                0       
270         diode                     1               
271                                                   
272                                                   
273   (error) CR[59h]               bit 4(VTIN1)      
274   (right) CR[59h]               bit 4(VTIN1)      
275                                                   
276         PII thermal diode         1               
277         2N3904  diode             0               
278   =============================== ============    
279                                                   
280                                                   
281 Asus Clones                                       
282 -----------                                       
283                                                   
284 We have no datasheets for the Asus clones (AS9    
285 Here are some very useful information that wer    
286 Kaam about how to detect these chips, and how     
287 also gives advice for another Asus chipset, th    
288 don't support yet). Thanks Alex!                  
289                                                   
290 I reworded some parts and added personal comme    
291                                                   
292 Detection                                         
293 ^^^^^^^^^                                         
294                                                   
295 AS99127F rev.1, AS99127F rev.2 and ASB100:        
296 - I2C address range: 0x29 - 0x2F                  
297 - If register 0x58 holds 0x31 then we have an     
298 - Which one depends on register 0x4F (manufact    
299                                                   
300   - 0x06 or 0x94: ASB100                          
301   - 0x12 or 0xC3: AS99127F rev.1                  
302   - 0x5C or 0xA3: AS99127F rev.2                  
303                                                   
304   Note that 0x5CA3 is Winbond's ID (WEC), whic    
305   AS99127F rev.2 direct from Winbond. The othe    
306   respectively. ATT could stand for Asustek so    
307   very badly chosen IMHO), I don't know what D    
308   these codes simply aren't meant to be decode    
309                                                   
310 Mozart-2:                                         
311 - I2C address: 0x77                               
312 - If register 0x58 holds 0x56 or 0x10 then we     
313 - Of the Mozart there are 3 types:                
314                                                   
315   - 0x58=0x56, 0x4E=0x94, 0x4F=0x36: Asus ASM5    
316   - 0x58=0x56, 0x4E=0x94, 0x4F=0x06: Asus AS2K    
317   - 0x58=0x10, 0x4E=0x5C, 0x4F=0xA3: Asus ???     
318                                                   
319   You can handle all 3 the exact same way :)      
320                                                   
321 Temperature sensors                               
322 ^^^^^^^^^^^^^^^^^^^                               
323                                                   
324 ASB100:                                           
325   - sensor 1: register 0x27                       
326   - sensor 2 & 3 are the 2 LM75's on the SMBus    
327   - sensor 4: register 0x17                       
328                                                   
329 Remark:                                           
330                                                   
331   I noticed that on Intel boards sensor 2 is u    
332   and 4 is ignored/stuck, on AMD boards sensor    
333   either ignored or a socket temperature.         
334                                                   
335 AS99127F (rev.1 and 2 alike):                     
336   - sensor 1: register 0x27                       
337   - sensor 2 & 3 are the 2 LM75's on the SMBus    
338                                                   
339 Remark:                                           
340                                                   
341   Register 0x5b is suspected to be temperature    
342   would control temp1, bit 3 temp2 and bit 5 t    
343                                                   
344 Mozart-2:                                         
345   - sensor 1: register 0x27                       
346   - sensor 2: register 0x13                       
347                                                   
348 Fan sensors                                       
349 ^^^^^^^^^^^                                       
350                                                   
351 ASB100, AS99127F (rev.1 and 2 alike):             
352   - 3 fans, identical to the W83781D              
353                                                   
354 Mozart-2:                                         
355   - 2 fans only, 1350000/RPM/div                  
356   - fan 1: register 0x28,  divisor on register    
357   - fan 2: register 0x29,  divisor on register    
358                                                   
359 Voltages                                          
360 ^^^^^^^^                                          
361                                                   
362 This is where there is a difference between AS    
363                                                   
364 Remark:                                           
365                                                   
366   The difference is similar to the difference     
367   W83781D and W83782D.                            
368                                                   
369 ASB100:                                           
370   - in0=r(0x20)*0.016                             
371   - in1=r(0x21)*0.016                             
372   - in2=r(0x22)*0.016                             
373   - in3=r(0x23)*0.016*1.68                        
374   - in4=r(0x24)*0.016*3.8                         
375   - in5=r(0x25)*(-0.016)*3.97                     
376   - in6=r(0x26)*(-0.016)*1.666                    
377                                                   
378 AS99127F rev.1:                                   
379   - in0=r(0x20)*0.016                             
380   - in1=r(0x21)*0.016                             
381   - in2=r(0x22)*0.016                             
382   - in3=r(0x23)*0.016*1.68                        
383   - in4=r(0x24)*0.016*3.8                         
384   - in5=r(0x25)*(-0.016)*3.97                     
385   - in6=r(0x26)*(-0.016)*1.503                    
386                                                   
387 AS99127F rev.2:                                   
388   - in0=r(0x20)*0.016                             
389   - in1=r(0x21)*0.016                             
390   - in2=r(0x22)*0.016                             
391   - in3=r(0x23)*0.016*1.68                        
392   - in4=r(0x24)*0.016*3.8                         
393   - in5=(r(0x25)*0.016-3.6)*5.14+3.6              
394   - in6=(r(0x26)*0.016-3.6)*3.14+3.6              
395                                                   
396 Mozart-2:                                         
397   - in0=r(0x20)*0.016                             
398   - in1=255                                       
399   - in2=r(0x22)*0.016                             
400   - in3=r(0x23)*0.016*1.68                        
401   - in4=r(0x24)*0.016*4                           
402   - in5=255                                       
403   - in6=255                                       
404                                                   
405                                                   
406 PWM                                               
407 ^^^                                               
408                                                   
409 * Additional info about PWM on the AS99127F (m    
410   chips as well) by Jean Delvare as of 2004-04    
411                                                   
412 AS99127F revision 2 seems to have two PWM regi    
413 and a temperature sensor type selector at 0x5B    
414 that they swapped registers 0x59 and 0x5B when    
415 chips).                                           
416 Revision 1 of the chip also has the temperatur    
417 0x5B, but PWM registers have no effect.           
418                                                   
419 We don't know exactly how the temperature sens    
420 Looks like bits 1-0 are for temp1, bits 3-2 fo    
421 temp3, although it is possible that only the m    
422 each time. So far, values other than 0 always     
423                                                   
424 PWM registers seem to be split in two parts: b    
425 while the other bits seem to define a value or    
426                                                   
427 When bit 7 is clear, bits 6-0 seem to hold a t    
428 is below a given limit, the fan runs at low sp    
429 the limit, the fan runs at full speed. We have    
430 represents. Note that there seem to be some in    
431 changes may need some time to trigger. Also, a    
432 suspected since walking through all the values    
433 decreasingly led to slightly different limits.    
434                                                   
435 When bit 7 is set, bits 3-0 seem to hold a thr    
436 would not be significant. If the value is belo    
437 at full speed, while if it is above the limit     
438 is the contrary of the other mode, in a way).     
439 what the limit is supposed to represent.          
440                                                   
441 One remarkable thing is that the fans would on    
442 different speeds (transitional states left apa    
443 you usually get with PWM.                         
444                                                   
445 As a conclusion, you can write 0x00 or 0x8F to    
446 fans run at low speed, and 0x7F or 0x80 to mak    
447                                                   
448 Please contact us if you can figure out how it    
449 long as we don't know more, the w83781d driver    
450 AS99127F chips at all.                            
451                                                   
452 * Additional info about PWM on the AS99127F re    
453                                                   
454 I've been fiddling around with the (in)famous     
455 found out the following values do work as a fo    
456                                                   
457 0x80                                              
458  - seems to turn fans off after some time(1-2     
459    some form of auto-fan-control based on temp    
460    old ASUS, it isn't marketed as Qfan. Maybe     
461    that was dropped at the BIOS)                  
462 0x81                                              
463  - off                                            
464 0x82                                              
465  - slightly "on-ner" than off, but my fans do     
466    hear the high-pitched PWM sound that motors    
467 0x83                                              
468  - now they do move. Estimate about 70% speed     
469 0x84-0x8f                                         
470  - full on                                        
471                                                   
472 Changing the high nibble doesn't seem to do mu    
473 (0x80) must be set for PWM to work, else the c    
474 change.                                           
475                                                   
476 My mobo is an ASUS A7V266-E. This behavior is     
477 with speedfan under Windows, where 0-15% would    
478 remember the exact value) would be 70% and hig    
479                                                   
480 * Additional info about PWM on the AS99127F re    
481   ticket #2350:                                   
482                                                   
483 I conducted some experiment on Asus P3B-F moth    
484 (Ver. 1).                                         
485                                                   
486 I confirm that 0x59 register control the CPU_F    
487 motherboard, and 0x5a register control PWR_Fan    
488                                                   
489 In order to reduce the dependency of specific     
490 conducted with a digital scope without fan con    
491 P3B-F actually output variable DC voltage on f    
492 looks like PWM is filtered on this motherboard    
493                                                   
494 Here are some of measurements:                    
495                                                   
496 ==== =========                                    
497 0x80     20 mV                                    
498 0x81     20 mV                                    
499 0x82    232 mV                                    
500 0x83   1.2  V                                     
501 0x84   2.31 V                                     
502 0x85   3.44 V                                     
503 0x86   4.62 V                                     
504 0x87   5.81 V                                     
505 0x88   7.01 V                                     
506 9x89   8.22 V                                     
507 0x8a   9.42 V                                     
508 0x8b  10.6  V                                     
509 0x8c  11.9  V                                     
510 0x8d  12.4  V                                     
511 0x8e  12.4  V                                     
512 0x8f  12.4  V                                     
513 ==== =========                                    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php