Kernel driver jc42

Supported chips:

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. Somesystems use the sensor to prevent memory overheating by automatically throttlingthe memory controller.

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

Example: the following will load the driver for a generic JC 42.4 complianttemperature 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 thoselimits. The chip supports only a single register to configure the hysteresis,which applies to all limits. This register can be written by writing intotemp1_crit_hyst. Other hysteresis attributes are read-only.

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

Sysfs entries

temp1_inputTemperature (RO)
temp1_minMinimum temperature (RO or RW)
temp1_maxMaximum temperature (RO or RW)
temp1_critCritical high temperature (RO or RW)
temp1_crit_hystCritical hysteresis temperature (RO or RW)
temp1_max_hystMaximum hysteresis temperature (RO)
temp1_min_alarmTemperature low alarm
temp1_max_alarmTemperature high alarm
temp1_crit_alarmTemperature critical alarm