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 <linux@roeck-us.net>


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
