| 
									
										
										
										
											2006-03-23 16:37:23 +01:00
										 |  |  | Kernel driver smsc47m192 | 
					
						
							|  |  |  | ======================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Supported chips: | 
					
						
							| 
									
										
										
										
											2007-05-08 17:21:59 +02:00
										 |  |  |   * SMSC LPC47M192, LPC47M15x, LPC47M292 and LPC47M997 | 
					
						
							| 
									
										
										
										
											2006-03-23 16:37:23 +01:00
										 |  |  |     Prefix: 'smsc47m192' | 
					
						
							|  |  |  |     Addresses scanned: I2C 0x2c - 0x2d | 
					
						
							|  |  |  |     Datasheet: The datasheet for LPC47M192 is publicly available from | 
					
						
							|  |  |  |                http://www.smsc.com/ | 
					
						
							| 
									
										
										
										
											2007-05-08 17:21:59 +02:00
										 |  |  |                The LPC47M15x, LPC47M292 and LPC47M997 are compatible for | 
					
						
							|  |  |  |                hardware monitoring. | 
					
						
							| 
									
										
										
										
											2006-03-23 16:37:23 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2007-05-08 17:21:59 +02:00
										 |  |  | of the SMSC LPC47M192 and compatible Super-I/O chips. | 
					
						
							| 
									
										
										
										
											2006-03-23 16:37:23 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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. |