hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
Kernel driver jc42
==================
 
Supported chips:
 
  * Analog Devices ADT7408
 
    Datasheets:
 
   https://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
 
  * Atmel AT30TS00, AT30TS002A/B, AT30TSE004A
 
    Datasheets:
 
   http://www.atmel.com/Images/doc8585.pdf
 
   http://www.atmel.com/Images/doc8711.pdf
 
   http://www.atmel.com/Images/Atmel-8852-SEEPROM-AT30TSE002A-Datasheet.pdf
 
   http://www.atmel.com/Images/Atmel-8868-DTS-AT30TSE004A-Datasheet.pdf
 
  * IDT TSE2002B3, TSE2002GB2, TSE2004GB2, TS3000B3, TS3000GB0, TS3000GB2,
 
   TS3001GB2
 
    Datasheets:
 
   Available from IDT web site
 
  * Maxim MAX6604
 
    Datasheets:
 
   http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
 
  * Microchip MCP9804, MCP9805, MCP9808, MCP98242, MCP98243, MCP98244, MCP9843
 
    Datasheets:
 
   https://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf
 
   https://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
 
   https://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf
 
   https://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf
 
   https://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf
 
   https://ww1.microchip.com/downloads/en/DeviceDoc/22327A.pdf
 
  * NXP Semiconductors SE97, SE97B, SE98, SE98A
 
    Datasheets:
 
   https://www.nxp.com/documents/data_sheet/SE97.pdf
 
   https://www.nxp.com/documents/data_sheet/SE97B.pdf
 
   https://www.nxp.com/documents/data_sheet/SE98.pdf
 
   https://www.nxp.com/documents/data_sheet/SE98A.pdf
 
  * ON Semiconductor CAT34TS02, CAT6095
 
    Datasheet:
 
   https://www.onsemi.com/pub_link/Collateral/CAT34TS02-D.PDF
 
   https://www.onsemi.com/pub/Collateral/CAT6095-D.PDF
 
  * ST Microelectronics STTS424, STTS424E02, STTS2002, STTS2004, STTS3000
 
    Datasheets:
 
   http://www.st.com/web/en/resource/technical/document/datasheet/CD00157556.pdf
 
   http://www.st.com/web/en/resource/technical/document/datasheet/CD00157558.pdf
 
   http://www.st.com/web/en/resource/technical/document/datasheet/CD00266638.pdf
 
   http://www.st.com/web/en/resource/technical/document/datasheet/CD00225278.pdf
 
   http://www.st.com/web/en/resource/technical/document/datasheet/DM00076709.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
======================= ===========================================