1*4882a593SmuzhiyunKernel driver smsc47m192 2*4882a593Smuzhiyun======================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSupported chips: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun * SMSC LPC47M192, LPC47M15x, LPC47M292 and LPC47M997 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun Prefix: 'smsc47m192' 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Addresses scanned: I2C 0x2c - 0x2d 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun Datasheet: The datasheet for LPC47M192 is publicly available from 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun http://www.smsc.com/ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun The LPC47M15x, LPC47M292 and LPC47M997 are compatible for 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun hardware monitoring. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunAuthor: 23*4882a593Smuzhiyun - Hartmut Rick <linux@rick.claranet.de> 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun - Special thanks to Jean Delvare for careful checking 26*4882a593Smuzhiyun of the code and many helpful comments and suggestions. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunDescription 30*4882a593Smuzhiyun----------- 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunThis driver implements support for the hardware sensor capabilities 33*4882a593Smuzhiyunof the SMSC LPC47M192 and compatible Super-I/O chips. 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunThese chips support 3 temperature channels and 8 voltage inputs 36*4882a593Smuzhiyunas well as CPU voltage VID input. 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunThey do also have fan monitoring and control capabilities, but the 39*4882a593Smuzhiyunthese features are accessed via ISA bus and are not supported by this 40*4882a593Smuzhiyundriver. Use the 'smsc47m1' driver for fan monitoring and control. 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunVoltages and temperatures are measured by an 8-bit ADC, the resolution 43*4882a593Smuzhiyunof the temperatures is 1 bit per degree C. 44*4882a593SmuzhiyunVoltages are scaled such that the nominal voltage corresponds to 45*4882a593Smuzhiyun192 counts, i.e. 3/4 of the full range. Thus the available range for 46*4882a593Smuzhiyuneach voltage channel is 0V ... 255/192*(nominal voltage), the resolution 47*4882a593Smuzhiyunis 1 bit per (nominal voltage)/192. 48*4882a593SmuzhiyunBoth voltage and temperature values are scaled by 1000, the sys files 49*4882a593Smuzhiyunshow voltages in mV and temperatures in units of 0.001 degC. 50*4882a593Smuzhiyun 51*4882a593SmuzhiyunThe +12V analog voltage input channel (in4_input) is multiplexed with 52*4882a593Smuzhiyunbit 4 of the encoded CPU voltage. This means that you either get 53*4882a593Smuzhiyuna +12V voltage measurement or a 5 bit CPU VID, but not both. 54*4882a593SmuzhiyunThe default setting is to use the pin as 12V input, and use only 4 bit VID. 55*4882a593SmuzhiyunThis driver assumes that the information in the configuration register 56*4882a593Smuzhiyunis correct, i.e. that the BIOS has updated the configuration if 57*4882a593Smuzhiyunthe motherboard has this input wired to VID4. 58*4882a593Smuzhiyun 59*4882a593SmuzhiyunThe temperature and voltage readings are updated once every 1.5 seconds. 60*4882a593SmuzhiyunReading them more often repeats the same values. 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunsysfs interface 64*4882a593Smuzhiyun--------------- 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun===================== ========================================================== 67*4882a593Smuzhiyunin0_input +2.5V voltage input 68*4882a593Smuzhiyunin1_input CPU voltage input (nominal 2.25V) 69*4882a593Smuzhiyunin2_input +3.3V voltage input 70*4882a593Smuzhiyunin3_input +5V voltage input 71*4882a593Smuzhiyunin4_input +12V voltage input (may be missing if used as VID4) 72*4882a593Smuzhiyunin5_input Vcc voltage input (nominal 3.3V) 73*4882a593Smuzhiyun This is the supply voltage of the sensor chip itself. 74*4882a593Smuzhiyunin6_input +1.5V voltage input 75*4882a593Smuzhiyunin7_input +1.8V voltage input 76*4882a593Smuzhiyun 77*4882a593Smuzhiyunin[0-7]_min, 78*4882a593Smuzhiyunin[0-7]_max lower and upper alarm thresholds for in[0-7]_input reading 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun All voltages are read and written in mV. 81*4882a593Smuzhiyun 82*4882a593Smuzhiyunin[0-7]_alarm alarm flags for voltage inputs 83*4882a593Smuzhiyun These files read '1' in case of alarm, '0' otherwise. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyuntemp1_input chip temperature measured by on-chip diode 86*4882a593Smuzhiyuntemp[2-3]_input temperature measured by external diodes (one of these 87*4882a593Smuzhiyun would typically be wired to the diode inside the CPU) 88*4882a593Smuzhiyun 89*4882a593Smuzhiyuntemp[1-3]_min, 90*4882a593Smuzhiyuntemp[1-3]_max lower and upper alarm thresholds for temperatures 91*4882a593Smuzhiyun 92*4882a593Smuzhiyuntemp[1-3]_offset temperature offset registers 93*4882a593Smuzhiyun The chip adds the offsets stored in these registers to 94*4882a593Smuzhiyun the corresponding temperature readings. 95*4882a593Smuzhiyun Note that temp1 and temp2 offsets share the same register, 96*4882a593Smuzhiyun they cannot both be different from zero at the same time. 97*4882a593Smuzhiyun Writing a non-zero number to one of them will reset the other 98*4882a593Smuzhiyun offset to zero. 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun All temperatures and offsets are read and written in 101*4882a593Smuzhiyun units of 0.001 degC. 102*4882a593Smuzhiyun 103*4882a593Smuzhiyuntemp[1-3]_alarm alarm flags for temperature inputs, '1' in case of alarm, 104*4882a593Smuzhiyun '0' otherwise. 105*4882a593Smuzhiyuntemp[2-3]_input_fault diode fault flags for temperature inputs 2 and 3. 106*4882a593Smuzhiyun A fault is detected if the two pins for the corresponding 107*4882a593Smuzhiyun sensor are open or shorted, or any of the two is shorted 108*4882a593Smuzhiyun to ground or Vcc. '1' indicates a diode fault. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyuncpu0_vid CPU voltage as received from the CPU 111*4882a593Smuzhiyun 112*4882a593Smuzhiyunvrm CPU VID standard used for decoding CPU voltage 113*4882a593Smuzhiyun===================== ========================================================== 114*4882a593Smuzhiyun 115*4882a593SmuzhiyunThe `*_min`, `*_max`, `*_offset` and `vrm` files can be read and written, 116*4882a593Smuzhiyunall others are read-only. 117