| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 1 | Kernel driver jc42 | 
 | 2 | ================== | 
 | 3 |  | 
 | 4 | Supported chips: | 
 | 5 |   * Analog Devices ADT7408 | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 6 |     Datasheets: | 
 | 7 | 	http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf | 
| Guenter Roeck | 1bd612a | 2012-03-05 11:13:52 -0800 | [diff] [blame] | 8 |   * Atmel AT30TS00 | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 9 |     Datasheets: | 
| Guenter Roeck | 1bd612a | 2012-03-05 11:13:52 -0800 | [diff] [blame] | 10 | 	http://www.atmel.com/Images/doc8585.pdf | 
 | 11 |   * IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2 | 
| Guenter Roeck | 1bd612a | 2012-03-05 11:13:52 -0800 | [diff] [blame] | 12 |     Datasheets: | 
 | 13 | 	http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf | 
 | 14 | 	http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf | 
 | 15 | 	http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf | 
 | 16 | 	http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 17 |   * Maxim MAX6604 | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 18 |     Datasheets: | 
 | 19 | 	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf | 
| Guenter Roeck | 1bd612a | 2012-03-05 11:13:52 -0800 | [diff] [blame] | 20 |   * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 21 |     Datasheets: | 
| Guenter Roeck | 1bd612a | 2012-03-05 11:13:52 -0800 | [diff] [blame] | 22 | 	http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 23 | 	http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf | 
 | 24 | 	http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf | 
 | 25 | 	http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf | 
| Guenter Roeck | 86dda17 | 2012-03-08 08:20:24 -0800 | [diff] [blame] | 26 |   * NXP Semiconductors SE97, SE97B, SE98, SE98A | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 27 |     Datasheets: | 
 | 28 | 	http://www.nxp.com/documents/data_sheet/SE97.pdf | 
 | 29 | 	http://www.nxp.com/documents/data_sheet/SE97B.pdf | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 30 | 	http://www.nxp.com/documents/data_sheet/SE98.pdf | 
| Guenter Roeck | 86dda17 | 2012-03-08 08:20:24 -0800 | [diff] [blame] | 31 | 	http://www.nxp.com/documents/data_sheet/SE98A.pdf | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 32 |   * ON Semiconductor CAT34TS02, CAT6095 | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 33 |     Datasheet: | 
 | 34 | 	http://www.onsemi.com/pub_link/Collateral/CAT34TS02-D.PDF | 
 | 35 | 	http://www.onsemi.com/pub/Collateral/CAT6095-D.PDF | 
| Guenter Roeck | 86dda17 | 2012-03-08 08:20:24 -0800 | [diff] [blame] | 36 |   * ST Microelectronics STTS424, STTS424E02, STTS2002, STTS3000 | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 37 |     Datasheets: | 
| Guenter Roeck | 86dda17 | 2012-03-08 08:20:24 -0800 | [diff] [blame] | 38 | 	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00157556.pdf | 
 | 39 | 	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00157558.pdf | 
| Jean Delvare | 4de8612 | 2012-03-05 08:32:00 -0500 | [diff] [blame] | 40 | 	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf | 
 | 41 | 	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 42 |   * JEDEC JC 42.4 compliant temperature sensor chips | 
| Clemens Ladisch | d5622f5 | 2011-02-16 08:02:08 -0500 | [diff] [blame] | 43 |     Datasheet: | 
 | 44 | 	http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 45 |  | 
| Guenter Roeck | 86dda17 | 2012-03-08 08:20:24 -0800 | [diff] [blame] | 46 |   Common for all chips: | 
 | 47 |     Prefix: 'jc42' | 
 | 48 |     Addresses scanned: I2C 0x18 - 0x1f | 
 | 49 |  | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 50 | Author: | 
 | 51 | 	Guenter Roeck <guenter.roeck@ericsson.com> | 
 | 52 |  | 
 | 53 |  | 
 | 54 | Description | 
 | 55 | ----------- | 
 | 56 |  | 
| Clemens Ladisch | d5622f5 | 2011-02-16 08:02:08 -0500 | [diff] [blame] | 57 | This driver implements support for JEDEC JC 42.4 compliant temperature sensors, | 
 | 58 | which are used on many DDR3 memory modules for mobile devices and servers. Some | 
 | 59 | systems use the sensor to prevent memory overheating by automatically throttling | 
 | 60 | the memory controller. | 
 | 61 |  | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 62 | The driver auto-detects the chips listed above, but can be manually instantiated | 
 | 63 | to support other JC 42.4 compliant chips. | 
 | 64 |  | 
 | 65 | Example: the following will load the driver for a generic JC 42.4 compliant | 
 | 66 | temperature sensor at address 0x18 on I2C bus #1: | 
 | 67 |  | 
 | 68 | # modprobe jc42 | 
 | 69 | # echo jc42 0x18 > /sys/bus/i2c/devices/i2c-1/new_device | 
 | 70 |  | 
 | 71 | A JC 42.4 compliant chip supports a single temperature sensor. Minimum, maximum, | 
 | 72 | and critical temperature can be configured. There are alarms for high, low, | 
 | 73 | and critical thresholds. | 
 | 74 |  | 
 | 75 | There is also an hysteresis to control the thresholds for resetting alarms. | 
 | 76 | Per JC 42.4 specification, the hysteresis threshold can be configured to 0, 1.5, | 
 | 77 | 3.0, and 6.0 degrees C. Configured hysteresis values will be rounded to those | 
 | 78 | limits. The chip supports only a single register to configure the hysteresis, | 
 | 79 | which applies to all limits. This register can be written by writing into | 
 | 80 | temp1_crit_hyst. Other hysteresis attributes are read-only. | 
 | 81 |  | 
| Clemens Ladisch | 2c6315d | 2011-02-16 08:02:38 -0500 | [diff] [blame] | 82 | If the BIOS has configured the sensor for automatic temperature management, it | 
 | 83 | is likely that it has locked the registers, i.e., that the temperature limits | 
 | 84 | cannot be changed. | 
 | 85 |  | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 86 | Sysfs entries | 
 | 87 | ------------- | 
 | 88 |  | 
 | 89 | temp1_input		Temperature (RO) | 
| Clemens Ladisch | 2c6315d | 2011-02-16 08:02:38 -0500 | [diff] [blame] | 90 | temp1_min		Minimum temperature (RO or RW) | 
 | 91 | temp1_max		Maximum temperature (RO or RW) | 
 | 92 | temp1_crit		Critical high temperature (RO or RW) | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 93 |  | 
| Clemens Ladisch | 2c6315d | 2011-02-16 08:02:38 -0500 | [diff] [blame] | 94 | temp1_crit_hyst		Critical hysteresis temperature (RO or RW) | 
| Guenter Roeck | 4453d73 | 2010-08-09 17:21:08 -0700 | [diff] [blame] | 95 | temp1_max_hyst		Maximum hysteresis temperature (RO) | 
 | 96 |  | 
 | 97 | temp1_min_alarm		Temperature low alarm | 
 | 98 | temp1_max_alarm		Temperature high alarm | 
 | 99 | temp1_crit_alarm	Temperature critical alarm |