The new SMSC LPC47M292 Super-I/O chip includes a hardware monitoring block which is compatible with those of the LPC47M192. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hartmut Rick <linux@rick.claranet.de>
		
			
				
	
	
		
			103 lines
		
	
	
	
		
			3.9 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
	
		
			3.9 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
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.
 |