xref: /linux/Documentation/hwmon/emc1403.rst (revision 55d0969c451159cff86949b38c39171cab962069)
1Kernel driver emc1403
2=====================
3
4Supported chips:
5
6  * SMSC / Microchip EMC1402, EMC1412
7
8    Addresses scanned: I2C 0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c
9
10    Prefix: 'emc1402'
11
12    Datasheets:
13
14	- http://ww1.microchip.com/downloads/en/DeviceDoc/1412.pdf
15	- https://ww1.microchip.com/downloads/en/DeviceDoc/1402.pdf
16
17  * SMSC / Microchip EMC1403, EMC1404, EMC1413, EMC1414
18
19    Addresses scanned: I2C 0x18, 0x29, 0x4c, 0x4d
20
21    Prefix: 'emc1403', 'emc1404'
22
23    Datasheets:
24
25	- http://ww1.microchip.com/downloads/en/DeviceDoc/1403_1404.pdf
26	- http://ww1.microchip.com/downloads/en/DeviceDoc/1413_1414.pdf
27
28  * SMSC / Microchip EMC1422
29
30    Addresses scanned: I2C 0x4c
31
32    Prefix: 'emc1422'
33
34    Datasheet:
35
36	- https://ww1.microchip.com/downloads/en/DeviceDoc/1422.pdf
37
38  * SMSC / Microchip EMC1423, EMC1424
39
40    Addresses scanned: I2C 0x4c
41
42    Prefix: 'emc1423', 'emc1424'
43
44    Datasheet:
45
46	- https://ww1.microchip.com/downloads/en/DeviceDoc/1423_1424.pdf
47
48  * SMSC / Microchip EMC1428, EMC1438
49
50    Addresses scanned: I2C 0x18, 0x4c, 0x4d
51
52    Prefix: 'emc1428', 'emc1438'
53
54    Datasheets:
55
56	- https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005275A.pdf
57	- https://ww1.microchip.com/downloads/en/DeviceDoc/EMC1438%20DS%20Rev.%201.0%20(04-29-10).pdf
58
59Author:
60    Kalhan Trisal <kalhan.trisal@intel.com
61
62
63Description
64-----------
65
66The Standard Microsystems Corporation (SMSC) / Microchip EMC14xx chips
67contain up to eight temperature sensors. EMC14x2 support two sensors
68(one internal, one external). EMC14x3 support three sensors (one internal,
69two external), EMC14x4 support four sensors (one internal, three external),
70and EMC14x8 support eight sensors (one internal, seven external).
71
72The chips implement three limits for each sensor: low (tempX_min), high
73(tempX_max) and critical (tempX_crit.) The chips also implement an
74hysteresis mechanism which applies to all limits. The relative difference
75is stored in a single register on the chip, which means that the relative
76difference between the limit and its hysteresis is always the same for
77all three limits.
78
79This implementation detail implies the following:
80
81* When setting a limit, its hysteresis will automatically follow, the
82  difference staying unchanged. For example, if the old critical limit
83  was 80 degrees C, and the hysteresis was 75 degrees C, and you change
84  the critical limit to 90 degrees C, then the hysteresis will
85  automatically change to 85 degrees C.
86* The hysteresis values can't be set independently. We decided to make
87  only temp1_crit_hyst writable, while all other hysteresis attributes
88  are read-only. Setting temp1_crit_hyst writes the difference between
89  temp1_crit_hyst and temp1_crit into the chip, and the same relative
90  hysteresis applies automatically to all other limits.
91* The limits should be set before the hysteresis.
92