]>
Commit | Line | Data |
---|---|---|
57d60b1b GR |
1 | Kernel driver emc1403 |
2 | ===================== | |
3 | ||
4 | Supported chips: | |
5 | * SMSC / Microchip EMC1402, EMC1412 | |
6 | Addresses scanned: I2C 0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c | |
7 | Prefix: 'emc1402' | |
8 | Datasheets: | |
9 | http://ww1.microchip.com/downloads/en/DeviceDoc/1412.pdf | |
10 | http://ww1.microchip.com/downloads/en/DeviceDoc/1402.pdf | |
11 | * SMSC / Microchip EMC1403, EMC1404, EMC1413, EMC1414 | |
12 | Addresses scanned: I2C 0x18, 0x29, 0x4c, 0x4d | |
13 | Prefix: 'emc1403', 'emc1404' | |
14 | Datasheets: | |
15 | http://ww1.microchip.com/downloads/en/DeviceDoc/1403_1404.pdf | |
16 | http://ww1.microchip.com/downloads/en/DeviceDoc/1413_1414.pdf | |
17 | * SMSC / Microchip EMC1422 | |
18 | Addresses scanned: I2C 0x4c | |
19 | Prefix: 'emc1422' | |
20 | Datasheet: | |
21 | http://ww1.microchip.com/downloads/en/DeviceDoc/1422.pdf | |
22 | * SMSC / Microchip EMC1423, EMC1424 | |
23 | Addresses scanned: I2C 0x4c | |
24 | Prefix: 'emc1423', 'emc1424' | |
25 | Datasheet: | |
26 | http://ww1.microchip.com/downloads/en/DeviceDoc/1423_1424.pdf | |
27 | ||
28 | Author: | |
29 | Kalhan Trisal <kalhan.trisal@intel.com | |
30 | ||
31 | ||
32 | Description | |
33 | ----------- | |
34 | ||
35 | The Standard Microsystems Corporation (SMSC) / Microchip EMC14xx chips | |
36 | contain up to four temperature sensors. EMC14x2 support two sensors | |
37 | (one internal, one external). EMC14x3 support three sensors (one internal, | |
38 | two external), and EMC14x4 support four sensors (one internal, three | |
39 | external). | |
40 | ||
41 | The chips implement three limits for each sensor: low (tempX_min), high | |
42 | (tempX_max) and critical (tempX_crit.) The chips also implement an | |
43 | hysteresis mechanism which applies to all limits. The relative difference | |
44 | is stored in a single register on the chip, which means that the relative | |
45 | difference between the limit and its hysteresis is always the same for | |
46 | all three limits. | |
47 | ||
48 | This implementation detail implies the following: | |
49 | * When setting a limit, its hysteresis will automatically follow, the | |
50 | difference staying unchanged. For example, if the old critical limit | |
51 | was 80 degrees C, and the hysteresis was 75 degrees C, and you change | |
52 | the critical limit to 90 degrees C, then the hysteresis will | |
53 | automatically change to 85 degrees C. | |
84899d39 GR |
54 | * The hysteresis values can't be set independently. We decided to make |
55 | only temp1_crit_hyst writable, while all other hysteresis attributes | |
56 | are read-only. Setting temp1_crit_hyst writes the difference between | |
57 | temp1_crit_hyst and temp1_crit into the chip, and the same relative | |
58 | hysteresis applies automatically to all other limits. | |
57d60b1b | 59 | * The limits should be set before the hysteresis. |