Merge tag 'ieee802154-for-davem-2019-11-13' of git://git.kernel.org/pub/scm/linux...
[platform/kernel/linux-rpi.git] / Documentation / hwmon / adm1021.rst
1 Kernel driver adm1021
2 =====================
3
4 Supported chips:
5
6   * Analog Devices ADM1021
7
8     Prefix: 'adm1021'
9
10     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
11
12     Datasheet: Publicly available at the Analog Devices website
13
14   * Analog Devices ADM1021A/ADM1023
15
16     Prefix: 'adm1023'
17
18     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
19
20     Datasheet: Publicly available at the Analog Devices website
21
22   * Genesys Logic GL523SM
23
24     Prefix: 'gl523sm'
25
26     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
27
28     Datasheet:
29
30   * Maxim MAX1617
31
32     Prefix: 'max1617'
33
34     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
35
36     Datasheet: Publicly available at the Maxim website
37
38   * Maxim MAX1617A
39
40     Prefix: 'max1617a'
41
42     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
43
44     Datasheet: Publicly available at the Maxim website
45
46   * National Semiconductor LM84
47
48     Prefix: 'lm84'
49
50     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
51
52     Datasheet: Publicly available at the National Semiconductor website
53
54   * Philips NE1617
55
56     Prefix: 'max1617' (probably detected as a max1617)
57
58     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
59
60     Datasheet: Publicly available at the Philips website
61
62   * Philips NE1617A
63
64     Prefix: 'max1617' (probably detected as a max1617)
65
66     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
67
68     Datasheet: Publicly available at the Philips website
69
70   * TI THMC10
71
72     Prefix: 'thmc10'
73
74     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
75
76     Datasheet: Publicly available at the TI website
77
78   * Onsemi MC1066
79
80     Prefix: 'mc1066'
81
82     Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
83
84     Datasheet: Publicly available at the Onsemi website
85
86
87 Authors:
88         - Frodo Looijaard <frodol@dds.nl>,
89         - Philip Edelbrock <phil@netroedge.com>
90
91 Module Parameters
92 -----------------
93
94 * read_only: int
95   Don't set any values, read only mode
96
97
98 Description
99 -----------
100
101 The chips supported by this driver are very similar. The Maxim MAX1617 is
102 the oldest; it has the problem that it is not very well detectable. The
103 MAX1617A solves that. The ADM1021 is a straight clone of the MAX1617A.
104 Ditto for the THMC10. From here on, we will refer to all these chips as
105 ADM1021-clones.
106
107 The ADM1021 and MAX1617A reports a die code, which is a sort of revision
108 code. This can help us pinpoint problems; it is not very useful
109 otherwise.
110
111 ADM1021-clones implement two temperature sensors. One of them is internal,
112 and measures the temperature of the chip itself; the other is external and
113 is realised in the form of a transistor-like device. A special alarm
114 indicates whether the remote sensor is connected.
115
116 Each sensor has its own low and high limits. When they are crossed, the
117 corresponding alarm is set and remains on as long as the temperature stays
118 out of range. Temperatures are measured in degrees Celsius. Measurements
119 are possible between -65 and +127 degrees, with a resolution of one degree.
120
121 If an alarm triggers, it will remain triggered until the hardware register
122 is read at least once. This means that the cause for the alarm may already
123 have disappeared!
124
125 This driver only updates its values each 1.5 seconds; reading it more often
126 will do no harm, but will return 'old' values. It is possible to make
127 ADM1021-clones do faster measurements, but there is really no good reason
128 for that.
129
130
131 Netburst-based Xeon support
132 ---------------------------
133
134 Some Xeon processors based on the Netburst (early Pentium 4, from 2001 to
135 2003) microarchitecture had real MAX1617, ADM1021, or compatible chips
136 within them, with two temperature sensors. Other Xeon processors of this
137 era (with 400 MHz FSB) had chips with only one temperature sensor.
138
139 If you have such an old Xeon, and you get two valid temperatures when
140 loading the adm1021 module, then things are good.
141
142 If nothing happens when loading the adm1021 module, and you are certain
143 that your specific Xeon processor model includes compatible sensors, you
144 will have to explicitly instantiate the sensor chips from user-space. See
145 method 4 in Documentation/i2c/instantiating-devices.rst. Possible slave
146 addresses are 0x18, 0x1a, 0x29, 0x2b, 0x4c, or 0x4e. It is likely that
147 only temp2 will be correct and temp1 will have to be ignored.
148
149 Previous generations of the Xeon processor (based on Pentium II/III)
150 didn't have these sensors. Next generations of Xeon processors (533 MHz
151 FSB and faster) lost them, until the Core-based generation which
152 introduced integrated digital thermal sensors. These are supported by
153 the coretemp driver.