Kernel driver `vt8231.o'
========================

Status: Beta

Supported chips:
  * Via VT8231 South Bridge
    Prefix `vt8231'
	Addresses scanned: none, address read from PCI space

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

License: GPL


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

* force_addr: int
  Initialize the base address of the sensors
* force: short array (min = 1, max = 48)
  List of adapter,address pairs to boldly assume to be present
* force_vt8231: short array (min = 1, max = 48)
  List of adapter,address pairs which are unquestionably assumed to contain
  a `vt8231' chip
* probe: short array (min = 1, max = 48)
  List of adapter,address pairs to scan additionally
* probe_range: short array (min = 1, max = 48)
  List of adapter,start-addr,end-addr triples to scan additionally
* ignore: short array (min = 1, max = 48)
  List of adapter,address pairs not to scan
* ignore_range: short array (min = 1, max = 48)
  List of adapter,start-addr,end-addr triples not to scan


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

The Via VT8231 South Bridge 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 vt8231
chip but are included in the driver.

    Sensor          Voltage Mode    Temp Mode       uch_config bit
    ------          ------------    ---------       --------------    
    Reading 1                       temp3
    Reading 3                       temp1
    UCH1/Reading 2  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.


Chip Features
-------------

Chip 'vt8231'

LABEL                 LABEL CLASS           COMPUTE CLASS          MODE  MAGN
in0                   -                     -                       R-     2
in1                   -                     -                       R-     2
in2                   -                     -                       R-     2
in3                   -                     -                       R-     2
in4                   -                     -                       R-     2
in5                   -                     -                       R-     2
in6                   -                     -                       R-     2
in0_min               in0                   in0                     RW     2
in1_min               in1                   in1                     RW     2
in2_min               in2                   in2                     RW     2
in3_min               in3                   in3                     RW     2
in4_min               in4                   in4                     RW     2
in5_min               in5                   in5                     RW     2
in6_min               in6                   in6                     RW     2
in0_max               in0                   in0                     RW     2
in1_max               in1                   in1                     RW     2
in2_max               in2                   in2                     RW     2
in3_max               in3                   in3                     RW     2
in4_max               in4                   in4                     RW     2
in5_max               in5                   in5                     RW     2
in6_max               in6                   in6                     RW     2
fan1                  -                     -                       R-     0
fan2                  -                     -                       R-     0
fan1_min              fan1                  fan1                    RW     0
fan2_min              fan2                  fan2                    RW     0
temp1                 -                     -                       R-     1
temp1_hyst            temp1                 temp1                   RW     1
temp1_over            temp1                 temp1                   RW     1
temp2                 -                     -                       R-     1
temp2_hyst            temp2                 temp2                   RW     1
temp2_over            temp2                 temp2                   RW     1
temp3                 -                     -                       R-     1
temp3_hyst            temp3                 temp3                   RW     1
temp3_over            temp3                 temp3                   RW     1
temp4                 -                     -                       R-     1
temp4_hyst            temp4                 temp4                   RW     1
temp4_over            temp4                 temp4                   RW     1
temp5                 -                     -                       R-     1
temp5_hyst            temp5                 temp5                   RW     1
temp5_over            temp5                 temp5                   RW     1
temp6                 -                     -                       R-     1
temp6_hyst            temp6                 temp6                   RW     1
temp6_over            temp6                 temp6                   RW     1
temp7                 -                     -                       R-     1
temp7_hyst            temp7                 temp7                   RW     1
temp7_over            temp7                 temp7                   RW     1
fan1_div              fan1                  -                       RW     0
fan2_div              fan2                  -                       RW     0
alarms                -                     -                       R-     0
vid                   -                     -                       R-     3
vrm                   -                     -                       RW     1
config                -                     -                       R-     0

LABEL                 FEATURE SYMBOL                              SYSCTL FILE:N
in0                   SENSORS_VT8231_IN0                                  in0:3
in1                   SENSORS_VT8231_IN1                                  in1:3
in2                   SENSORS_VT8231_IN2                                  in2:3
in3                   SENSORS_VT8231_IN3                                  in3:3
in4                   SENSORS_VT8231_IN4                                  in4:3
in5                   SENSORS_VT8231_IN5                                  in5:3
in6                   SENSORS_VT8231_IN6                                  in6:3
in0_min               SENSORS_VT8231_IN0_MIN                              in0:1
in1_min               SENSORS_VT8231_IN1_MIN                              in1:1
in2_min               SENSORS_VT8231_IN2_MIN                              in2:1
in3_min               SENSORS_VT8231_IN3_MIN                              in3:1
in4_min               SENSORS_VT8231_IN4_MIN                              in4:1
in5_min               SENSORS_VT8231_IN5_MIN                              in5:1
in6_min               SENSORS_VT8231_IN6_MIN                              in6:1
in0_max               SENSORS_VT8231_IN0_MAX                              in0:2
in1_max               SENSORS_VT8231_IN1_MAX                              in1:2
in2_max               SENSORS_VT8231_IN2_MAX                              in2:2
in3_max               SENSORS_VT8231_IN3_MAX                              in3:2
in4_max               SENSORS_VT8231_IN4_MAX                              in4:2
in5_max               SENSORS_VT8231_IN5_MAX                              in5:2
in6_max               SENSORS_VT8231_IN6_MAX                              in6:2
fan1                  SENSORS_VT8231_FAN1                                fan1:2
fan2                  SENSORS_VT8231_FAN2                                fan2:2
fan1_min              SENSORS_VT8231_FAN1_MIN                            fan1:1
fan2_min              SENSORS_VT8231_FAN2_MIN                            fan2:1
temp1                 SENSORS_VT8231_TEMP                               temp1:3
temp1_hyst            SENSORS_VT8231_TEMP_HYST                          temp1:2
temp1_over            SENSORS_VT8231_TEMP_OVER                          temp1:1
temp2                 SENSORS_VT8231_TEMP2                              temp2:3
temp2_hyst            SENSORS_VT8231_TEMP2_HYST                         temp2:2
temp2_over            SENSORS_VT8231_TEMP2_OVER                         temp2:1
temp3                 SENSORS_VT8231_TEMP3                              temp3:3
temp3_hyst            SENSORS_VT8231_TEMP3_HYST                         temp3:2
temp3_over            SENSORS_VT8231_TEMP3_OVER                         temp3:1
temp4                 SENSORS_VT8231_TEMP4                              temp4:3
temp4_hyst            SENSORS_VT8231_TEMP4_HYST                         temp4:2
temp4_over            SENSORS_VT8231_TEMP4_OVER                         temp4:1
temp5                 SENSORS_VT8231_TEMP5                              temp5:3
temp5_hyst            SENSORS_VT8231_TEMP5_HYST                         temp5:2
temp5_over            SENSORS_VT8231_TEMP5_OVER                         temp5:1
temp6                 SENSORS_VT8231_TEMP6                              temp6:3
temp6_hyst            SENSORS_VT8231_TEMP6_HYST                         temp6:2
temp6_over            SENSORS_VT8231_TEMP6_OVER                         temp6:1
temp7                 SENSORS_VT8231_TEMP7                              temp7:3
temp7_hyst            SENSORS_VT8231_TEMP7_HYST                         temp7:2
temp7_over            SENSORS_VT8231_TEMP7_OVER                         temp7:1
fan1_div              SENSORS_VT8231_FAN1_DIV                         fan_div:1
fan2_div              SENSORS_VT8231_FAN2_DIV                         fan_div:2
alarms                SENSORS_VT8231_ALARMS                            alarms:1
vid                   SENSORS_VT8231_VID                                  vid:1
vrm                   SENSORS_VT8231_VRM                                  vrm:1
config                SENSORS_VT8231_UCH                           uch_config:1


Notes
-----

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