xref: /linux/Documentation/hwmon/jc42.rst (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
17ebd8b66SMauro Carvalho ChehabKernel driver jc42
27ebd8b66SMauro Carvalho Chehab==================
37ebd8b66SMauro Carvalho Chehab
47ebd8b66SMauro Carvalho ChehabSupported chips:
57ebd8b66SMauro Carvalho Chehab
67ebd8b66SMauro Carvalho Chehab  * Analog Devices ADT7408
77ebd8b66SMauro Carvalho Chehab
87ebd8b66SMauro Carvalho Chehab    Datasheets:
97ebd8b66SMauro Carvalho Chehab
10*d38b7e4aSAlexander A. Klimov	https://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
117ebd8b66SMauro Carvalho Chehab
127ebd8b66SMauro Carvalho Chehab  * Atmel AT30TS00, AT30TS002A/B, AT30TSE004A
137ebd8b66SMauro Carvalho Chehab
147ebd8b66SMauro Carvalho Chehab    Datasheets:
157ebd8b66SMauro Carvalho Chehab
167ebd8b66SMauro Carvalho Chehab	http://www.atmel.com/Images/doc8585.pdf
177ebd8b66SMauro Carvalho Chehab
187ebd8b66SMauro Carvalho Chehab	http://www.atmel.com/Images/doc8711.pdf
197ebd8b66SMauro Carvalho Chehab
207ebd8b66SMauro Carvalho Chehab	http://www.atmel.com/Images/Atmel-8852-SEEPROM-AT30TSE002A-Datasheet.pdf
217ebd8b66SMauro Carvalho Chehab
227ebd8b66SMauro Carvalho Chehab	http://www.atmel.com/Images/Atmel-8868-DTS-AT30TSE004A-Datasheet.pdf
237ebd8b66SMauro Carvalho Chehab
247ebd8b66SMauro Carvalho Chehab  * IDT TSE2002B3, TSE2002GB2, TSE2004GB2, TS3000B3, TS3000GB0, TS3000GB2,
257ebd8b66SMauro Carvalho Chehab
267ebd8b66SMauro Carvalho Chehab	TS3001GB2
277ebd8b66SMauro Carvalho Chehab
287ebd8b66SMauro Carvalho Chehab    Datasheets:
297ebd8b66SMauro Carvalho Chehab
307ebd8b66SMauro Carvalho Chehab	Available from IDT web site
317ebd8b66SMauro Carvalho Chehab
327ebd8b66SMauro Carvalho Chehab  * Maxim MAX6604
337ebd8b66SMauro Carvalho Chehab
347ebd8b66SMauro Carvalho Chehab    Datasheets:
357ebd8b66SMauro Carvalho Chehab
367ebd8b66SMauro Carvalho Chehab	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
377ebd8b66SMauro Carvalho Chehab
387ebd8b66SMauro Carvalho Chehab  * Microchip MCP9804, MCP9805, MCP9808, MCP98242, MCP98243, MCP98244, MCP9843
397ebd8b66SMauro Carvalho Chehab
407ebd8b66SMauro Carvalho Chehab    Datasheets:
417ebd8b66SMauro Carvalho Chehab
42*d38b7e4aSAlexander A. Klimov	https://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf
437ebd8b66SMauro Carvalho Chehab
44*d38b7e4aSAlexander A. Klimov	https://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
457ebd8b66SMauro Carvalho Chehab
46*d38b7e4aSAlexander A. Klimov	https://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf
477ebd8b66SMauro Carvalho Chehab
48*d38b7e4aSAlexander A. Klimov	https://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf
497ebd8b66SMauro Carvalho Chehab
50*d38b7e4aSAlexander A. Klimov	https://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf
517ebd8b66SMauro Carvalho Chehab
52*d38b7e4aSAlexander A. Klimov	https://ww1.microchip.com/downloads/en/DeviceDoc/22327A.pdf
537ebd8b66SMauro Carvalho Chehab
547ebd8b66SMauro Carvalho Chehab  * NXP Semiconductors SE97, SE97B, SE98, SE98A
557ebd8b66SMauro Carvalho Chehab
567ebd8b66SMauro Carvalho Chehab    Datasheets:
577ebd8b66SMauro Carvalho Chehab
58*d38b7e4aSAlexander A. Klimov	https://www.nxp.com/documents/data_sheet/SE97.pdf
597ebd8b66SMauro Carvalho Chehab
60*d38b7e4aSAlexander A. Klimov	https://www.nxp.com/documents/data_sheet/SE97B.pdf
617ebd8b66SMauro Carvalho Chehab
62*d38b7e4aSAlexander A. Klimov	https://www.nxp.com/documents/data_sheet/SE98.pdf
637ebd8b66SMauro Carvalho Chehab
64*d38b7e4aSAlexander A. Klimov	https://www.nxp.com/documents/data_sheet/SE98A.pdf
657ebd8b66SMauro Carvalho Chehab
667ebd8b66SMauro Carvalho Chehab  * ON Semiconductor CAT34TS02, CAT6095
677ebd8b66SMauro Carvalho Chehab
687ebd8b66SMauro Carvalho Chehab    Datasheet:
697ebd8b66SMauro Carvalho Chehab
70*d38b7e4aSAlexander A. Klimov	https://www.onsemi.com/pub_link/Collateral/CAT34TS02-D.PDF
717ebd8b66SMauro Carvalho Chehab
72*d38b7e4aSAlexander A. Klimov	https://www.onsemi.com/pub/Collateral/CAT6095-D.PDF
737ebd8b66SMauro Carvalho Chehab
747ebd8b66SMauro Carvalho Chehab  * ST Microelectronics STTS424, STTS424E02, STTS2002, STTS2004, STTS3000
757ebd8b66SMauro Carvalho Chehab
767ebd8b66SMauro Carvalho Chehab    Datasheets:
777ebd8b66SMauro Carvalho Chehab
787ebd8b66SMauro Carvalho Chehab	http://www.st.com/web/en/resource/technical/document/datasheet/CD00157556.pdf
797ebd8b66SMauro Carvalho Chehab
807ebd8b66SMauro Carvalho Chehab	http://www.st.com/web/en/resource/technical/document/datasheet/CD00157558.pdf
817ebd8b66SMauro Carvalho Chehab
827ebd8b66SMauro Carvalho Chehab	http://www.st.com/web/en/resource/technical/document/datasheet/CD00266638.pdf
837ebd8b66SMauro Carvalho Chehab
847ebd8b66SMauro Carvalho Chehab	http://www.st.com/web/en/resource/technical/document/datasheet/CD00225278.pdf
857ebd8b66SMauro Carvalho Chehab
867ebd8b66SMauro Carvalho Chehab	http://www.st.com/web/en/resource/technical/document/datasheet/DM00076709.pdf
877ebd8b66SMauro Carvalho Chehab
887ebd8b66SMauro Carvalho Chehab  * JEDEC JC 42.4 compliant temperature sensor chips
897ebd8b66SMauro Carvalho Chehab
907ebd8b66SMauro Carvalho Chehab    Datasheet:
917ebd8b66SMauro Carvalho Chehab
927ebd8b66SMauro Carvalho Chehab	http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf
937ebd8b66SMauro Carvalho Chehab
947ebd8b66SMauro Carvalho Chehab
957ebd8b66SMauro Carvalho Chehab  Common for all chips:
967ebd8b66SMauro Carvalho Chehab
977ebd8b66SMauro Carvalho Chehab    Prefix: 'jc42'
987ebd8b66SMauro Carvalho Chehab
997ebd8b66SMauro Carvalho Chehab    Addresses scanned: I2C 0x18 - 0x1f
1007ebd8b66SMauro Carvalho Chehab
1017ebd8b66SMauro Carvalho ChehabAuthor:
1027ebd8b66SMauro Carvalho Chehab	Guenter Roeck <linux@roeck-us.net>
1037ebd8b66SMauro Carvalho Chehab
1047ebd8b66SMauro Carvalho Chehab
1057ebd8b66SMauro Carvalho ChehabDescription
1067ebd8b66SMauro Carvalho Chehab-----------
1077ebd8b66SMauro Carvalho Chehab
1087ebd8b66SMauro Carvalho ChehabThis driver implements support for JEDEC JC 42.4 compliant temperature sensors,
1097ebd8b66SMauro Carvalho Chehabwhich are used on many DDR3 memory modules for mobile devices and servers. Some
1107ebd8b66SMauro Carvalho Chehabsystems use the sensor to prevent memory overheating by automatically throttling
1117ebd8b66SMauro Carvalho Chehabthe memory controller.
1127ebd8b66SMauro Carvalho Chehab
1137ebd8b66SMauro Carvalho ChehabThe driver auto-detects the chips listed above, but can be manually instantiated
1147ebd8b66SMauro Carvalho Chehabto support other JC 42.4 compliant chips.
1157ebd8b66SMauro Carvalho Chehab
1167ebd8b66SMauro Carvalho ChehabExample: the following will load the driver for a generic JC 42.4 compliant
1177ebd8b66SMauro Carvalho Chehabtemperature sensor at address 0x18 on I2C bus #1::
1187ebd8b66SMauro Carvalho Chehab
1197ebd8b66SMauro Carvalho Chehab	# modprobe jc42
1207ebd8b66SMauro Carvalho Chehab	# echo jc42 0x18 > /sys/bus/i2c/devices/i2c-1/new_device
1217ebd8b66SMauro Carvalho Chehab
1227ebd8b66SMauro Carvalho ChehabA JC 42.4 compliant chip supports a single temperature sensor. Minimum, maximum,
1237ebd8b66SMauro Carvalho Chehaband critical temperature can be configured. There are alarms for high, low,
1247ebd8b66SMauro Carvalho Chehaband critical thresholds.
1257ebd8b66SMauro Carvalho Chehab
1267ebd8b66SMauro Carvalho ChehabThere is also an hysteresis to control the thresholds for resetting alarms.
1277ebd8b66SMauro Carvalho ChehabPer JC 42.4 specification, the hysteresis threshold can be configured to 0, 1.5,
1287ebd8b66SMauro Carvalho Chehab3.0, and 6.0 degrees C. Configured hysteresis values will be rounded to those
1297ebd8b66SMauro Carvalho Chehablimits. The chip supports only a single register to configure the hysteresis,
1307ebd8b66SMauro Carvalho Chehabwhich applies to all limits. This register can be written by writing into
1317ebd8b66SMauro Carvalho Chehabtemp1_crit_hyst. Other hysteresis attributes are read-only.
1327ebd8b66SMauro Carvalho Chehab
1337ebd8b66SMauro Carvalho ChehabIf the BIOS has configured the sensor for automatic temperature management, it
1347ebd8b66SMauro Carvalho Chehabis likely that it has locked the registers, i.e., that the temperature limits
1357ebd8b66SMauro Carvalho Chehabcannot be changed.
1367ebd8b66SMauro Carvalho Chehab
1377ebd8b66SMauro Carvalho ChehabSysfs entries
1387ebd8b66SMauro Carvalho Chehab-------------
1397ebd8b66SMauro Carvalho Chehab
1407ebd8b66SMauro Carvalho Chehab======================= ===========================================
1417ebd8b66SMauro Carvalho Chehabtemp1_input		Temperature (RO)
1427ebd8b66SMauro Carvalho Chehabtemp1_min		Minimum temperature (RO or RW)
1437ebd8b66SMauro Carvalho Chehabtemp1_max		Maximum temperature (RO or RW)
1447ebd8b66SMauro Carvalho Chehabtemp1_crit		Critical high temperature (RO or RW)
1457ebd8b66SMauro Carvalho Chehab
1467ebd8b66SMauro Carvalho Chehabtemp1_crit_hyst		Critical hysteresis temperature (RO or RW)
1477ebd8b66SMauro Carvalho Chehabtemp1_max_hyst		Maximum hysteresis temperature (RO)
1487ebd8b66SMauro Carvalho Chehab
1497ebd8b66SMauro Carvalho Chehabtemp1_min_alarm		Temperature low alarm
1507ebd8b66SMauro Carvalho Chehabtemp1_max_alarm		Temperature high alarm
1517ebd8b66SMauro Carvalho Chehabtemp1_crit_alarm	Temperature critical alarm
1527ebd8b66SMauro Carvalho Chehab======================= ===========================================
153