Kernel driver `vt1211.o'
=========================

Status: Beta.

Supported chips:
  * Via VT1211 Super I/O Controller
    Addresses scanned: none, address read from Super I/O config space

Authors: Mark D. Studebaker <mdsxyz123@yahoo.com>


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

force_addr=0xaddr	Set the I/O base address. Useful for boards
			that don't set the address in the BIOS.
			Don't use this unless the driver complains that the
			base address is not set.
			Example: 'modprobe vt1211 force_addr=0x680'


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

The Via VT1211 Super I/O chip
contains voltage/temperature monitoring and
PWM control circuitry for two fans.

We define the sensors as follows. Somewhat convoluted to minimize
changes from via686a. Temp1 and in6 are unimplemented in the vt1211
chip but are included in the driver.

	Sensor		Voltage Mode	Temp Mode	uch_config bit
	--------	------------	---------	--------------	
	Reading 1			temp3
	Reading 3			temp1
	UCH1/Reading2	in0		temp2		0x04 (4)
	UCH2		in1		temp4		0x08 (8)
	UCH3		in2		temp5		0x10 (16)
	UCH4		in3		temp6		0x20 (32)
	UCH5		in4		temp7		0x40 (64)
	3.3V		in5
	-12V		in6

As noted above, 5 of the sensors are "universal channels" and can
be set for either voltage or temperature.
Set the uch_config bit (in /proc) to 0 for voltage and 1 for temperature.
Voltages will read 0 if set for temperature.
Temperatures will read a really low number if set for voltage.

FAN rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. FAN 
readings can be divided by a programmable divider (1, 2, 4 or 8) to give
the readings more range or accuracy. This is important because some FANs
report only one 'tick' each rotation, while others report two - making
all readings twice as high. Not all RPM values can accurately be represented,
so some rounding is done. With a divider of 2, the lowest representable
value is around 2600 RPM.

PWM values are from 0 to 255. The first value in the /proc entry is
the pwm value; the second is the enable (0 or 1).

If an alarm triggers, it will remain triggered until the hardware register
is read at least once. This means that the cause for the alarm may 
already have disappeared!  Note that in the current implementation, all
hardware registers are read whenever any data is read (unless it is less
than 1.5 seconds since the last update). This means that you can easily
miss once-only alarms.


**********************
The lm_sensors project gratefully acknowledges the support of
Via in the development of this driver.
