Kernel driver vt1211
====================

Supported chips:
  * VIA VT1211
    Prefix: 'vt1211'
    Addresses scanned: none, address read from Super-I/O config space
    Datasheet: Provided by VIA upon request and under NDA

Authors: Juerg Haefliger <juergh@gmail.com>

This driver is based on the driver for kernel 2.4 by Mark D. Studebaker and
its port to kernel 2.6 by Lars Ekman.

Thanks to Joseph Chan and Fiona Gatt from VIA for providing documentation and
technical support.


Module Parameters
-----------------

* uch_config: int	Override the BIOS default universal channel (UCH)
			configuration for channels 1-5.
			Legal values are in the range of 0-31. Bit 0 maps to
			UCH1, bit 1 maps to UCH2 and so on. Setting a bit to 1
			enables the thermal input of that particular UCH and
			setting a bit to 0 enables the voltage input.

* int_mode: int		Override the BIOS default temperature interrupt mode.
			The only possible value is 0 which forces interrupt
			mode 0. In this mode, any pending interrupt is cleared
			when the status register is read but is regenerated as
			long as the temperature stays above the hysteresis
			limit.

Be aware that overriding BIOS defaults might cause some unwanted side effects!


Description
-----------

The VIA VT1211 Super-I/O chip includes complete hardware monitoring
capabilities. It monitors 2 dedicated temperature sensor inputs (temp1 and
temp2), 1 dedicated voltage (in5) and 2 fans. Additionally, the chip
implements 5 universal input channels (UCH1-5) that can be individually
programmed to either monitor a voltage or a temperature.

This chip also provides manual and automatic control of fan speeds (according
to the datasheet). The driver only supports automatic control since the manual
mode doesn't seem to work as advertised in the datasheet. In fact I couldn't
get manual mode to work at all! Be aware that automatic mode hasn't been
tested very well (due to the fact that my EPIA M10000 doesn't have the fans
connected to the PWM outputs of the VT1211 :-().

The following table shows the relationship between the vt1211 inputs and the
sysfs nodes.

Sensor          Voltage Mode   Temp Mode   Default Use (from the datasheet)
------          ------------   ---------   --------------------------------
Reading 1                      temp1       Intel thermal diode
Reading 3                      temp2       Internal thermal diode
UCH1/Reading2   in0            temp3       NTC type thermistor
UCH2            in1            temp4       +2.5V
UCH3            in2            temp5       VccP (processor core)
UCH4            in3            temp6       +5V
UCH5            in4            temp7       +12V
+3.3V           in5                        Internal VCC (+3.3V)


Voltage Monitoring
------------------

Voltages are sampled by an 8-bit ADC with a LSB of ~10mV. The supported input
range is thus from 0 to 2.60V. Voltage values outside of this range need
external scaling resistors. This external scaling needs to be compensated for
via compute lines in sensors.conf, like:

compute inx @*(1+R1/R2), @/(1+R1/R2)

The board level scaling resistors according to VIA's recommendation are as
follows. And this is of course totally dependent on the actual board
implementation :-) You will have to find documentation for your own
motherboard and edit sensors.conf accordingly.

                                      Expected
Voltage       R1     R2     Divider   Raw Value
-----------------------------------------------
+2.5V         2K     10K    1.2       2083 mV
VccP          ---    ---    1.0       1400 mV (1)
+5V           14K    10K    2.4       2083 mV
+12V          47K    10K    5.7       2105 mV
+3.3V (int)   2K     3.4K   1.588     3300 mV (2)
+3.3V (ext)   6.8K   10K    1.68      1964 mV

(1) Depending on the CPU (1.4V is for a VIA C3 Nehemiah).
(2) R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver
    performs the scaling and returns the properly scaled voltage value.

Each measured voltage has an associated low and high limit which triggers an
alarm when crossed.


Temperature Monitoring
----------------------

Temperatures are reported in millidegree Celsius. Each measured temperature
has a high limit which triggers an alarm if crossed. There is an associated
hysteresis value with each temperature below which the temperature has to drop
before the alarm is cleared (this is only true for interrupt mode 0). The
interrupt mode can be forced to 0 in case the BIOS doesn't do it
automatically. See the 'Module Parameters' section for details.

All temperature channels except temp2 are external. Temp2 is the VT1211
internal thermal diode and the driver does all the scaling for temp2 and
returns the temperature in millidegree Celsius. For the external channels
temp1 and temp3-temp7, scaling depends on the board implementation and needs
to be performed in userspace via sensors.conf.

Temp1 is an Intel-type thermal diode which requires the following formula to
convert between sysfs readings and real temperatures:

compute temp1 (@-Offset)/Gain, (@*Gain)+Offset

According to the VIA VT1211 BIOS porting guide, the following gain and offset
values should be used:

Diode Type      Offset   Gain
----------      ------   ----
Intel CPU       88.638   0.9528
                65.000   0.9686   *)
VIA C3 Ezra     83.869   0.9528
VIA C3 Ezra-T   73.869   0.9528

*) This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't
know where it comes from or how it was derived, it's just listed here for
completeness.

Temp3-temp7 support NTC thermistors. For these channels, the driver returns
the voltages as seen at the individual pins of UCH1-UCH5. The voltage at the
pin (Vpin) is formed by a voltage divider made of the thermistor (Rth) and a
scaling resistor (Rs):

Vpin = 2200 * Rth / (Rs + Rth)   (2200 is the ADC max limit of 2200 mV)

The equation for the thermistor is as follows (google it if you want to know
more about it):

Rth = Ro * exp(B * (1 / T - 1 / To))   (To is 298.15K (25C) and Ro is the
                                        nominal resistance at 25C)

Mingling the above two equations and assuming Rs = Ro and B = 3435 yields the
following formula for sensors.conf:

compute tempx 1 / (1 / 298.15 - (` (2200 / @ - 1)) / 3435) - 273.15,
              2200 / (1 + (^ (3435 / 298.15 - 3435 / (273.15 + @))))


Fan Speed Control
-----------------

The VT1211 provides 2 programmable PWM outputs to control the speeds of 2
fans. Writing a 2 to any of the two pwm[1-2]_enable sysfs nodes will put the
PWM controller in automatic mode. There is only a single controller that
controls both PWM outputs but each PWM output can be individually enabled and
disabled.

Each PWM has 4 associated distinct output duty-cycles: full, high, low and
off. Full and off are internally hard-wired to 255 (100%) and 0 (0%),
respectively. High and low can be programmed via
pwm[1-2]_auto_point[2-3]_pwm. Each PWM output can be associated with a
different thermal input but - and here's the weird part - only one set of
thermal thresholds exist that controls both PWMs output duty-cycles. The
thermal thresholds are accessible via pwm[1-2]_auto_point[1-4]_temp. Note
that even though there are 2 sets of 4 auto points each, they map to the same
registers in the VT1211 and programming one set is sufficient (actually only
the first set pwm1_auto_point[1-4]_temp is writable, the second set is
read-only).

PWM Auto Point             PWM Output Duty-Cycle
------------------------------------------------
pwm[1-2]_auto_point4_pwm   full speed duty-cycle (hard-wired to 255)
pwm[1-2]_auto_point3_pwm   high speed duty-cycle
pwm[1-2]_auto_point2_pwm   low speed duty-cycle
pwm[1-2]_auto_point1_pwm   off duty-cycle (hard-wired to 0)

Temp Auto Point             Thermal Threshold
---------------------------------------------
pwm[1-2]_auto_point4_temp   full speed temp
pwm[1-2]_auto_point3_temp   high speed temp
pwm[1-2]_auto_point2_temp   low speed temp
pwm[1-2]_auto_point1_temp   off temp

Long story short, the controller implements the following algorithm to set the
PWM output duty-cycle based on the input temperature:

Thermal Threshold             Output Duty-Cycle
                    (Rising Temp)           (Falling Temp)
----------------------------------------------------------
                    full speed duty-cycle   full speed duty-cycle
full speed temp
                    high speed duty-cycle   full speed duty-cycle
high speed temp
                    low speed duty-cycle    high speed duty-cycle
low speed temp
                    off duty-cycle          low speed duty-cycle
off temp
