mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
Kernel driver emc1403 |
|
===================== |
|
|
|
Supported chips: |
|
|
|
* SMSC / Microchip EMC1402, EMC1412 |
|
|
|
Addresses scanned: I2C 0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c |
|
|
|
Prefix: 'emc1402' |
|
|
|
Datasheets: |
|
|
|
- http://ww1.microchip.com/downloads/en/DeviceDoc/1412.pdf |
|
- https://ww1.microchip.com/downloads/en/DeviceDoc/1402.pdf |
|
|
|
* SMSC / Microchip EMC1403, EMC1404, EMC1413, EMC1414 |
|
|
|
Addresses scanned: I2C 0x18, 0x29, 0x4c, 0x4d |
|
|
|
Prefix: 'emc1403', 'emc1404' |
|
|
|
Datasheets: |
|
|
|
- http://ww1.microchip.com/downloads/en/DeviceDoc/1403_1404.pdf |
|
- http://ww1.microchip.com/downloads/en/DeviceDoc/1413_1414.pdf |
|
|
|
* SMSC / Microchip EMC1422 |
|
|
|
Addresses scanned: I2C 0x4c |
|
|
|
Prefix: 'emc1422' |
|
|
|
Datasheet: |
|
|
|
- https://ww1.microchip.com/downloads/en/DeviceDoc/1422.pdf |
|
|
|
* SMSC / Microchip EMC1423, EMC1424 |
|
|
|
Addresses scanned: I2C 0x4c |
|
|
|
Prefix: 'emc1423', 'emc1424' |
|
|
|
Datasheet: |
|
|
|
- https://ww1.microchip.com/downloads/en/DeviceDoc/1423_1424.pdf |
|
|
|
Author: |
|
Kalhan Trisal <[email protected] |
|
|
|
|
|
Description |
|
----------- |
|
|
|
The Standard Microsystems Corporation (SMSC) / Microchip EMC14xx chips |
|
contain up to four temperature sensors. EMC14x2 support two sensors |
|
(one internal, one external). EMC14x3 support three sensors (one internal, |
|
two external), and EMC14x4 support four sensors (one internal, three |
|
external). |
|
|
|
The chips implement three limits for each sensor: low (tempX_min), high |
|
(tempX_max) and critical (tempX_crit.) The chips also implement an |
|
hysteresis mechanism which applies to all limits. The relative difference |
|
is stored in a single register on the chip, which means that the relative |
|
difference between the limit and its hysteresis is always the same for |
|
all three limits. |
|
|
|
This implementation detail implies the following: |
|
|
|
* When setting a limit, its hysteresis will automatically follow, the |
|
difference staying unchanged. For example, if the old critical limit |
|
was 80 degrees C, and the hysteresis was 75 degrees C, and you change |
|
the critical limit to 90 degrees C, then the hysteresis will |
|
automatically change to 85 degrees C. |
|
* The hysteresis values can't be set independently. We decided to make |
|
only temp1_crit_hyst writable, while all other hysteresis attributes |
|
are read-only. Setting temp1_crit_hyst writes the difference between |
|
temp1_crit_hyst and temp1_crit into the chip, and the same relative |
|
hysteresis applies automatically to all other limits. |
|
* The limits should be set before the hysteresis.
|
|
|