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

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

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/hwmon/vt1211.rst (Version linux-6.12-rc7) and /Documentation/hwmon/vt1211.rst (Version linux-5.4.285)


  1 Kernel driver vt1211                                1 Kernel driver vt1211
  2 ====================                                2 ====================
  3                                                     3 
  4 Supported chips:                                    4 Supported chips:
  5                                                     5 
  6   * VIA VT1211                                      6   * VIA VT1211
  7                                                     7 
  8     Prefix: 'vt1211'                                8     Prefix: 'vt1211'
  9                                                     9 
 10     Addresses scanned: none, address read from     10     Addresses scanned: none, address read from Super-I/O config space
 11                                                    11 
 12     Datasheet: Provided by VIA upon request an     12     Datasheet: Provided by VIA upon request and under NDA
 13                                                    13 
 14 Authors: Juerg Haefliger <juergh@gmail.com>         14 Authors: Juerg Haefliger <juergh@gmail.com>
 15                                                    15 
 16 This driver is based on the driver for kernel      16 This driver is based on the driver for kernel 2.4 by Mark D. Studebaker and
 17 its port to kernel 2.6 by Lars Ekman.              17 its port to kernel 2.6 by Lars Ekman.
 18                                                    18 
 19 Thanks to Joseph Chan and Fiona Gatt from VIA      19 Thanks to Joseph Chan and Fiona Gatt from VIA for providing documentation and
 20 technical support.                                 20 technical support.
 21                                                    21 
 22                                                    22 
 23 Module Parameters                                  23 Module Parameters
 24 -----------------                                  24 -----------------
 25                                                    25 
 26                                                    26 
 27 * uch_config: int                                  27 * uch_config: int
 28                         Override the BIOS defa     28                         Override the BIOS default universal channel (UCH)
 29                         configuration for chan     29                         configuration for channels 1-5.
 30                         Legal values are in th     30                         Legal values are in the range of 0-31. Bit 0 maps to
 31                         UCH1, bit 1 maps to UC     31                         UCH1, bit 1 maps to UCH2 and so on. Setting a bit to 1
 32                         enables the thermal in     32                         enables the thermal input of that particular UCH and
 33                         setting a bit to 0 ena     33                         setting a bit to 0 enables the voltage input.
 34                                                    34 
 35 * int_mode: int                                    35 * int_mode: int
 36                         Override the BIOS defa     36                         Override the BIOS default temperature interrupt mode.
 37                         The only possible valu     37                         The only possible value is 0 which forces interrupt
 38                         mode 0. In this mode,      38                         mode 0. In this mode, any pending interrupt is cleared
 39                         when the status regist     39                         when the status register is read but is regenerated as
 40                         long as the temperatur     40                         long as the temperature stays above the hysteresis
 41                         limit.                     41                         limit.
 42                                                    42 
 43 Be aware that overriding BIOS defaults might c     43 Be aware that overriding BIOS defaults might cause some unwanted side effects!
 44                                                    44 
 45                                                    45 
 46 Description                                        46 Description
 47 -----------                                        47 -----------
 48                                                    48 
 49 The VIA VT1211 Super-I/O chip includes complet     49 The VIA VT1211 Super-I/O chip includes complete hardware monitoring
 50 capabilities. It monitors 2 dedicated temperat     50 capabilities. It monitors 2 dedicated temperature sensor inputs (temp1 and
 51 temp2), 1 dedicated voltage (in5) and 2 fans.      51 temp2), 1 dedicated voltage (in5) and 2 fans. Additionally, the chip
 52 implements 5 universal input channels (UCH1-5)     52 implements 5 universal input channels (UCH1-5) that can be individually
 53 programmed to either monitor a voltage or a te     53 programmed to either monitor a voltage or a temperature.
 54                                                    54 
 55 This chip also provides manual and automatic c     55 This chip also provides manual and automatic control of fan speeds (according
 56 to the datasheet). The driver only supports au     56 to the datasheet). The driver only supports automatic control since the manual
 57 mode doesn't seem to work as advertised in the     57 mode doesn't seem to work as advertised in the datasheet. In fact I couldn't
 58 get manual mode to work at all! Be aware that      58 get manual mode to work at all! Be aware that automatic mode hasn't been
 59 tested very well (due to the fact that my EPIA     59 tested very well (due to the fact that my EPIA M10000 doesn't have the fans
 60 connected to the PWM outputs of the VT1211 :-(     60 connected to the PWM outputs of the VT1211 :-().
 61                                                    61 
 62 The following table shows the relationship bet     62 The following table shows the relationship between the vt1211 inputs and the
 63 sysfs nodes.                                       63 sysfs nodes.
 64                                                    64 
 65 =============== ============== =========== ===     65 =============== ============== =========== ================================
 66 Sensor          Voltage Mode   Temp Mode   Def     66 Sensor          Voltage Mode   Temp Mode   Default Use (from the datasheet)
 67 =============== ============== =========== ===     67 =============== ============== =========== ================================
 68 Reading 1                      temp1       Int     68 Reading 1                      temp1       Intel thermal diode
 69 Reading 3                      temp2       Int     69 Reading 3                      temp2       Internal thermal diode
 70 UCH1/Reading2   in0            temp3       NTC     70 UCH1/Reading2   in0            temp3       NTC type thermistor
 71 UCH2            in1            temp4       +2.     71 UCH2            in1            temp4       +2.5V
 72 UCH3            in2            temp5       Vcc     72 UCH3            in2            temp5       VccP (processor core)
 73 UCH4            in3            temp6       +5V     73 UCH4            in3            temp6       +5V
 74 UCH5            in4            temp7       +12     74 UCH5            in4            temp7       +12V
 75 +3.3V           in5                        Int     75 +3.3V           in5                        Internal VCC (+3.3V)
 76 =============== ============== =========== ===     76 =============== ============== =========== ================================
 77                                                    77 
 78                                                    78 
 79 Voltage Monitoring                                 79 Voltage Monitoring
 80 ------------------                                 80 ------------------
 81                                                    81 
 82 Voltages are sampled by an 8-bit ADC with a LS     82 Voltages are sampled by an 8-bit ADC with a LSB of ~10mV. The supported input
 83 range is thus from 0 to 2.60V. Voltage values      83 range is thus from 0 to 2.60V. Voltage values outside of this range need
 84 external scaling resistors. This external scal     84 external scaling resistors. This external scaling needs to be compensated for
 85 via compute lines in sensors.conf, like:           85 via compute lines in sensors.conf, like:
 86                                                    86 
 87 compute inx @*(1+R1/R2), @/(1+R1/R2)               87 compute inx @*(1+R1/R2), @/(1+R1/R2)
 88                                                    88 
 89 The board level scaling resistors according to     89 The board level scaling resistors according to VIA's recommendation are as
 90 follows. And this is of course totally depende     90 follows. And this is of course totally dependent on the actual board
 91 implementation :-) You will have to find docum     91 implementation :-) You will have to find documentation for your own
 92 motherboard and edit sensors.conf accordingly.     92 motherboard and edit sensors.conf accordingly.
 93                                                    93 
 94 ============= ====== ====== ========= ========     94 ============= ====== ====== ========= ============
 95                                       Expected     95                                       Expected
 96 Voltage       R1     R2     Divider   Raw Valu     96 Voltage       R1     R2     Divider   Raw Value
 97 ============= ====== ====== ========= ========     97 ============= ====== ====== ========= ============
 98 +2.5V         2K     10K    1.2       2083 mV      98 +2.5V         2K     10K    1.2       2083 mV
 99 VccP          ---    ---    1.0       1400 mV      99 VccP          ---    ---    1.0       1400 mV [1]_
100 +5V           14K    10K    2.4       2083 mV     100 +5V           14K    10K    2.4       2083 mV
101 +12V          47K    10K    5.7       2105 mV     101 +12V          47K    10K    5.7       2105 mV
102 +3.3V (int)   2K     3.4K   1.588     3300 mV     102 +3.3V (int)   2K     3.4K   1.588     3300 mV [2]_
103 +3.3V (ext)   6.8K   10K    1.68      1964 mV     103 +3.3V (ext)   6.8K   10K    1.68      1964 mV
104 ============= ====== ====== ========= ========    104 ============= ====== ====== ========= ============
105                                                   105 
106 .. [1] Depending on the CPU (1.4V is for a VIA    106 .. [1] Depending on the CPU (1.4V is for a VIA C3 Nehemiah).
107                                                   107 
108 .. [2] R1 and R2 for 3.3V (int) are internal t    108 .. [2] R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver
109        performs the scaling and returns the pr    109        performs the scaling and returns the properly scaled voltage value.
110                                                   110 
111 Each measured voltage has an associated low an    111 Each measured voltage has an associated low and high limit which triggers an
112 alarm when crossed.                               112 alarm when crossed.
113                                                   113 
114                                                   114 
115 Temperature Monitoring                            115 Temperature Monitoring
116 ----------------------                            116 ----------------------
117                                                   117 
118 Temperatures are reported in millidegree Celsi    118 Temperatures are reported in millidegree Celsius. Each measured temperature
119 has a high limit which triggers an alarm if cr    119 has a high limit which triggers an alarm if crossed. There is an associated
120 hysteresis value with each temperature below w    120 hysteresis value with each temperature below which the temperature has to drop
121 before the alarm is cleared (this is only true    121 before the alarm is cleared (this is only true for interrupt mode 0). The
122 interrupt mode can be forced to 0 in case the     122 interrupt mode can be forced to 0 in case the BIOS doesn't do it
123 automatically. See the 'Module Parameters' sec    123 automatically. See the 'Module Parameters' section for details.
124                                                   124 
125 All temperature channels except temp2 are exte    125 All temperature channels except temp2 are external. Temp2 is the VT1211
126 internal thermal diode and the driver does all    126 internal thermal diode and the driver does all the scaling for temp2 and
127 returns the temperature in millidegree Celsius    127 returns the temperature in millidegree Celsius. For the external channels
128 temp1 and temp3-temp7, scaling depends on the     128 temp1 and temp3-temp7, scaling depends on the board implementation and needs
129 to be performed in userspace via sensors.conf.    129 to be performed in userspace via sensors.conf.
130                                                   130 
131 Temp1 is an Intel-type thermal diode which req    131 Temp1 is an Intel-type thermal diode which requires the following formula to
132 convert between sysfs readings and real temper    132 convert between sysfs readings and real temperatures:
133                                                   133 
134 compute temp1 (@-Offset)/Gain, (@*Gain)+Offset    134 compute temp1 (@-Offset)/Gain, (@*Gain)+Offset
135                                                   135 
136 According to the VIA VT1211 BIOS porting guide    136 According to the VIA VT1211 BIOS porting guide, the following gain and offset
137 values should be used:                            137 values should be used:
138                                                   138 
139 =============== ======== ===========              139 =============== ======== ===========
140 Diode Type      Offset   Gain                     140 Diode Type      Offset   Gain
141 =============== ======== ===========              141 =============== ======== ===========
142 Intel CPU       88.638   0.9528                   142 Intel CPU       88.638   0.9528
143                 65.000   0.9686 [3]_              143                 65.000   0.9686 [3]_
144 VIA C3 Ezra     83.869   0.9528                   144 VIA C3 Ezra     83.869   0.9528
145 VIA C3 Ezra-T   73.869   0.9528                   145 VIA C3 Ezra-T   73.869   0.9528
146 =============== ======== ===========              146 =============== ======== ===========
147                                                   147 
148 .. [3] This is the formula from the lm_sensors    148 .. [3] This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't
149        know where it comes from or how it was     149        know where it comes from or how it was derived, it's just listed here for
150        completeness.                              150        completeness.
151                                                   151 
152 Temp3-temp7 support NTC thermistors. For these    152 Temp3-temp7 support NTC thermistors. For these channels, the driver returns
153 the voltages as seen at the individual pins of    153 the voltages as seen at the individual pins of UCH1-UCH5. The voltage at the
154 pin (Vpin) is formed by a voltage divider made    154 pin (Vpin) is formed by a voltage divider made of the thermistor (Rth) and a
155 scaling resistor (Rs)::                           155 scaling resistor (Rs)::
156                                                   156 
157   Vpin = 2200 * Rth / (Rs + Rth)   (2200 is th    157   Vpin = 2200 * Rth / (Rs + Rth)   (2200 is the ADC max limit of 2200 mV)
158                                                   158 
159 The equation for the thermistor is as follows     159 The equation for the thermistor is as follows (google it if you want to know
160 more about it)::                                  160 more about it)::
161                                                   161 
162   Rth = Ro * exp(B * (1 / T - 1 / To))   (To i    162   Rth = Ro * exp(B * (1 / T - 1 / To))   (To is 298.15K (25C) and Ro is the
163                                           nomi    163                                           nominal resistance at 25C)
164                                                   164 
165 Mingling the above two equations and assuming     165 Mingling the above two equations and assuming Rs = Ro and B = 3435 yields the
166 following formula for sensors.conf::              166 following formula for sensors.conf::
167                                                   167 
168   compute tempx 1 / (1 / 298.15 - (` (2200 / @    168   compute tempx 1 / (1 / 298.15 - (` (2200 / @ - 1)) / 3435) - 273.15,
169                 2200 / (1 + (^ (3435 / 298.15     169                 2200 / (1 + (^ (3435 / 298.15 - 3435 / (273.15 + @))))
170                                                   170 
171                                                   171 
172 Fan Speed Control                                 172 Fan Speed Control
173 -----------------                                 173 -----------------
174                                                   174 
175 The VT1211 provides 2 programmable PWM outputs    175 The VT1211 provides 2 programmable PWM outputs to control the speeds of 2
176 fans. Writing a 2 to any of the two pwm[1-2]_e    176 fans. Writing a 2 to any of the two pwm[1-2]_enable sysfs nodes will put the
177 PWM controller in automatic mode. There is onl    177 PWM controller in automatic mode. There is only a single controller that
178 controls both PWM outputs but each PWM output     178 controls both PWM outputs but each PWM output can be individually enabled and
179 disabled.                                         179 disabled.
180                                                   180 
181 Each PWM has 4 associated distinct output duty    181 Each PWM has 4 associated distinct output duty-cycles: full, high, low and
182 off. Full and off are internally hard-wired to    182 off. Full and off are internally hard-wired to 255 (100%) and 0 (0%),
183 respectively. High and low can be programmed v    183 respectively. High and low can be programmed via
184 pwm[1-2]_auto_point[2-3]_pwm. Each PWM output     184 pwm[1-2]_auto_point[2-3]_pwm. Each PWM output can be associated with a
185 different thermal input but - and here's the w    185 different thermal input but - and here's the weird part - only one set of
186 thermal thresholds exist that controls both PW    186 thermal thresholds exist that controls both PWMs output duty-cycles. The
187 thermal thresholds are accessible via pwm[1-2]    187 thermal thresholds are accessible via pwm[1-2]_auto_point[1-4]_temp. Note
188 that even though there are 2 sets of 4 auto po    188 that even though there are 2 sets of 4 auto points each, they map to the same
189 registers in the VT1211 and programming one se    189 registers in the VT1211 and programming one set is sufficient (actually only
190 the first set pwm1_auto_point[1-4]_temp is wri    190 the first set pwm1_auto_point[1-4]_temp is writable, the second set is
191 read-only).                                       191 read-only).
192                                                   192 
193 ========================== ===================    193 ========================== =========================================
194 PWM Auto Point             PWM Output Duty-Cyc    194 PWM Auto Point             PWM Output Duty-Cycle
195 ========================== ===================    195 ========================== =========================================
196 pwm[1-2]_auto_point4_pwm   full speed duty-cyc    196 pwm[1-2]_auto_point4_pwm   full speed duty-cycle (hard-wired to 255)
197 pwm[1-2]_auto_point3_pwm   high speed duty-cyc    197 pwm[1-2]_auto_point3_pwm   high speed duty-cycle
198 pwm[1-2]_auto_point2_pwm   low speed duty-cycl    198 pwm[1-2]_auto_point2_pwm   low speed duty-cycle
199 pwm[1-2]_auto_point1_pwm   off duty-cycle (har    199 pwm[1-2]_auto_point1_pwm   off duty-cycle (hard-wired to 0)
200 ========================== ===================    200 ========================== =========================================
201                                                   201 
202 ==========================  =================     202 ==========================  =================
203 Temp Auto Point             Thermal Threshold     203 Temp Auto Point             Thermal Threshold
204 ==========================  =================     204 ==========================  =================
205 pwm[1-2]_auto_point4_temp   full speed temp       205 pwm[1-2]_auto_point4_temp   full speed temp
206 pwm[1-2]_auto_point3_temp   high speed temp       206 pwm[1-2]_auto_point3_temp   high speed temp
207 pwm[1-2]_auto_point2_temp   low speed temp        207 pwm[1-2]_auto_point2_temp   low speed temp
208 pwm[1-2]_auto_point1_temp   off temp              208 pwm[1-2]_auto_point1_temp   off temp
209 ==========================  =================     209 ==========================  =================
210                                                   210 
211 Long story short, the controller implements th    211 Long story short, the controller implements the following algorithm to set the
212 PWM output duty-cycle based on the input tempe    212 PWM output duty-cycle based on the input temperature:
213                                                   213 
214 =================== ======================= ==    214 =================== ======================= ========================
215 Thermal Threshold   Output Duty-Cycle       Ou    215 Thermal Threshold   Output Duty-Cycle       Output Duty-Cycle
216                     (Rising Temp)           (F    216                     (Rising Temp)           (Falling Temp)
217 =================== ======================= ==    217 =================== ======================= ========================
218 -                   full speed duty-cycle   fu    218 -                   full speed duty-cycle   full speed duty-cycle
219 full speed temp                                   219 full speed temp
220 -                   high speed duty-cycle   fu    220 -                   high speed duty-cycle   full speed duty-cycle
221 high speed temp                                   221 high speed temp
222 -                   low speed duty-cycle    hi    222 -                   low speed duty-cycle    high speed duty-cycle
223 low speed temp                                    223 low speed temp
224 -                   off duty-cycle          lo    224 -                   off duty-cycle          low speed duty-cycle
225 off temp                                          225 off temp
226 =================== ======================= ==    226 =================== ======================= ========================
                                                      

~ [ 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