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

Supported chips:
  * Analog Devices ADT7408
    Datasheets:
	http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
  * Atmel AT30TS00
    Datasheets:
	http://www.atmel.com/Images/doc8585.pdf
  * IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2
    Datasheets:
	http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf
	http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf
	http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf
	http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf
  * Maxim MAX6604
    Datasheets:
	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
  * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP98244, MCP9843
    Datasheets:
	http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf
	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
	http://ww1.microchip.com/downloads/en/DeviceDoc/22327A.pdf
  * NXP Semiconductors SE97, SE97B, SE98, SE98A
    Datasheets:
	http://www.nxp.com/documents/data_sheet/SE97.pdf
	http://www.nxp.com/documents/data_sheet/SE97B.pdf
	http://www.nxp.com/documents/data_sheet/SE98.pdf
	http://www.nxp.com/documents/data_sheet/SE98A.pdf
  * ON Semiconductor CAT34TS02, CAT6095
    Datasheet:
	http://www.onsemi.com/pub_link/Collateral/CAT34TS02-D.PDF
	http://www.onsemi.com/pub/Collateral/CAT6095-D.PDF
  * ST Microelectronics STTS424, STTS424E02, STTS2002, STTS3000
    Datasheets:
	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00157556.pdf
	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00157558.pdf
	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf
	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf
  * JEDEC JC 42.4 compliant temperature sensor chips
    Datasheet:
	http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf

  Common for all chips:
    Prefix: 'jc42'
    Addresses scanned: I2C 0x18 - 0x1f

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
