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 checkingof the code and many helpful comments and suggestions.

Description

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

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

They do also have fan monitoring and control capabilities, but thethese features are accessed via ISA bus and are not supported by thisdriver. Use the ‘smsc47m1’ driver for fan monitoring and control.

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

The +12V analog voltage input channel (in4_input) is multiplexed withbit 4 of the encoded CPU voltage. This means that you either geta +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 registeris correct, i.e. that the BIOS has updated the configuration ifthe 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_inputCPU 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_inputVcc 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]_alarmalarm flags for voltage inputsThese files read ‘1’ in case of alarm, ‘0’ otherwise.
temp1_inputchip temperature measured by on-chip diode
temp[2-3]_inputtemperature measured by external diodes (one of thesewould typically be wired to the diode inside the CPU)
temp[1-3]_min, 
temp[1-3]_maxlower and upper alarm thresholds for temperatures
temp[1-3]_offset

temperature offset registersThe chip adds the offsets stored in these registers tothe 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 otheroffset to zero.

All temperatures and offsets are read and written inunits of 0.001 degC.

temp[1-3]_alarmalarm flags for temperature inputs, ‘1’ in case of alarm,‘0’ otherwise.
temp[2-3]_input_faultdiode fault flags for temperature inputs 2 and 3.A fault is detected if the two pins for the correspondingsensor are open or shorted, or any of the two is shortedto ground or Vcc. ‘1’ indicates a diode fault.
cpu0_vidCPU voltage as received from the CPU
vrmCPU VID standard used for decoding CPU voltage

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