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