0001 Kernel driver emc1403
0002 =====================
0003
0004 Supported chips:
0005
0006 * SMSC / Microchip EMC1402, EMC1412
0007
0008 Addresses scanned: I2C 0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c
0009
0010 Prefix: 'emc1402'
0011
0012 Datasheets:
0013
0014 - http://ww1.microchip.com/downloads/en/DeviceDoc/1412.pdf
0015 - https://ww1.microchip.com/downloads/en/DeviceDoc/1402.pdf
0016
0017 * SMSC / Microchip EMC1403, EMC1404, EMC1413, EMC1414
0018
0019 Addresses scanned: I2C 0x18, 0x29, 0x4c, 0x4d
0020
0021 Prefix: 'emc1403', 'emc1404'
0022
0023 Datasheets:
0024
0025 - http://ww1.microchip.com/downloads/en/DeviceDoc/1403_1404.pdf
0026 - http://ww1.microchip.com/downloads/en/DeviceDoc/1413_1414.pdf
0027
0028 * SMSC / Microchip EMC1422
0029
0030 Addresses scanned: I2C 0x4c
0031
0032 Prefix: 'emc1422'
0033
0034 Datasheet:
0035
0036 - https://ww1.microchip.com/downloads/en/DeviceDoc/1422.pdf
0037
0038 * SMSC / Microchip EMC1423, EMC1424
0039
0040 Addresses scanned: I2C 0x4c
0041
0042 Prefix: 'emc1423', 'emc1424'
0043
0044 Datasheet:
0045
0046 - https://ww1.microchip.com/downloads/en/DeviceDoc/1423_1424.pdf
0047
0048 Author:
0049 Kalhan Trisal <kalhan.trisal@intel.com
0050
0051
0052 Description
0053 -----------
0054
0055 The Standard Microsystems Corporation (SMSC) / Microchip EMC14xx chips
0056 contain up to four temperature sensors. EMC14x2 support two sensors
0057 (one internal, one external). EMC14x3 support three sensors (one internal,
0058 two external), and EMC14x4 support four sensors (one internal, three
0059 external).
0060
0061 The chips implement three limits for each sensor: low (tempX_min), high
0062 (tempX_max) and critical (tempX_crit.) The chips also implement an
0063 hysteresis mechanism which applies to all limits. The relative difference
0064 is stored in a single register on the chip, which means that the relative
0065 difference between the limit and its hysteresis is always the same for
0066 all three limits.
0067
0068 This implementation detail implies the following:
0069
0070 * When setting a limit, its hysteresis will automatically follow, the
0071 difference staying unchanged. For example, if the old critical limit
0072 was 80 degrees C, and the hysteresis was 75 degrees C, and you change
0073 the critical limit to 90 degrees C, then the hysteresis will
0074 automatically change to 85 degrees C.
0075 * The hysteresis values can't be set independently. We decided to make
0076 only temp1_crit_hyst writable, while all other hysteresis attributes
0077 are read-only. Setting temp1_crit_hyst writes the difference between
0078 temp1_crit_hyst and temp1_crit into the chip, and the same relative
0079 hysteresis applies automatically to all other limits.
0080 * The limits should be set before the hysteresis.