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