Kernel driver jc42
==================

Supported chips:
  * Analog Devices ADT7408
    Prefix: 'adt7408'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
  * IDT TSE2002B3, TS3000B3
    Prefix: 'tse2002b3', 'ts3000b3'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://www.idt.com/products/getdoc.cfm?docid=18715691
	http://www.idt.com/products/getdoc.cfm?docid=18715692
  * Maxim MAX6604
    Prefix: 'max6604'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
  * Microchip MCP9805, MCP98242, MCP98243, MCP9843
    Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
	http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf
	http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf
  * NXP Semiconductors SE97, SE97B
    Prefix: 'se97'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://www.nxp.com/documents/data_sheet/SE97.pdf
	http://www.nxp.com/documents/data_sheet/SE97B.pdf
  * NXP Semiconductors SE98
    Prefix: 'se98'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://www.nxp.com/documents/data_sheet/SE98.pdf
  * ON Semiconductor CAT34TS02, CAT6095
    Prefix: 'cat34ts02', 'cat6095'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheet:
	http://www.onsemi.com/pub_link/Collateral/CAT34TS02-D.PDF
	http://www.onsemi.com/pub/Collateral/CAT6095-D.PDF
  * ST Microelectronics STTS424, STTS424E02
    Prefix: 'stts424'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheets:
	http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf
	http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf
  * JEDEC JC 42.4 compliant temperature sensor chips
    Prefix: 'jc42'
    Addresses scanned: I2C 0x18 - 0x1f
    Datasheet:
	http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf

Author:
	Guenter Roeck <guenter.roeck@ericsson.com>


Description
-----------

This driver implements support for JEDEC JC 42.4 compliant temperature sensors,
which are used on many DDR3 memory modules for mobile devices and servers. Some
systems use the sensor to prevent memory overheating by automatically throttling
the memory controller.

The driver auto-detects the chips listed above, but can be manually instantiated
to support other JC 42.4 compliant chips.

Example: the following will load the driver for a generic JC 42.4 compliant
temperature sensor at address 0x18 on I2C bus #1:

# modprobe jc42
# echo jc42 0x18 > /sys/bus/i2c/devices/i2c-1/new_device

A JC 42.4 compliant chip supports a single temperature sensor. Minimum, maximum,
and critical temperature can be configured. There are alarms for high, low,
and critical thresholds.

There is also an hysteresis to control the thresholds for resetting alarms.
Per JC 42.4 specification, the hysteresis threshold can be configured to 0, 1.5,
3.0, and 6.0 degrees C. Configured hysteresis values will be rounded to those
limits. The chip supports only a single register to configure the hysteresis,
which applies to all limits. This register can be written by writing into
temp1_crit_hyst. Other hysteresis attributes are read-only.

If the BIOS has configured the sensor for automatic temperature management, it
is likely that it has locked the registers, i.e., that the temperature limits
cannot be changed.

Sysfs entries
-------------

temp1_input		Temperature (RO)
temp1_min		Minimum temperature (RO or RW)
temp1_max		Maximum temperature (RO or RW)
temp1_crit		Critical high temperature (RO or RW)

temp1_crit_hyst		Critical hysteresis temperature (RO or RW)
temp1_max_hyst		Maximum hysteresis temperature (RO)

temp1_min_alarm		Temperature low alarm
temp1_max_alarm		Temperature high alarm
temp1_crit_alarm	Temperature critical alarm
