| 1 | Winbond 83781D driver |
|---|
| 2 | --------------------- |
|---|
| 3 | Supports the following Winbond chips: |
|---|
| 4 | |
|---|
| 5 | Chip #vin #fanin #pwm #temp wchipid i2c ISA |
|---|
| 6 | ------------------------------------------------------------ |
|---|
| 7 | w83781d 7 3 0 3 0x10 yes yes |
|---|
| 8 | w83782d 9 3 2-4 3 0x30 yes yes |
|---|
| 9 | w83783s 5-6 3 2 1-2 0x40 yes no |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | Stability |
|---|
| 13 | --------- |
|---|
| 14 | w83781d: tested, stable |
|---|
| 15 | w83782d: beta tested, some minor bugs and things to do. |
|---|
| 16 | w83783s: untested |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | /PROC ENTRIES |
|---|
| 20 | ------------- |
|---|
| 21 | Varies depending on chip type. Most are identical to the lm78 entries. |
|---|
| 22 | See the lm78 documentation for details. |
|---|
| 23 | |
|---|
| 24 | Additional entries not in the lm78: |
|---|
| 25 | |
|---|
| 26 | pwm[1-4]: (782d/783s only) |
|---|
| 27 | Controls the speed of the fans with PWM (Pulse Width Modulation) |
|---|
| 28 | Valid values: |
|---|
| 29 | 0 - 255. 255 = max speed. |
|---|
| 30 | |
|---|
| 31 | sensor[1-3]: (782d/783s only) |
|---|
| 32 | Controls the sensor type. To change to a different |
|---|
| 33 | sensor type, for example, do 'echo 2 > sensor1'. |
|---|
| 34 | Valid values: |
|---|
| 35 | 1: Pentium II / Celeron diode |
|---|
| 36 | 2: 2N3904 Transistor in a diode configuration |
|---|
| 37 | 3435: Thermistor with Beta = 3435. Beta is a measure |
|---|
| 38 | of sensitivity to temperature. |
|---|
| 39 | Thermistors with other Betas could in theory be supported |
|---|
| 40 | after correspondence with Winbond. See below. |
|---|
| 41 | |
|---|
| 42 | rt[1-3]: (781d only) |
|---|
| 43 | 32-byte tables controlling the conversion from |
|---|
| 44 | resistance to temperature for thermistors. |
|---|
| 45 | For the curious only. Writing to these entries will |
|---|
| 46 | probably render temperature sensing insane. |
|---|
| 47 | Only set at initialization; not updated every 1.5 seconds. |
|---|
| 48 | |
|---|
| 49 | |
|---|
| 50 | The driver only updates its values each 1.5 seconds; reading it more often |
|---|
| 51 | will do no harm, but will return 'old' values. |
|---|
| 52 | |
|---|
| 53 | |
|---|
| 54 | TO DO: |
|---|
| 55 | ----- |
|---|
| 56 | 782d beep 3 register |
|---|
| 57 | 782d programmable pins |
|---|
| 58 | 783s temp2 (labeled as temp1 in data sheet) at different location |
|---|
| 59 | than 781d/782d, not implemented yet. |
|---|
| 60 | |
|---|
| 61 | |
|---|
| 62 | NOTES: |
|---|
| 63 | ----- |
|---|
| 64 | 783s has no in1 so that in[2-6] are compatible with the 781d/782d. |
|---|
| 65 | |
|---|
| 66 | 783s pin is programmable for -5V or temp1; defaults to -5V, |
|---|
| 67 | no control in driver so temp1 doesn't work. |
|---|
| 68 | |
|---|
| 69 | 782d and 783s datasheets differ on which is pwm1 and which is pwm2. |
|---|
| 70 | We chose to follow 782d. |
|---|
| 71 | |
|---|
| 72 | 782d and 783s pin is programmable for fan3 input or pwm2 output; |
|---|
| 73 | defaults to fan3 input. |
|---|
| 74 | no control in driver so pwm2 doesn't work. |
|---|
| 75 | |
|---|
| 76 | 782d has pwm1-2 for isa, pwm1-4 for i2c. (pwm3-4 share pins with |
|---|
| 77 | the isa pins) |
|---|
| 78 | |
|---|
| 79 | 781d allowable values for fan_div are 1,2,4,8. |
|---|
| 80 | 782d/783s allowable values for fan_div are 1,2,4,8,16,32,64,128. |
|---|
| 81 | |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | Data sheet updates: |
|---|
| 85 | ------------------ |
|---|
| 86 | - Mask off lower bit of all ID registers. |
|---|
| 87 | |
|---|
| 88 | - PWM clock registers: |
|---|
| 89 | |
|---|
| 90 | 000: master / 512 |
|---|
| 91 | 001: master / 1024 |
|---|
| 92 | 010: master / 2048 |
|---|
| 93 | 011: master / 4096 |
|---|
| 94 | 100: master / 8192 |
|---|
| 95 | |
|---|
| 96 | |
|---|
| 97 | Answers from Winbond tech support |
|---|
| 98 | --------------------------------- |
|---|
| 99 | > |
|---|
| 100 | > 1) In the W83781D data sheet section 7.2 last paragraph, it talks about |
|---|
| 101 | > reprogramming the R-T table if the Beta of the thermistor is not |
|---|
| 102 | > 3435K. The R-T table is described briefly in section 8.20. |
|---|
| 103 | > What formulas do I use to program a new R-T table for a given Beta? |
|---|
| 104 | > |
|---|
| 105 | We are sorry that the calculation for R-T table value is |
|---|
| 106 | confidential. If you have another Beta value of thermistor, we can help |
|---|
| 107 | to calculate the R-T table for you. But you should give us real R-T |
|---|
| 108 | Table which can be gotten by thermistor vendor. Therefore we will calculate |
|---|
| 109 | them and obtain 32-byte data, and you can fill the 32-byte data to the |
|---|
| 110 | register in Bank0.CR51 of W83781D. |
|---|
| 111 | |
|---|
| 112 | |
|---|
| 113 | > 2) In the W83782D data sheet, it mentions that pins 38, 39, and 40 are |
|---|
| 114 | > programmable to be either thermistor or Pentium II diode inputs. |
|---|
| 115 | > How do I program them for diode inputs? I can't find any register |
|---|
| 116 | > to program these to be diode inputs. |
|---|
| 117 | --> You may program Bank0 CR[5Dh] and CR[59h] registers. |
|---|
| 118 | |
|---|
| 119 | CR[5Dh] bit 1(VTIN1) bit 2(VTIN2) bit 3(VTIN3) |
|---|
| 120 | |
|---|
| 121 | thermistor 0 0 0 |
|---|
| 122 | diode 1 1 1 |
|---|
| 123 | |
|---|
| 124 | |
|---|
| 125 | CR[59h] bit 4(VTIN1) bit 2(VTIN2) bit 3(VTIN3) |
|---|
| 126 | |
|---|
| 127 | PII thermal diode 1 1 1 |
|---|
| 128 | 2N3904 diode 0 0 0 |
|---|
| 129 | |
|---|
| 130 | |
|---|
| 131 | Author/Maintainer |
|---|
| 132 | ----------------- |
|---|
| 133 | Original 781D support: Frodo and Phil (lm78@stimpy.netroedge.com) |
|---|
| 134 | 782D/783S support added by: Mark D. Studebaker (mds@eng.paradyne.com) |
|---|
| 135 | Send requests to the lm78@stimpy.netroedge.com mailing list. |
|---|