Back to home page

OSCL-LXR

 
 

    


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.