Kernel driver smsc47m192
========================

Supported chips:
  * SMSC LPC47M192, LPC47M15x, LPC47M292 and LPC47M997
    Prefix: 'smsc47m192'
    Addresses scanned: I2C 0x2c - 0x2d
    Datasheet: The datasheet for LPC47M192 is publicly available from
               http://www.smsc.com/
               The LPC47M15x, LPC47M292 and LPC47M997 are compatible for
               hardware monitoring.

Author: Hartmut Rick <linux@rick.claranet.de>
        Special thanks to Jean Delvare for careful checking
        of the code and many helpful comments and suggestions.


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

This driver implements support for the hardware sensor capabilities
of the SMSC LPC47M192 and compatible Super-I/O chips.

These chips support 3 temperature channels and 8 voltage inputs
as well as CPU voltage VID input.

They do also have fan monitoring and control capabilities, but the
these features are accessed via ISA bus and are not supported by this
driver. Use the 'smsc47m1' driver for fan monitoring and control.

Voltages and temperatures are measured by an 8-bit ADC, the resolution
of the temperatures is 1 bit per degree C.
Voltages are scaled such that the nominal voltage corresponds to
192 counts, i.e. 3/4 of the full range. Thus the available range for
each voltage channel is 0V ... 255/192*(nominal voltage), the resolution
is 1 bit per (nominal voltage)/192.
Both voltage and temperature values are scaled by 1000, the sys files
show voltages in mV and temperatures in units of 0.001 degC.

The +12V analog voltage input channel (in4_input) is multiplexed with
bit 4 of the encoded CPU voltage. This means that you either get
a +12V voltage measurement or a 5 bit CPU VID, but not both.
The default setting is to use the pin as 12V input, and use only 4 bit VID.
This driver assumes that the information in the configuration register
is correct, i.e. that the BIOS has updated the configuration if
the motherboard has this input wired to VID4.

The temperature and voltage readings are updated once every 1.5 seconds.
Reading them more often repeats the same values.


sysfs interface
---------------

in0_input	- +2.5V voltage input
in1_input	- CPU voltage input (nominal 2.25V)
in2_input	- +3.3V voltage input
in3_input	- +5V voltage input
in4_input	- +12V voltage input (may be missing if used as VID4)
in5_input	- Vcc voltage input (nominal 3.3V)
		  This is the supply voltage of the sensor chip itself.
in6_input	- +1.5V voltage input
in7_input	- +1.8V voltage input

in[0-7]_min,
in[0-7]_max	- lower and upper alarm thresholds for in[0-7]_input reading

		  All voltages are read and written in mV.

in[0-7]_alarm	- alarm flags for voltage inputs
		  These files read '1' in case of alarm, '0' otherwise.

temp1_input	- chip temperature measured by on-chip diode
temp[2-3]_input	- temperature measured by external diodes (one of these would
		  typically be wired to the diode inside the CPU)

temp[1-3]_min,
temp[1-3]_max	- lower and upper alarm thresholds for temperatures

temp[1-3]_offset - temperature offset registers
		  The chip adds the offsets stored in these registers to
		  the corresponding temperature readings.
		  Note that temp1 and temp2 offsets share the same register,
		  they cannot both be different from zero at the same time.
		  Writing a non-zero number to one of them will reset the other
		  offset to zero.

		  All temperatures and offsets are read and written in
		  units of 0.001 degC.

temp[1-3]_alarm - alarm flags for temperature inputs, '1' in case of alarm,
		  '0' otherwise.
temp[2-3]_input_fault - diode fault flags for temperature inputs 2 and 3.
		  A fault is detected if the two pins for the corresponding
		  sensor are open or shorted, or any of the two is shorted
		  to ground or Vcc. '1' indicates a diode fault.

cpu0_vid	- CPU voltage as received from the CPU

vrm		- CPU VID standard used for decoding CPU voltage

		  The *_min, *_max, *_offset and vrm files can be read and
		  written, all others are read-only.
