xref: /OK3568_Linux_fs/kernel/Documentation/hwmon/smsc47m192.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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