diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 18:54:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 18:54:36 -0400 |
commit | 22a4427972af371fddb49c0184a93851ad51070d (patch) | |
tree | 2d513301698bc8c5b691caf7268a57f296fdf69d /drivers | |
parent | 9f02d6b7b43d46a74dd385f06090104ecd0fb807 (diff) | |
parent | ede7fbdf526c314850c9f32dd8da1753bf8d0ad5 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/Kconfig | 2 | ||||
-rw-r--r-- | drivers/Makefile | 1 | ||||
-rw-r--r-- | drivers/hwmon/Kconfig | 420 | ||||
-rw-r--r-- | drivers/hwmon/Makefile | 44 | ||||
-rw-r--r-- | drivers/hwmon/adm1021.c (renamed from drivers/i2c/chips/adm1021.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/adm1025.c (renamed from drivers/i2c/chips/adm1025.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/adm1026.c (renamed from drivers/i2c/chips/adm1026.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/adm1031.c (renamed from drivers/i2c/chips/adm1031.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/adm9240.c (renamed from drivers/i2c/chips/adm9240.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/asb100.c (renamed from drivers/i2c/chips/asb100.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/atxp1.c (renamed from drivers/i2c/chips/atxp1.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/ds1621.c (renamed from drivers/i2c/chips/ds1621.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/fscher.c (renamed from drivers/i2c/chips/fscher.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/fscpos.c (renamed from drivers/i2c/chips/fscpos.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/gl518sm.c (renamed from drivers/i2c/chips/gl518sm.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/gl520sm.c (renamed from drivers/i2c/chips/gl520sm.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/it87.c (renamed from drivers/i2c/chips/it87.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm63.c (renamed from drivers/i2c/chips/lm63.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm75.c (renamed from drivers/i2c/chips/lm75.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm75.h (renamed from drivers/i2c/chips/lm75.h) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm77.c (renamed from drivers/i2c/chips/lm77.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm78.c (renamed from drivers/i2c/chips/lm78.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm80.c (renamed from drivers/i2c/chips/lm80.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm83.c (renamed from drivers/i2c/chips/lm83.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm85.c (renamed from drivers/i2c/chips/lm85.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm87.c (renamed from drivers/i2c/chips/lm87.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm90.c (renamed from drivers/i2c/chips/lm90.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/lm92.c (renamed from drivers/i2c/chips/lm92.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/max1619.c (renamed from drivers/i2c/chips/max1619.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/pc87360.c (renamed from drivers/i2c/chips/pc87360.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/sis5595.c (renamed from drivers/i2c/chips/sis5595.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/smsc47b397.c (renamed from drivers/i2c/chips/smsc47b397.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/smsc47m1.c (renamed from drivers/i2c/chips/smsc47m1.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/via686a.c (renamed from drivers/i2c/chips/via686a.c) | 12 | ||||
-rw-r--r-- | drivers/hwmon/w83627ehf.c (renamed from drivers/i2c/chips/w83627ehf.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/w83627hf.c (renamed from drivers/i2c/chips/w83627hf.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/w83781d.c (renamed from drivers/i2c/chips/w83781d.c) | 0 | ||||
-rw-r--r-- | drivers/hwmon/w83l785ts.c (renamed from drivers/i2c/chips/w83l785ts.c) | 0 | ||||
-rw-r--r-- | drivers/i2c/algos/i2c-algo-ite.c | 8 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 4 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-piix4.c | 2 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-sis5595.c | 2 | ||||
-rw-r--r-- | drivers/i2c/chips/Kconfig | 413 | ||||
-rw-r--r-- | drivers/i2c/chips/Makefile | 38 | ||||
-rw-r--r-- | drivers/i2c/chips/eeprom.c | 3 | ||||
-rw-r--r-- | drivers/i2c/chips/m41t00.c | 2 | ||||
-rw-r--r-- | drivers/i2c/chips/max6875.c | 6 | ||||
-rw-r--r-- | drivers/i2c/chips/tps65010.c | 59 | ||||
-rw-r--r-- | drivers/i2c/i2c-core.c | 17 | ||||
-rw-r--r-- | drivers/w1/w1.c | 5 |
50 files changed, 533 insertions, 505 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig index 34efb2150e68..cecab0acc3fe 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig | |||
@@ -44,6 +44,8 @@ source "drivers/i2c/Kconfig" | |||
44 | 44 | ||
45 | source "drivers/w1/Kconfig" | 45 | source "drivers/w1/Kconfig" |
46 | 46 | ||
47 | source "drivers/hwmon/Kconfig" | ||
48 | |||
47 | source "drivers/misc/Kconfig" | 49 | source "drivers/misc/Kconfig" |
48 | 50 | ||
49 | source "drivers/media/Kconfig" | 51 | source "drivers/media/Kconfig" |
diff --git a/drivers/Makefile b/drivers/Makefile index 3167be54fedd..126a851d5653 100644 --- a/drivers/Makefile +++ b/drivers/Makefile | |||
@@ -52,6 +52,7 @@ obj-$(CONFIG_INPUT) += input/ | |||
52 | obj-$(CONFIG_I2O) += message/ | 52 | obj-$(CONFIG_I2O) += message/ |
53 | obj-$(CONFIG_I2C) += i2c/ | 53 | obj-$(CONFIG_I2C) += i2c/ |
54 | obj-$(CONFIG_W1) += w1/ | 54 | obj-$(CONFIG_W1) += w1/ |
55 | obj-$(CONFIG_HWMON) += hwmon/ | ||
55 | obj-$(CONFIG_PHONE) += telephony/ | 56 | obj-$(CONFIG_PHONE) += telephony/ |
56 | obj-$(CONFIG_MD) += md/ | 57 | obj-$(CONFIG_MD) += md/ |
57 | obj-$(CONFIG_BT) += bluetooth/ | 58 | obj-$(CONFIG_BT) += bluetooth/ |
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig new file mode 100644 index 000000000000..140d5f851a5b --- /dev/null +++ b/drivers/hwmon/Kconfig | |||
@@ -0,0 +1,420 @@ | |||
1 | # | ||
2 | # I2C Sensor chip drivers configuration | ||
3 | # | ||
4 | |||
5 | menu "Hardware Monitoring support" | ||
6 | |||
7 | config HWMON | ||
8 | tristate "Hardware Monitoring support" | ||
9 | default y | ||
10 | help | ||
11 | Hardware monitoring devices let you monitor the hardware health | ||
12 | of a system. Most modern motherboards include such a device. It | ||
13 | can include temperature sensors, voltage sensors, fan speed | ||
14 | sensors and various additional features such as the ability to | ||
15 | control the speed of the fans. | ||
16 | |||
17 | config SENSORS_ADM1021 | ||
18 | tristate "Analog Devices ADM1021 and compatibles" | ||
19 | depends on HWMON && I2C | ||
20 | select I2C_SENSOR | ||
21 | help | ||
22 | If you say yes here you get support for Analog Devices ADM1021 | ||
23 | and ADM1023 sensor chips and clones: Maxim MAX1617 and MAX1617A, | ||
24 | Genesys Logic GL523SM, National Semiconductor LM84, TI THMC10, | ||
25 | and the XEON processor built-in sensor. | ||
26 | |||
27 | This driver can also be built as a module. If so, the module | ||
28 | will be called adm1021. | ||
29 | |||
30 | config SENSORS_ADM1025 | ||
31 | tristate "Analog Devices ADM1025 and compatibles" | ||
32 | depends on HWMON && I2C && EXPERIMENTAL | ||
33 | select I2C_SENSOR | ||
34 | help | ||
35 | If you say yes here you get support for Analog Devices ADM1025 | ||
36 | and Philips NE1619 sensor chips. | ||
37 | |||
38 | This driver can also be built as a module. If so, the module | ||
39 | will be called adm1025. | ||
40 | |||
41 | config SENSORS_ADM1026 | ||
42 | tristate "Analog Devices ADM1026 and compatibles" | ||
43 | depends on HWMON && I2C && EXPERIMENTAL | ||
44 | select I2C_SENSOR | ||
45 | help | ||
46 | If you say yes here you get support for Analog Devices ADM1026 | ||
47 | sensor chip. | ||
48 | |||
49 | This driver can also be built as a module. If so, the module | ||
50 | will be called adm1026. | ||
51 | |||
52 | config SENSORS_ADM1031 | ||
53 | tristate "Analog Devices ADM1031 and compatibles" | ||
54 | depends on HWMON && I2C && EXPERIMENTAL | ||
55 | select I2C_SENSOR | ||
56 | help | ||
57 | If you say yes here you get support for Analog Devices ADM1031 | ||
58 | and ADM1030 sensor chips. | ||
59 | |||
60 | This driver can also be built as a module. If so, the module | ||
61 | will be called adm1031. | ||
62 | |||
63 | config SENSORS_ADM9240 | ||
64 | tristate "Analog Devices ADM9240 and compatibles" | ||
65 | depends on HWMON && I2C && EXPERIMENTAL | ||
66 | select I2C_SENSOR | ||
67 | help | ||
68 | If you say yes here you get support for Analog Devices ADM9240, | ||
69 | Dallas DS1780, National Semiconductor LM81 sensor chips. | ||
70 | |||
71 | This driver can also be built as a module. If so, the module | ||
72 | will be called adm9240. | ||
73 | |||
74 | config SENSORS_ASB100 | ||
75 | tristate "Asus ASB100 Bach" | ||
76 | depends on HWMON && I2C && EXPERIMENTAL | ||
77 | select I2C_SENSOR | ||
78 | help | ||
79 | If you say yes here you get support for the ASB100 Bach sensor | ||
80 | chip found on some Asus mainboards. | ||
81 | |||
82 | This driver can also be built as a module. If so, the module | ||
83 | will be called asb100. | ||
84 | |||
85 | config SENSORS_ATXP1 | ||
86 | tristate "Attansic ATXP1 VID controller" | ||
87 | depends on HWMON && I2C && EXPERIMENTAL | ||
88 | select I2C_SENSOR | ||
89 | help | ||
90 | If you say yes here you get support for the Attansic ATXP1 VID | ||
91 | controller. | ||
92 | |||
93 | If your board have such a chip, you are able to control your CPU | ||
94 | core and other voltages. | ||
95 | |||
96 | This driver can also be built as a module. If so, the module | ||
97 | will be called atxp1. | ||
98 | |||
99 | config SENSORS_DS1621 | ||
100 | tristate "Dallas Semiconductor DS1621 and DS1625" | ||
101 | depends on HWMON && I2C && EXPERIMENTAL | ||
102 | select I2C_SENSOR | ||
103 | help | ||
104 | If you say yes here you get support for Dallas Semiconductor | ||
105 | DS1621 and DS1625 sensor chips. | ||
106 | |||
107 | This driver can also be built as a module. If so, the module | ||
108 | will be called ds1621. | ||
109 | |||
110 | config SENSORS_FSCHER | ||
111 | tristate "FSC Hermes" | ||
112 | depends on HWMON && I2C && EXPERIMENTAL | ||
113 | select I2C_SENSOR | ||
114 | help | ||
115 | If you say yes here you get support for Fujitsu Siemens | ||
116 | Computers Hermes sensor chips. | ||
117 | |||
118 | This driver can also be built as a module. If so, the module | ||
119 | will be called fscher. | ||
120 | |||
121 | config SENSORS_FSCPOS | ||
122 | tristate "FSC Poseidon" | ||
123 | depends on HWMON && I2C && EXPERIMENTAL | ||
124 | select I2C_SENSOR | ||
125 | help | ||
126 | If you say yes here you get support for Fujitsu Siemens | ||
127 | Computers Poseidon sensor chips. | ||
128 | |||
129 | This driver can also be built as a module. If so, the module | ||
130 | will be called fscpos. | ||
131 | |||
132 | config SENSORS_GL518SM | ||
133 | tristate "Genesys Logic GL518SM" | ||
134 | depends on HWMON && I2C | ||
135 | select I2C_SENSOR | ||
136 | help | ||
137 | If you say yes here you get support for Genesys Logic GL518SM | ||
138 | sensor chips. | ||
139 | |||
140 | This driver can also be built as a module. If so, the module | ||
141 | will be called gl518sm. | ||
142 | |||
143 | config SENSORS_GL520SM | ||
144 | tristate "Genesys Logic GL520SM" | ||
145 | depends on HWMON && I2C && EXPERIMENTAL | ||
146 | select I2C_SENSOR | ||
147 | help | ||
148 | If you say yes here you get support for Genesys Logic GL520SM | ||
149 | sensor chips. | ||
150 | |||
151 | This driver can also be built as a module. If so, the module | ||
152 | will be called gl520sm. | ||
153 | |||
154 | config SENSORS_IT87 | ||
155 | tristate "ITE IT87xx and compatibles" | ||
156 | depends on HWMON && I2C | ||
157 | select I2C_SENSOR | ||
158 | help | ||
159 | If you say yes here you get support for ITE IT87xx sensor chips | ||
160 | and clones: SiS960. | ||
161 | |||
162 | This driver can also be built as a module. If so, the module | ||
163 | will be called it87. | ||
164 | |||
165 | config SENSORS_LM63 | ||
166 | tristate "National Semiconductor LM63" | ||
167 | depends on HWMON && I2C && EXPERIMENTAL | ||
168 | select I2C_SENSOR | ||
169 | help | ||
170 | If you say yes here you get support for the National Semiconductor | ||
171 | LM63 remote diode digital temperature sensor with integrated fan | ||
172 | control. Such chips are found on the Tyan S4882 (Thunder K8QS Pro) | ||
173 | motherboard, among others. | ||
174 | |||
175 | This driver can also be built as a module. If so, the module | ||
176 | will be called lm63. | ||
177 | |||
178 | config SENSORS_LM75 | ||
179 | tristate "National Semiconductor LM75 and compatibles" | ||
180 | depends on HWMON && I2C | ||
181 | select I2C_SENSOR | ||
182 | help | ||
183 | If you say yes here you get support for National Semiconductor LM75 | ||
184 | sensor chips and clones: Dallas Semiconductor DS75 and DS1775 (in | ||
185 | 9-bit precision mode), and TelCom (now Microchip) TCN75. | ||
186 | |||
187 | The DS75 and DS1775 in 10- to 12-bit precision modes will require | ||
188 | a force module parameter. The driver will not handle the extra | ||
189 | precision anyhow. | ||
190 | |||
191 | This driver can also be built as a module. If so, the module | ||
192 | will be called lm75. | ||
193 | |||
194 | config SENSORS_LM77 | ||
195 | tristate "National Semiconductor LM77" | ||
196 | depends on HWMON && I2C && EXPERIMENTAL | ||
197 | select I2C_SENSOR | ||
198 | help | ||
199 | If you say yes here you get support for National Semiconductor LM77 | ||
200 | sensor chips. | ||
201 | |||
202 | This driver can also be built as a module. If so, the module | ||
203 | will be called lm77. | ||
204 | |||
205 | config SENSORS_LM78 | ||
206 | tristate "National Semiconductor LM78 and compatibles" | ||
207 | depends on HWMON && I2C && EXPERIMENTAL | ||
208 | select I2C_SENSOR | ||
209 | help | ||
210 | If you say yes here you get support for National Semiconductor LM78, | ||
211 | LM78-J and LM79. | ||
212 | |||
213 | This driver can also be built as a module. If so, the module | ||
214 | will be called lm78. | ||
215 | |||
216 | config SENSORS_LM80 | ||
217 | tristate "National Semiconductor LM80" | ||
218 | depends on HWMON && I2C && EXPERIMENTAL | ||
219 | select I2C_SENSOR | ||
220 | help | ||
221 | If you say yes here you get support for National Semiconductor | ||
222 | LM80 sensor chips. | ||
223 | |||
224 | This driver can also be built as a module. If so, the module | ||
225 | will be called lm80. | ||
226 | |||
227 | config SENSORS_LM83 | ||
228 | tristate "National Semiconductor LM83" | ||
229 | depends on HWMON && I2C | ||
230 | select I2C_SENSOR | ||
231 | help | ||
232 | If you say yes here you get support for National Semiconductor | ||
233 | LM83 sensor chips. | ||
234 | |||
235 | This driver can also be built as a module. If so, the module | ||
236 | will be called lm83. | ||
237 | |||
238 | config SENSORS_LM85 | ||
239 | tristate "National Semiconductor LM85 and compatibles" | ||
240 | depends on HWMON && I2C && EXPERIMENTAL | ||
241 | select I2C_SENSOR | ||
242 | help | ||
243 | If you say yes here you get support for National Semiconductor LM85 | ||
244 | sensor chips and clones: ADT7463, EMC6D100, EMC6D102 and ADM1027. | ||
245 | |||
246 | This driver can also be built as a module. If so, the module | ||
247 | will be called lm85. | ||
248 | |||
249 | config SENSORS_LM87 | ||
250 | tristate "National Semiconductor LM87" | ||
251 | depends on HWMON && I2C && EXPERIMENTAL | ||
252 | select I2C_SENSOR | ||
253 | help | ||
254 | If you say yes here you get support for National Semiconductor LM87 | ||
255 | sensor chips. | ||
256 | |||
257 | This driver can also be built as a module. If so, the module | ||
258 | will be called lm87. | ||
259 | |||
260 | config SENSORS_LM90 | ||
261 | tristate "National Semiconductor LM90 and compatibles" | ||
262 | depends on HWMON && I2C | ||
263 | select I2C_SENSOR | ||
264 | help | ||
265 | If you say yes here you get support for National Semiconductor LM90, | ||
266 | LM86, LM89 and LM99, Analog Devices ADM1032 and Maxim MAX6657 and | ||
267 | MAX6658 sensor chips. | ||
268 | |||
269 | The Analog Devices ADT7461 sensor chip is also supported, but only | ||
270 | if found in ADM1032 compatibility mode. | ||
271 | |||
272 | This driver can also be built as a module. If so, the module | ||
273 | will be called lm90. | ||
274 | |||
275 | config SENSORS_LM92 | ||
276 | tristate "National Semiconductor LM92 and compatibles" | ||
277 | depends on HWMON && I2C && EXPERIMENTAL | ||
278 | select I2C_SENSOR | ||
279 | help | ||
280 | If you say yes here you get support for National Semiconductor LM92 | ||
281 | and Maxim MAX6635 sensor chips. | ||
282 | |||
283 | This driver can also be built as a module. If so, the module | ||
284 | will be called lm92. | ||
285 | |||
286 | config SENSORS_MAX1619 | ||
287 | tristate "Maxim MAX1619 sensor chip" | ||
288 | depends on HWMON && I2C && EXPERIMENTAL | ||
289 | select I2C_SENSOR | ||
290 | help | ||
291 | If you say yes here you get support for MAX1619 sensor chip. | ||
292 | |||
293 | This driver can also be built as a module. If so, the module | ||
294 | will be called max1619. | ||
295 | |||
296 | config SENSORS_PC87360 | ||
297 | tristate "National Semiconductor PC87360 family" | ||
298 | depends on HWMON && I2C && EXPERIMENTAL | ||
299 | select I2C_SENSOR | ||
300 | select I2C_ISA | ||
301 | help | ||
302 | If you say yes here you get access to the hardware monitoring | ||
303 | functions of the National Semiconductor PC8736x Super-I/O chips. | ||
304 | The PC87360, PC87363 and PC87364 only have fan monitoring and | ||
305 | control. The PC87365 and PC87366 additionally have voltage and | ||
306 | temperature monitoring. | ||
307 | |||
308 | This driver can also be built as a module. If so, the module | ||
309 | will be called pc87360. | ||
310 | |||
311 | config SENSORS_SIS5595 | ||
312 | tristate "Silicon Integrated Systems Corp. SiS5595" | ||
313 | depends on HWMON && I2C && PCI && EXPERIMENTAL | ||
314 | select I2C_SENSOR | ||
315 | select I2C_ISA | ||
316 | help | ||
317 | If you say yes here you get support for the integrated sensors in | ||
318 | SiS5595 South Bridges. | ||
319 | |||
320 | This driver can also be built as a module. If so, the module | ||
321 | will be called sis5595. | ||
322 | |||
323 | config SENSORS_SMSC47M1 | ||
324 | tristate "SMSC LPC47M10x and compatibles" | ||
325 | depends on HWMON && I2C && EXPERIMENTAL | ||
326 | select I2C_SENSOR | ||
327 | select I2C_ISA | ||
328 | help | ||
329 | If you say yes here you get support for the integrated fan | ||
330 | monitoring and control capabilities of the SMSC LPC47B27x, | ||
331 | LPC47M10x, LPC47M13x, LPC47M14x, LPC47M15x and LPC47M192 chips. | ||
332 | |||
333 | This driver can also be built as a module. If so, the module | ||
334 | will be called smsc47m1. | ||
335 | |||
336 | config SENSORS_SMSC47B397 | ||
337 | tristate "SMSC LPC47B397-NC" | ||
338 | depends on HWMON && I2C && EXPERIMENTAL | ||
339 | select I2C_SENSOR | ||
340 | select I2C_ISA | ||
341 | help | ||
342 | If you say yes here you get support for the SMSC LPC47B397-NC | ||
343 | sensor chip. | ||
344 | |||
345 | This driver can also be built as a module. If so, the module | ||
346 | will be called smsc47b397. | ||
347 | |||
348 | config SENSORS_VIA686A | ||
349 | tristate "VIA686A" | ||
350 | depends on HWMON && I2C && PCI | ||
351 | select I2C_SENSOR | ||
352 | select I2C_ISA | ||
353 | help | ||
354 | If you say yes here you get support for the integrated sensors in | ||
355 | Via 686A/B South Bridges. | ||
356 | |||
357 | This driver can also be built as a module. If so, the module | ||
358 | will be called via686a. | ||
359 | |||
360 | config SENSORS_W83781D | ||
361 | tristate "Winbond W83781D, W83782D, W83783S, W83627HF, Asus AS99127F" | ||
362 | depends on HWMON && I2C | ||
363 | select I2C_SENSOR | ||
364 | help | ||
365 | If you say yes here you get support for the Winbond W8378x series | ||
366 | of sensor chips: the W83781D, W83782D, W83783S and W83627HF, | ||
367 | and the similar Asus AS99127F. | ||
368 | |||
369 | This driver can also be built as a module. If so, the module | ||
370 | will be called w83781d. | ||
371 | |||
372 | config SENSORS_W83L785TS | ||
373 | tristate "Winbond W83L785TS-S" | ||
374 | depends on HWMON && I2C && EXPERIMENTAL | ||
375 | select I2C_SENSOR | ||
376 | help | ||
377 | If you say yes here you get support for the Winbond W83L785TS-S | ||
378 | sensor chip, which is used on the Asus A7N8X, among other | ||
379 | motherboards. | ||
380 | |||
381 | This driver can also be built as a module. If so, the module | ||
382 | will be called w83l785ts. | ||
383 | |||
384 | config SENSORS_W83627HF | ||
385 | tristate "Winbond W83627HF, W83627THF, W83637HF, W83697HF" | ||
386 | depends on HWMON && I2C && EXPERIMENTAL | ||
387 | select I2C_SENSOR | ||
388 | select I2C_ISA | ||
389 | help | ||
390 | If you say yes here you get support for the Winbond W836X7 series | ||
391 | of sensor chips: the W83627HF, W83627THF, W83637HF, and the W83697HF | ||
392 | |||
393 | This driver can also be built as a module. If so, the module | ||
394 | will be called w83627hf. | ||
395 | |||
396 | config SENSORS_W83627EHF | ||
397 | tristate "Winbond W83627EHF" | ||
398 | depends on HWMON && I2C && EXPERIMENTAL | ||
399 | select I2C_SENSOR | ||
400 | select I2C_ISA | ||
401 | help | ||
402 | If you say yes here you get preliminary support for the hardware | ||
403 | monitoring functionality of the Winbond W83627EHF Super-I/O chip. | ||
404 | Only fan and temperature inputs are supported at the moment, while | ||
405 | the chip does much more than that. | ||
406 | |||
407 | This driver can also be built as a module. If so, the module | ||
408 | will be called w83627ehf. | ||
409 | |||
410 | config HWMON_DEBUG_CHIP | ||
411 | bool "Hardware Monitoring Chip debugging messages" | ||
412 | depends on HWMON | ||
413 | default n | ||
414 | help | ||
415 | Say Y here if you want the I2C chip drivers to produce a bunch of | ||
416 | debug messages to the system log. Select this if you are having | ||
417 | a problem with I2C support and want to see more of what is going | ||
418 | on. | ||
419 | |||
420 | endmenu | ||
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile new file mode 100644 index 000000000000..2781403a0236 --- /dev/null +++ b/drivers/hwmon/Makefile | |||
@@ -0,0 +1,44 @@ | |||
1 | # | ||
2 | # Makefile for sensor chip drivers. | ||
3 | # | ||
4 | |||
5 | # asb100, then w83781d go first, as they can override other drivers' addresses. | ||
6 | obj-$(CONFIG_SENSORS_ASB100) += asb100.o | ||
7 | obj-$(CONFIG_SENSORS_W83627HF) += w83627hf.o | ||
8 | obj-$(CONFIG_SENSORS_W83781D) += w83781d.o | ||
9 | |||
10 | obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o | ||
11 | obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o | ||
12 | obj-$(CONFIG_SENSORS_ADM1026) += adm1026.o | ||
13 | obj-$(CONFIG_SENSORS_ADM1031) += adm1031.o | ||
14 | obj-$(CONFIG_SENSORS_ADM9240) += adm9240.o | ||
15 | obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o | ||
16 | obj-$(CONFIG_SENSORS_DS1621) += ds1621.o | ||
17 | obj-$(CONFIG_SENSORS_FSCHER) += fscher.o | ||
18 | obj-$(CONFIG_SENSORS_FSCPOS) += fscpos.o | ||
19 | obj-$(CONFIG_SENSORS_GL518SM) += gl518sm.o | ||
20 | obj-$(CONFIG_SENSORS_GL520SM) += gl520sm.o | ||
21 | obj-$(CONFIG_SENSORS_IT87) += it87.o | ||
22 | obj-$(CONFIG_SENSORS_LM63) += lm63.o | ||
23 | obj-$(CONFIG_SENSORS_LM75) += lm75.o | ||
24 | obj-$(CONFIG_SENSORS_LM77) += lm77.o | ||
25 | obj-$(CONFIG_SENSORS_LM78) += lm78.o | ||
26 | obj-$(CONFIG_SENSORS_LM80) += lm80.o | ||
27 | obj-$(CONFIG_SENSORS_LM83) += lm83.o | ||
28 | obj-$(CONFIG_SENSORS_LM85) += lm85.o | ||
29 | obj-$(CONFIG_SENSORS_LM87) += lm87.o | ||
30 | obj-$(CONFIG_SENSORS_LM90) += lm90.o | ||
31 | obj-$(CONFIG_SENSORS_LM92) += lm92.o | ||
32 | obj-$(CONFIG_SENSORS_MAX1619) += max1619.o | ||
33 | obj-$(CONFIG_SENSORS_PC87360) += pc87360.o | ||
34 | obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o | ||
35 | obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o | ||
36 | obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o | ||
37 | obj-$(CONFIG_SENSORS_VIA686A) += via686a.o | ||
38 | obj-$(CONFIG_SENSORS_W83627EHF) += w83627ehf.o | ||
39 | obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o | ||
40 | |||
41 | ifeq ($(CONFIG_HWMON_DEBUG_CHIP),y) | ||
42 | EXTRA_CFLAGS += -DDEBUG | ||
43 | endif | ||
44 | |||
diff --git a/drivers/i2c/chips/adm1021.c b/drivers/hwmon/adm1021.c index d2c774c32f45..d2c774c32f45 100644 --- a/drivers/i2c/chips/adm1021.c +++ b/drivers/hwmon/adm1021.c | |||
diff --git a/drivers/i2c/chips/adm1025.c b/drivers/hwmon/adm1025.c index e452d0daf906..e452d0daf906 100644 --- a/drivers/i2c/chips/adm1025.c +++ b/drivers/hwmon/adm1025.c | |||
diff --git a/drivers/i2c/chips/adm1026.c b/drivers/hwmon/adm1026.c index 3c85fe150cd7..3c85fe150cd7 100644 --- a/drivers/i2c/chips/adm1026.c +++ b/drivers/hwmon/adm1026.c | |||
diff --git a/drivers/i2c/chips/adm1031.c b/drivers/hwmon/adm1031.c index 9168e983ca1d..9168e983ca1d 100644 --- a/drivers/i2c/chips/adm1031.c +++ b/drivers/hwmon/adm1031.c | |||
diff --git a/drivers/i2c/chips/adm9240.c b/drivers/hwmon/adm9240.c index 5c68e9c311aa..5c68e9c311aa 100644 --- a/drivers/i2c/chips/adm9240.c +++ b/drivers/hwmon/adm9240.c | |||
diff --git a/drivers/i2c/chips/asb100.c b/drivers/hwmon/asb100.c index 70d996d6fe0a..70d996d6fe0a 100644 --- a/drivers/i2c/chips/asb100.c +++ b/drivers/hwmon/asb100.c | |||
diff --git a/drivers/i2c/chips/atxp1.c b/drivers/hwmon/atxp1.c index 0bcf82b4c07b..0bcf82b4c07b 100644 --- a/drivers/i2c/chips/atxp1.c +++ b/drivers/hwmon/atxp1.c | |||
diff --git a/drivers/i2c/chips/ds1621.c b/drivers/hwmon/ds1621.c index 5360d58804f6..5360d58804f6 100644 --- a/drivers/i2c/chips/ds1621.c +++ b/drivers/hwmon/ds1621.c | |||
diff --git a/drivers/i2c/chips/fscher.c b/drivers/hwmon/fscher.c index da411741c2c5..da411741c2c5 100644 --- a/drivers/i2c/chips/fscher.c +++ b/drivers/hwmon/fscher.c | |||
diff --git a/drivers/i2c/chips/fscpos.c b/drivers/hwmon/fscpos.c index 3beaa6191ef4..3beaa6191ef4 100644 --- a/drivers/i2c/chips/fscpos.c +++ b/drivers/hwmon/fscpos.c | |||
diff --git a/drivers/i2c/chips/gl518sm.c b/drivers/hwmon/gl518sm.c index 6bedf729dcf5..6bedf729dcf5 100644 --- a/drivers/i2c/chips/gl518sm.c +++ b/drivers/hwmon/gl518sm.c | |||
diff --git a/drivers/i2c/chips/gl520sm.c b/drivers/hwmon/gl520sm.c index a13a504f5bfa..a13a504f5bfa 100644 --- a/drivers/i2c/chips/gl520sm.c +++ b/drivers/hwmon/gl520sm.c | |||
diff --git a/drivers/i2c/chips/it87.c b/drivers/hwmon/it87.c index db20c9e47393..db20c9e47393 100644 --- a/drivers/i2c/chips/it87.c +++ b/drivers/hwmon/it87.c | |||
diff --git a/drivers/i2c/chips/lm63.c b/drivers/hwmon/lm63.c index 7c6f9ea5a254..7c6f9ea5a254 100644 --- a/drivers/i2c/chips/lm63.c +++ b/drivers/hwmon/lm63.c | |||
diff --git a/drivers/i2c/chips/lm75.c b/drivers/hwmon/lm75.c index 5be164ed278e..5be164ed278e 100644 --- a/drivers/i2c/chips/lm75.c +++ b/drivers/hwmon/lm75.c | |||
diff --git a/drivers/i2c/chips/lm75.h b/drivers/hwmon/lm75.h index 63e3f2fb4c21..63e3f2fb4c21 100644 --- a/drivers/i2c/chips/lm75.h +++ b/drivers/hwmon/lm75.h | |||
diff --git a/drivers/i2c/chips/lm77.c b/drivers/hwmon/lm77.c index b98f44952997..b98f44952997 100644 --- a/drivers/i2c/chips/lm77.c +++ b/drivers/hwmon/lm77.c | |||
diff --git a/drivers/i2c/chips/lm78.c b/drivers/hwmon/lm78.c index 29241469dcba..29241469dcba 100644 --- a/drivers/i2c/chips/lm78.c +++ b/drivers/hwmon/lm78.c | |||
diff --git a/drivers/i2c/chips/lm80.c b/drivers/hwmon/lm80.c index 8100595feb44..8100595feb44 100644 --- a/drivers/i2c/chips/lm80.c +++ b/drivers/hwmon/lm80.c | |||
diff --git a/drivers/i2c/chips/lm83.c b/drivers/hwmon/lm83.c index a49008b444c8..a49008b444c8 100644 --- a/drivers/i2c/chips/lm83.c +++ b/drivers/hwmon/lm83.c | |||
diff --git a/drivers/i2c/chips/lm85.c b/drivers/hwmon/lm85.c index b4d7fd418264..b4d7fd418264 100644 --- a/drivers/i2c/chips/lm85.c +++ b/drivers/hwmon/lm85.c | |||
diff --git a/drivers/i2c/chips/lm87.c b/drivers/hwmon/lm87.c index 1921ed1af182..1921ed1af182 100644 --- a/drivers/i2c/chips/lm87.c +++ b/drivers/hwmon/lm87.c | |||
diff --git a/drivers/i2c/chips/lm90.c b/drivers/hwmon/lm90.c index a67dcadf7cb0..a67dcadf7cb0 100644 --- a/drivers/i2c/chips/lm90.c +++ b/drivers/hwmon/lm90.c | |||
diff --git a/drivers/i2c/chips/lm92.c b/drivers/hwmon/lm92.c index 215c8e40ffdd..215c8e40ffdd 100644 --- a/drivers/i2c/chips/lm92.c +++ b/drivers/hwmon/lm92.c | |||
diff --git a/drivers/i2c/chips/max1619.c b/drivers/hwmon/max1619.c index bf553dcd97d6..bf553dcd97d6 100644 --- a/drivers/i2c/chips/max1619.c +++ b/drivers/hwmon/max1619.c | |||
diff --git a/drivers/i2c/chips/pc87360.c b/drivers/hwmon/pc87360.c index 876c68f3af31..876c68f3af31 100644 --- a/drivers/i2c/chips/pc87360.c +++ b/drivers/hwmon/pc87360.c | |||
diff --git a/drivers/i2c/chips/sis5595.c b/drivers/hwmon/sis5595.c index 6bbfc8fb4f13..6bbfc8fb4f13 100644 --- a/drivers/i2c/chips/sis5595.c +++ b/drivers/hwmon/sis5595.c | |||
diff --git a/drivers/i2c/chips/smsc47b397.c b/drivers/hwmon/smsc47b397.c index 251ac2659554..251ac2659554 100644 --- a/drivers/i2c/chips/smsc47b397.c +++ b/drivers/hwmon/smsc47b397.c | |||
diff --git a/drivers/i2c/chips/smsc47m1.c b/drivers/hwmon/smsc47m1.c index 897117a7213f..897117a7213f 100644 --- a/drivers/i2c/chips/smsc47m1.c +++ b/drivers/hwmon/smsc47m1.c | |||
diff --git a/drivers/i2c/chips/via686a.c b/drivers/hwmon/via686a.c index 137d9b7cacd4..164d47948390 100644 --- a/drivers/i2c/chips/via686a.c +++ b/drivers/hwmon/via686a.c | |||
@@ -1,9 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | via686a.c - Part of lm_sensors, Linux kernel modules | 2 | via686a.c - Part of lm_sensors, Linux kernel modules |
3 | for hardware monitoring | 3 | for hardware monitoring |
4 | 4 | ||
5 | Copyright (c) 1998 - 2002 Frodo Looijaard <frodol@dds.nl>, | 5 | Copyright (c) 1998 - 2002 Frodo Looijaard <frodol@dds.nl>, |
6 | Kyösti Mälkki <kmalkki@cc.hut.fi>, | 6 | Kyösti Mälkki <kmalkki@cc.hut.fi>, |
7 | Mark Studebaker <mdsxyz123@yahoo.com>, | 7 | Mark Studebaker <mdsxyz123@yahoo.com>, |
8 | and Bob Dougherty <bobd@stanford.edu> | 8 | and Bob Dougherty <bobd@stanford.edu> |
9 | (Some conversion-factor data were contributed by Jonathan Teh Soon Yew | 9 | (Some conversion-factor data were contributed by Jonathan Teh Soon Yew |
@@ -171,18 +171,18 @@ static inline u8 FAN_TO_REG(long rpm, int div) | |||
171 | /******** TEMP CONVERSIONS (Bob Dougherty) *********/ | 171 | /******** TEMP CONVERSIONS (Bob Dougherty) *********/ |
172 | /* linear fits from HWMon.cpp (Copyright 1998-2000 Jonathan Teh Soon Yew) | 172 | /* linear fits from HWMon.cpp (Copyright 1998-2000 Jonathan Teh Soon Yew) |
173 | if(temp<169) | 173 | if(temp<169) |
174 | return double(temp)*0.427-32.08; | 174 | return double(temp)*0.427-32.08; |
175 | else if(temp>=169 && temp<=202) | 175 | else if(temp>=169 && temp<=202) |
176 | return double(temp)*0.582-58.16; | 176 | return double(temp)*0.582-58.16; |
177 | else | 177 | else |
178 | return double(temp)*0.924-127.33; | 178 | return double(temp)*0.924-127.33; |
179 | 179 | ||
180 | A fifth-order polynomial fits the unofficial data (provided by Alex van | 180 | A fifth-order polynomial fits the unofficial data (provided by Alex van |
181 | Kaam <darkside@chello.nl>) a bit better. It also give more reasonable | 181 | Kaam <darkside@chello.nl>) a bit better. It also give more reasonable |
182 | numbers on my machine (ie. they agree with what my BIOS tells me). | 182 | numbers on my machine (ie. they agree with what my BIOS tells me). |
183 | Here's the fifth-order fit to the 8-bit data: | 183 | Here's the fifth-order fit to the 8-bit data: |
184 | temp = 1.625093e-10*val^5 - 1.001632e-07*val^4 + 2.457653e-05*val^3 - | 184 | temp = 1.625093e-10*val^5 - 1.001632e-07*val^4 + 2.457653e-05*val^3 - |
185 | 2.967619e-03*val^2 + 2.175144e-01*val - 7.090067e+0. | 185 | 2.967619e-03*val^2 + 2.175144e-01*val - 7.090067e+0. |
186 | 186 | ||
187 | (2000-10-25- RFD: thanks to Uwe Andersen <uandersen@mayah.com> for | 187 | (2000-10-25- RFD: thanks to Uwe Andersen <uandersen@mayah.com> for |
188 | finding my typos in this formula!) | 188 | finding my typos in this formula!) |
diff --git a/drivers/i2c/chips/w83627ehf.c b/drivers/hwmon/w83627ehf.c index 8a40b6976e1a..8a40b6976e1a 100644 --- a/drivers/i2c/chips/w83627ehf.c +++ b/drivers/hwmon/w83627ehf.c | |||
diff --git a/drivers/i2c/chips/w83627hf.c b/drivers/hwmon/w83627hf.c index bd87a42e068a..bd87a42e068a 100644 --- a/drivers/i2c/chips/w83627hf.c +++ b/drivers/hwmon/w83627hf.c | |||
diff --git a/drivers/i2c/chips/w83781d.c b/drivers/hwmon/w83781d.c index 0bb131ce09eb..0bb131ce09eb 100644 --- a/drivers/i2c/chips/w83781d.c +++ b/drivers/hwmon/w83781d.c | |||
diff --git a/drivers/i2c/chips/w83l785ts.c b/drivers/hwmon/w83l785ts.c index 4469d52aba4c..4469d52aba4c 100644 --- a/drivers/i2c/chips/w83l785ts.c +++ b/drivers/hwmon/w83l785ts.c | |||
diff --git a/drivers/i2c/algos/i2c-algo-ite.c b/drivers/i2c/algos/i2c-algo-ite.c index 68e9e6832ca0..e6cae39f47aa 100644 --- a/drivers/i2c/algos/i2c-algo-ite.c +++ b/drivers/i2c/algos/i2c-algo-ite.c | |||
@@ -208,7 +208,7 @@ static int test_bus(struct i2c_algo_iic_data *adap, char *name) { | |||
208 | goto bailout; | 208 | goto bailout; |
209 | } | 209 | } |
210 | sdalo(adap); | 210 | sdalo(adap); |
211 | printk("test_bus:1 scl: %d sda: %d \n",getscl(adap), | 211 | printk("test_bus:1 scl: %d sda: %d\n", getscl(adap), |
212 | getsda(adap)); | 212 | getsda(adap)); |
213 | if ( 0 != getsda(adap) ) { | 213 | if ( 0 != getsda(adap) ) { |
214 | printk("test_bus: %s SDA stuck high!\n",name); | 214 | printk("test_bus: %s SDA stuck high!\n",name); |
@@ -221,7 +221,7 @@ static int test_bus(struct i2c_algo_iic_data *adap, char *name) { | |||
221 | goto bailout; | 221 | goto bailout; |
222 | } | 222 | } |
223 | sdahi(adap); | 223 | sdahi(adap); |
224 | printk("test_bus:2 scl: %d sda: %d \n",getscl(adap), | 224 | printk("test_bus:2 scl: %d sda: %d\n", getscl(adap), |
225 | getsda(adap)); | 225 | getsda(adap)); |
226 | if ( 0 == getsda(adap) ) { | 226 | if ( 0 == getsda(adap) ) { |
227 | printk("test_bus: %s SDA stuck low!\n",name); | 227 | printk("test_bus: %s SDA stuck low!\n",name); |
@@ -234,7 +234,7 @@ static int test_bus(struct i2c_algo_iic_data *adap, char *name) { | |||
234 | goto bailout; | 234 | goto bailout; |
235 | } | 235 | } |
236 | scllo(adap); | 236 | scllo(adap); |
237 | printk("test_bus:3 scl: %d sda: %d \n",getscl(adap), | 237 | printk("test_bus:3 scl: %d sda: %d\n", getscl(adap), |
238 | getsda(adap)); | 238 | getsda(adap)); |
239 | if ( 0 != getscl(adap) ) { | 239 | if ( 0 != getscl(adap) ) { |
240 | 240 | ||
@@ -247,7 +247,7 @@ static int test_bus(struct i2c_algo_iic_data *adap, char *name) { | |||
247 | goto bailout; | 247 | goto bailout; |
248 | } | 248 | } |
249 | sclhi(adap); | 249 | sclhi(adap); |
250 | printk("test_bus:4 scl: %d sda: %d \n",getscl(adap), | 250 | printk("test_bus:4 scl: %d sda: %d\n", getscl(adap), |
251 | getsda(adap)); | 251 | getsda(adap)); |
252 | if ( 0 == getscl(adap) ) { | 252 | if ( 0 == getscl(adap) ) { |
253 | printk("test_bus: %s SCL stuck low!\n",name); | 253 | printk("test_bus: %s SCL stuck low!\n",name); |
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index 45e6efb1dcd1..0ab7e37f5b00 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -194,7 +194,7 @@ static int i801_transaction(void) | |||
194 | /* Make sure the SMBus host is ready to start transmitting */ | 194 | /* Make sure the SMBus host is ready to start transmitting */ |
195 | /* 0x1f = Failed, Bus_Err, Dev_Err, Intr, Host_Busy */ | 195 | /* 0x1f = Failed, Bus_Err, Dev_Err, Intr, Host_Busy */ |
196 | if ((temp = (0x1f & inb_p(SMBHSTSTS))) != 0x00) { | 196 | if ((temp = (0x1f & inb_p(SMBHSTSTS))) != 0x00) { |
197 | dev_dbg(&I801_dev->dev, "SMBus busy (%02x). Resetting... \n", | 197 | dev_dbg(&I801_dev->dev, "SMBus busy (%02x). Resetting...\n", |
198 | temp); | 198 | temp); |
199 | outb_p(temp, SMBHSTSTS); | 199 | outb_p(temp, SMBHSTSTS); |
200 | if ((temp = (0x1f & inb_p(SMBHSTSTS))) != 0x00) { | 200 | if ((temp = (0x1f & inb_p(SMBHSTSTS))) != 0x00) { |
@@ -315,7 +315,7 @@ static int i801_block_transaction(union i2c_smbus_data *data, char read_write, | |||
315 | } | 315 | } |
316 | if (temp & errmask) { | 316 | if (temp & errmask) { |
317 | dev_dbg(&I801_dev->dev, "SMBus busy (%02x). " | 317 | dev_dbg(&I801_dev->dev, "SMBus busy (%02x). " |
318 | "Resetting... \n", temp); | 318 | "Resetting...\n", temp); |
319 | outb_p(temp, SMBHSTSTS); | 319 | outb_p(temp, SMBHSTSTS); |
320 | if (((temp = inb_p(SMBHSTSTS)) & errmask) != 0x00) { | 320 | if (((temp = inb_p(SMBHSTSTS)) & errmask) != 0x00) { |
321 | dev_err(&I801_dev->dev, | 321 | dev_err(&I801_dev->dev, |
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 1f80ba9da6f1..6d34ee381ce1 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c | |||
@@ -243,7 +243,7 @@ static int piix4_transaction(void) | |||
243 | /* Make sure the SMBus host is ready to start transmitting */ | 243 | /* Make sure the SMBus host is ready to start transmitting */ |
244 | if ((temp = inb_p(SMBHSTSTS)) != 0x00) { | 244 | if ((temp = inb_p(SMBHSTSTS)) != 0x00) { |
245 | dev_dbg(&piix4_adapter.dev, "SMBus busy (%02x). " | 245 | dev_dbg(&piix4_adapter.dev, "SMBus busy (%02x). " |
246 | "Resetting... \n", temp); | 246 | "Resetting...\n", temp); |
247 | outb_p(temp, SMBHSTSTS); | 247 | outb_p(temp, SMBHSTSTS); |
248 | if ((temp = inb_p(SMBHSTSTS)) != 0x00) { | 248 | if ((temp = inb_p(SMBHSTSTS)) != 0x00) { |
249 | dev_err(&piix4_adapter.dev, "Failed! (%02x)\n", temp); | 249 | dev_err(&piix4_adapter.dev, "Failed! (%02x)\n", temp); |
diff --git a/drivers/i2c/busses/i2c-sis5595.c b/drivers/i2c/busses/i2c-sis5595.c index 2b5911cfb7b5..bbd5e4e52f09 100644 --- a/drivers/i2c/busses/i2c-sis5595.c +++ b/drivers/i2c/busses/i2c-sis5595.c | |||
@@ -228,7 +228,7 @@ static int sis5595_transaction(struct i2c_adapter *adap) | |||
228 | /* Make sure the SMBus host is ready to start transmitting */ | 228 | /* Make sure the SMBus host is ready to start transmitting */ |
229 | temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8); | 229 | temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8); |
230 | if (temp != 0x00) { | 230 | if (temp != 0x00) { |
231 | dev_dbg(&adap->dev, "SMBus busy (%04x). Resetting... \n", temp); | 231 | dev_dbg(&adap->dev, "SMBus busy (%04x). Resetting...\n", temp); |
232 | sis5595_write(SMB_STS_LO, temp & 0xff); | 232 | sis5595_write(SMB_STS_LO, temp & 0xff); |
233 | sis5595_write(SMB_STS_HI, temp >> 8); | 233 | sis5595_write(SMB_STS_HI, temp >> 8); |
234 | if ((temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8)) != 0x00) { | 234 | if ((temp = sis5595_read(SMB_STS_LO) + (sis5595_read(SMB_STS_HI) << 8)) != 0x00) { |
diff --git a/drivers/i2c/chips/Kconfig b/drivers/i2c/chips/Kconfig index a0982da09803..43f70dbfc03f 100644 --- a/drivers/i2c/chips/Kconfig +++ b/drivers/i2c/chips/Kconfig | |||
@@ -1,409 +1,12 @@ | |||
1 | # | 1 | # |
2 | # I2C Sensor and "other" chip configuration | 2 | # Miscellaneous I2C chip drivers configuration |
3 | # | 3 | # |
4 | 4 | ||
5 | menu "Hardware Sensors Chip support" | ||
6 | depends on I2C | ||
7 | |||
8 | config I2C_SENSOR | 5 | config I2C_SENSOR |
9 | tristate | 6 | tristate |
10 | default n | 7 | default n |
11 | 8 | ||
12 | config SENSORS_ADM1021 | 9 | menu "Miscellaneous I2C Chip support" |
13 | tristate "Analog Devices ADM1021 and compatibles" | ||
14 | depends on I2C | ||
15 | select I2C_SENSOR | ||
16 | help | ||
17 | If you say yes here you get support for Analog Devices ADM1021 | ||
18 | and ADM1023 sensor chips and clones: Maxim MAX1617 and MAX1617A, | ||
19 | Genesys Logic GL523SM, National Semiconductor LM84, TI THMC10, | ||
20 | and the XEON processor built-in sensor. | ||
21 | |||
22 | This driver can also be built as a module. If so, the module | ||
23 | will be called adm1021. | ||
24 | |||
25 | config SENSORS_ADM1025 | ||
26 | tristate "Analog Devices ADM1025 and compatibles" | ||
27 | depends on I2C && EXPERIMENTAL | ||
28 | select I2C_SENSOR | ||
29 | help | ||
30 | If you say yes here you get support for Analog Devices ADM1025 | ||
31 | and Philips NE1619 sensor chips. | ||
32 | |||
33 | This driver can also be built as a module. If so, the module | ||
34 | will be called adm1025. | ||
35 | |||
36 | config SENSORS_ADM1026 | ||
37 | tristate "Analog Devices ADM1026 and compatibles" | ||
38 | depends on I2C && EXPERIMENTAL | ||
39 | select I2C_SENSOR | ||
40 | help | ||
41 | If you say yes here you get support for Analog Devices ADM1026 | ||
42 | sensor chip. | ||
43 | |||
44 | This driver can also be built as a module. If so, the module | ||
45 | will be called adm1026. | ||
46 | |||
47 | config SENSORS_ADM1031 | ||
48 | tristate "Analog Devices ADM1031 and compatibles" | ||
49 | depends on I2C && EXPERIMENTAL | ||
50 | select I2C_SENSOR | ||
51 | help | ||
52 | If you say yes here you get support for Analog Devices ADM1031 | ||
53 | and ADM1030 sensor chips. | ||
54 | |||
55 | This driver can also be built as a module. If so, the module | ||
56 | will be called adm1031. | ||
57 | |||
58 | config SENSORS_ADM9240 | ||
59 | tristate "Analog Devices ADM9240 and compatibles" | ||
60 | depends on I2C && EXPERIMENTAL | ||
61 | select I2C_SENSOR | ||
62 | help | ||
63 | If you say yes here you get support for Analog Devices ADM9240, | ||
64 | Dallas DS1780, National Semiconductor LM81 sensor chips. | ||
65 | |||
66 | This driver can also be built as a module. If so, the module | ||
67 | will be called adm9240. | ||
68 | |||
69 | config SENSORS_ASB100 | ||
70 | tristate "Asus ASB100 Bach" | ||
71 | depends on I2C && EXPERIMENTAL | ||
72 | select I2C_SENSOR | ||
73 | help | ||
74 | If you say yes here you get support for the ASB100 Bach sensor | ||
75 | chip found on some Asus mainboards. | ||
76 | |||
77 | This driver can also be built as a module. If so, the module | ||
78 | will be called asb100. | ||
79 | |||
80 | config SENSORS_ATXP1 | ||
81 | tristate "Attansic ATXP1 VID controller" | ||
82 | depends on I2C && EXPERIMENTAL | ||
83 | help | ||
84 | If you say yes here you get support for the Attansic ATXP1 VID | ||
85 | controller. | ||
86 | |||
87 | If your board have such a chip, you are able to control your CPU | ||
88 | core and other voltages. | ||
89 | |||
90 | This driver can also be built as a module. If so, the module | ||
91 | will be called atxp1. | ||
92 | |||
93 | config SENSORS_DS1621 | ||
94 | tristate "Dallas Semiconductor DS1621 and DS1625" | ||
95 | depends on I2C && EXPERIMENTAL | ||
96 | select I2C_SENSOR | ||
97 | help | ||
98 | If you say yes here you get support for Dallas Semiconductor | ||
99 | DS1621 and DS1625 sensor chips. | ||
100 | |||
101 | This driver can also be built as a module. If so, the module | ||
102 | will be called ds1621. | ||
103 | |||
104 | config SENSORS_FSCHER | ||
105 | tristate "FSC Hermes" | ||
106 | depends on I2C && EXPERIMENTAL | ||
107 | select I2C_SENSOR | ||
108 | help | ||
109 | If you say yes here you get support for Fujitsu Siemens | ||
110 | Computers Hermes sensor chips. | ||
111 | |||
112 | This driver can also be built as a module. If so, the module | ||
113 | will be called fscher. | ||
114 | |||
115 | config SENSORS_FSCPOS | ||
116 | tristate "FSC Poseidon" | ||
117 | depends on I2C && EXPERIMENTAL | ||
118 | select I2C_SENSOR | ||
119 | help | ||
120 | If you say yes here you get support for Fujitsu Siemens | ||
121 | Computers Poseidon sensor chips. | ||
122 | |||
123 | This driver can also be built as a module. If so, the module | ||
124 | will be called fscpos. | ||
125 | |||
126 | config SENSORS_GL518SM | ||
127 | tristate "Genesys Logic GL518SM" | ||
128 | depends on I2C | ||
129 | select I2C_SENSOR | ||
130 | help | ||
131 | If you say yes here you get support for Genesys Logic GL518SM | ||
132 | sensor chips. | ||
133 | |||
134 | This driver can also be built as a module. If so, the module | ||
135 | will be called gl518sm. | ||
136 | |||
137 | config SENSORS_GL520SM | ||
138 | tristate "Genesys Logic GL520SM" | ||
139 | depends on I2C && EXPERIMENTAL | ||
140 | select I2C_SENSOR | ||
141 | help | ||
142 | If you say yes here you get support for Genesys Logic GL520SM | ||
143 | sensor chips. | ||
144 | |||
145 | This driver can also be built as a module. If so, the module | ||
146 | will be called gl520sm. | ||
147 | |||
148 | config SENSORS_IT87 | ||
149 | tristate "ITE IT87xx and compatibles" | ||
150 | depends on I2C | ||
151 | select I2C_SENSOR | ||
152 | help | ||
153 | If you say yes here you get support for ITE IT87xx sensor chips | ||
154 | and clones: SiS960. | ||
155 | |||
156 | This driver can also be built as a module. If so, the module | ||
157 | will be called it87. | ||
158 | |||
159 | config SENSORS_LM63 | ||
160 | tristate "National Semiconductor LM63" | ||
161 | depends on I2C && EXPERIMENTAL | ||
162 | select I2C_SENSOR | ||
163 | help | ||
164 | If you say yes here you get support for the National Semiconductor | ||
165 | LM63 remote diode digital temperature sensor with integrated fan | ||
166 | control. Such chips are found on the Tyan S4882 (Thunder K8QS Pro) | ||
167 | motherboard, among others. | ||
168 | |||
169 | This driver can also be built as a module. If so, the module | ||
170 | will be called lm63. | ||
171 | |||
172 | config SENSORS_LM75 | ||
173 | tristate "National Semiconductor LM75 and compatibles" | ||
174 | depends on I2C | ||
175 | select I2C_SENSOR | ||
176 | help | ||
177 | If you say yes here you get support for National Semiconductor LM75 | ||
178 | sensor chips and clones: Dallas Semiconductor DS75 and DS1775 (in | ||
179 | 9-bit precision mode), and TelCom (now Microchip) TCN75. | ||
180 | |||
181 | The DS75 and DS1775 in 10- to 12-bit precision modes will require | ||
182 | a force module parameter. The driver will not handle the extra | ||
183 | precision anyhow. | ||
184 | |||
185 | This driver can also be built as a module. If so, the module | ||
186 | will be called lm75. | ||
187 | |||
188 | config SENSORS_LM77 | ||
189 | tristate "National Semiconductor LM77" | ||
190 | depends on I2C && EXPERIMENTAL | ||
191 | select I2C_SENSOR | ||
192 | help | ||
193 | If you say yes here you get support for National Semiconductor LM77 | ||
194 | sensor chips. | ||
195 | |||
196 | This driver can also be built as a module. If so, the module | ||
197 | will be called lm77. | ||
198 | |||
199 | config SENSORS_LM78 | ||
200 | tristate "National Semiconductor LM78 and compatibles" | ||
201 | depends on I2C && EXPERIMENTAL | ||
202 | select I2C_SENSOR | ||
203 | help | ||
204 | If you say yes here you get support for National Semiconductor LM78, | ||
205 | LM78-J and LM79. | ||
206 | |||
207 | This driver can also be built as a module. If so, the module | ||
208 | will be called lm78. | ||
209 | |||
210 | config SENSORS_LM80 | ||
211 | tristate "National Semiconductor LM80" | ||
212 | depends on I2C && EXPERIMENTAL | ||
213 | select I2C_SENSOR | ||
214 | help | ||
215 | If you say yes here you get support for National Semiconductor | ||
216 | LM80 sensor chips. | ||
217 | |||
218 | This driver can also be built as a module. If so, the module | ||
219 | will be called lm80. | ||
220 | |||
221 | config SENSORS_LM83 | ||
222 | tristate "National Semiconductor LM83" | ||
223 | depends on I2C | ||
224 | select I2C_SENSOR | ||
225 | help | ||
226 | If you say yes here you get support for National Semiconductor | ||
227 | LM83 sensor chips. | ||
228 | |||
229 | This driver can also be built as a module. If so, the module | ||
230 | will be called lm83. | ||
231 | |||
232 | config SENSORS_LM85 | ||
233 | tristate "National Semiconductor LM85 and compatibles" | ||
234 | depends on I2C && EXPERIMENTAL | ||
235 | select I2C_SENSOR | ||
236 | help | ||
237 | If you say yes here you get support for National Semiconductor LM85 | ||
238 | sensor chips and clones: ADT7463, EMC6D100, EMC6D102 and ADM1027. | ||
239 | |||
240 | This driver can also be built as a module. If so, the module | ||
241 | will be called lm85. | ||
242 | |||
243 | config SENSORS_LM87 | ||
244 | tristate "National Semiconductor LM87" | ||
245 | depends on I2C && EXPERIMENTAL | ||
246 | select I2C_SENSOR | ||
247 | help | ||
248 | If you say yes here you get support for National Semiconductor LM87 | ||
249 | sensor chips. | ||
250 | |||
251 | This driver can also be built as a module. If so, the module | ||
252 | will be called lm87. | ||
253 | |||
254 | config SENSORS_LM90 | ||
255 | tristate "National Semiconductor LM90 and compatibles" | ||
256 | depends on I2C | ||
257 | select I2C_SENSOR | ||
258 | help | ||
259 | If you say yes here you get support for National Semiconductor LM90, | ||
260 | LM86, LM89 and LM99, Analog Devices ADM1032 and Maxim MAX6657 and | ||
261 | MAX6658 sensor chips. | ||
262 | |||
263 | The Analog Devices ADT7461 sensor chip is also supported, but only | ||
264 | if found in ADM1032 compatibility mode. | ||
265 | |||
266 | This driver can also be built as a module. If so, the module | ||
267 | will be called lm90. | ||
268 | |||
269 | config SENSORS_LM92 | ||
270 | tristate "National Semiconductor LM92 and compatibles" | ||
271 | depends on I2C && EXPERIMENTAL | ||
272 | select I2C_SENSOR | ||
273 | help | ||
274 | If you say yes here you get support for National Semiconductor LM92 | ||
275 | and Maxim MAX6635 sensor chips. | ||
276 | |||
277 | This driver can also be built as a module. If so, the module | ||
278 | will be called lm92. | ||
279 | |||
280 | config SENSORS_MAX1619 | ||
281 | tristate "Maxim MAX1619 sensor chip" | ||
282 | depends on I2C && EXPERIMENTAL | ||
283 | select I2C_SENSOR | ||
284 | help | ||
285 | If you say yes here you get support for MAX1619 sensor chip. | ||
286 | |||
287 | This driver can also be built as a module. If so, the module | ||
288 | will be called max1619. | ||
289 | |||
290 | config SENSORS_PC87360 | ||
291 | tristate "National Semiconductor PC87360 family" | ||
292 | depends on I2C && EXPERIMENTAL | ||
293 | select I2C_SENSOR | ||
294 | select I2C_ISA | ||
295 | help | ||
296 | If you say yes here you get access to the hardware monitoring | ||
297 | functions of the National Semiconductor PC8736x Super-I/O chips. | ||
298 | The PC87360, PC87363 and PC87364 only have fan monitoring and | ||
299 | control. The PC87365 and PC87366 additionally have voltage and | ||
300 | temperature monitoring. | ||
301 | |||
302 | This driver can also be built as a module. If so, the module | ||
303 | will be called pc87360. | ||
304 | |||
305 | config SENSORS_SMSC47B397 | ||
306 | tristate "SMSC LPC47B397-NC" | ||
307 | depends on I2C && EXPERIMENTAL | ||
308 | select I2C_SENSOR | ||
309 | select I2C_ISA | ||
310 | help | ||
311 | If you say yes here you get support for the SMSC LPC47B397-NC | ||
312 | sensor chip. | ||
313 | |||
314 | This driver can also be built as a module. If so, the module | ||
315 | will be called smsc47b397. | ||
316 | |||
317 | config SENSORS_SIS5595 | ||
318 | tristate "Silicon Integrated Systems Corp. SiS5595" | ||
319 | depends on I2C && PCI && EXPERIMENTAL | ||
320 | select I2C_SENSOR | ||
321 | select I2C_ISA | ||
322 | help | ||
323 | If you say yes here you get support for the integrated sensors in | ||
324 | SiS5595 South Bridges. | ||
325 | |||
326 | This driver can also be built as a module. If so, the module | ||
327 | will be called sis5595. | ||
328 | |||
329 | config SENSORS_SMSC47M1 | ||
330 | tristate "SMSC LPC47M10x and compatibles" | ||
331 | depends on I2C && EXPERIMENTAL | ||
332 | select I2C_SENSOR | ||
333 | select I2C_ISA | ||
334 | help | ||
335 | If you say yes here you get support for the integrated fan | ||
336 | monitoring and control capabilities of the SMSC LPC47B27x, | ||
337 | LPC47M10x, LPC47M13x, LPC47M14x, LPC47M15x and LPC47M192 chips. | ||
338 | |||
339 | This driver can also be built as a module. If so, the module | ||
340 | will be called smsc47m1. | ||
341 | |||
342 | config SENSORS_VIA686A | ||
343 | tristate "VIA686A" | ||
344 | depends on I2C && PCI | ||
345 | select I2C_SENSOR | ||
346 | select I2C_ISA | ||
347 | help | ||
348 | If you say yes here you get support for the integrated sensors in | ||
349 | Via 686A/B South Bridges. | ||
350 | |||
351 | This driver can also be built as a module. If so, the module | ||
352 | will be called via686a. | ||
353 | |||
354 | config SENSORS_W83781D | ||
355 | tristate "Winbond W83781D, W83782D, W83783S, W83627HF, Asus AS99127F" | ||
356 | depends on I2C | ||
357 | select I2C_SENSOR | ||
358 | help | ||
359 | If you say yes here you get support for the Winbond W8378x series | ||
360 | of sensor chips: the W83781D, W83782D, W83783S and W83627HF, | ||
361 | and the similar Asus AS99127F. | ||
362 | |||
363 | This driver can also be built as a module. If so, the module | ||
364 | will be called w83781d. | ||
365 | |||
366 | config SENSORS_W83L785TS | ||
367 | tristate "Winbond W83L785TS-S" | ||
368 | depends on I2C && EXPERIMENTAL | ||
369 | select I2C_SENSOR | ||
370 | help | ||
371 | If you say yes here you get support for the Winbond W83L785TS-S | ||
372 | sensor chip, which is used on the Asus A7N8X, among other | ||
373 | motherboards. | ||
374 | |||
375 | This driver can also be built as a module. If so, the module | ||
376 | will be called w83l785ts. | ||
377 | |||
378 | config SENSORS_W83627HF | ||
379 | tristate "Winbond W83627HF, W83627THF, W83637HF, W83697HF" | ||
380 | depends on I2C && EXPERIMENTAL | ||
381 | select I2C_SENSOR | ||
382 | select I2C_ISA | ||
383 | help | ||
384 | If you say yes here you get support for the Winbond W836X7 series | ||
385 | of sensor chips: the W83627HF, W83627THF, W83637HF, and the W83697HF | ||
386 | |||
387 | This driver can also be built as a module. If so, the module | ||
388 | will be called w83627hf. | ||
389 | |||
390 | config SENSORS_W83627EHF | ||
391 | tristate "Winbond W83627EHF" | ||
392 | depends on I2C && EXPERIMENTAL | ||
393 | select I2C_SENSOR | ||
394 | select I2C_ISA | ||
395 | help | ||
396 | If you say yes here you get preliminary support for the hardware | ||
397 | monitoring functionality of the Winbond W83627EHF Super-I/O chip. | ||
398 | Only fan and temperature inputs are supported at the moment, while | ||
399 | the chip does much more than that. | ||
400 | |||
401 | This driver can also be built as a module. If so, the module | ||
402 | will be called w83627ehf. | ||
403 | |||
404 | endmenu | ||
405 | |||
406 | menu "Other I2C Chip support" | ||
407 | depends on I2C | 10 | depends on I2C |
408 | 11 | ||
409 | config SENSORS_DS1337 | 12 | config SENSORS_DS1337 |
@@ -509,7 +112,6 @@ config TPS65010 | |||
509 | This driver can also be built as a module. If so, the module | 112 | This driver can also be built as a module. If so, the module |
510 | will be called tps65010. | 113 | will be called tps65010. |
511 | 114 | ||
512 | |||
513 | config SENSORS_M41T00 | 115 | config SENSORS_M41T00 |
514 | tristate "ST M41T00 RTC chip" | 116 | tristate "ST M41T00 RTC chip" |
515 | depends on I2C && PPC32 | 117 | depends on I2C && PPC32 |
@@ -520,13 +122,16 @@ config SENSORS_M41T00 | |||
520 | will be called m41t00. | 122 | will be called m41t00. |
521 | 123 | ||
522 | config SENSORS_MAX6875 | 124 | config SENSORS_MAX6875 |
523 | tristate "MAXIM MAX6875 Power supply supervisor" | 125 | tristate "Maxim MAX6875 Power supply supervisor" |
524 | depends on I2C && EXPERIMENTAL | 126 | depends on I2C && EXPERIMENTAL |
525 | help | 127 | help |
526 | If you say yes here you get support for the MAX6875 | 128 | If you say yes here you get support for the Maxim MAX6875 |
527 | EEPROM-Programmable, Hex/Quad, Power-Suppy Sequencers/Supervisors. | 129 | EEPROM-programmable, quad power-supply sequencer/supervisor. |
130 | |||
131 | This provides an interface to program the EEPROM and reset the chip. | ||
528 | 132 | ||
529 | This provides a interface to program the EEPROM and reset the chip. | 133 | This driver also supports the Maxim MAX6874 hex power-supply |
134 | sequencer/supervisor if found at a compatible address. | ||
530 | 135 | ||
531 | This driver can also be built as a module. If so, the module | 136 | This driver can also be built as a module. If so, the module |
532 | will be called max6875. | 137 | will be called max6875. |
diff --git a/drivers/i2c/chips/Makefile b/drivers/i2c/chips/Makefile index b5e6d2f84f97..a876dd42b860 100644 --- a/drivers/i2c/chips/Makefile +++ b/drivers/i2c/chips/Makefile | |||
@@ -1,52 +1,16 @@ | |||
1 | # | 1 | # |
2 | # Makefile for sensor and "other" I2C chip drivers. | 2 | # Makefile for miscellaneous I2C chip drivers. |
3 | # | 3 | # |
4 | 4 | ||
5 | # asb100, then w83781d go first, as they can override other drivers' addresses. | ||
6 | obj-$(CONFIG_SENSORS_ASB100) += asb100.o | ||
7 | obj-$(CONFIG_SENSORS_W83627HF) += w83627hf.o | ||
8 | obj-$(CONFIG_SENSORS_W83781D) += w83781d.o | ||
9 | |||
10 | obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o | ||
11 | obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o | ||
12 | obj-$(CONFIG_SENSORS_ADM1026) += adm1026.o | ||
13 | obj-$(CONFIG_SENSORS_ADM1031) += adm1031.o | ||
14 | obj-$(CONFIG_SENSORS_ADM9240) += adm9240.o | ||
15 | obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o | ||
16 | obj-$(CONFIG_SENSORS_DS1337) += ds1337.o | 5 | obj-$(CONFIG_SENSORS_DS1337) += ds1337.o |
17 | obj-$(CONFIG_SENSORS_DS1374) += ds1374.o | 6 | obj-$(CONFIG_SENSORS_DS1374) += ds1374.o |
18 | obj-$(CONFIG_SENSORS_DS1621) += ds1621.o | ||
19 | obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o | 7 | obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o |
20 | obj-$(CONFIG_SENSORS_FSCHER) += fscher.o | ||
21 | obj-$(CONFIG_SENSORS_FSCPOS) += fscpos.o | ||
22 | obj-$(CONFIG_SENSORS_GL518SM) += gl518sm.o | ||
23 | obj-$(CONFIG_SENSORS_GL520SM) += gl520sm.o | ||
24 | obj-$(CONFIG_SENSORS_IT87) += it87.o | ||
25 | obj-$(CONFIG_SENSORS_LM63) += lm63.o | ||
26 | obj-$(CONFIG_SENSORS_LM75) += lm75.o | ||
27 | obj-$(CONFIG_SENSORS_LM77) += lm77.o | ||
28 | obj-$(CONFIG_SENSORS_LM78) += lm78.o | ||
29 | obj-$(CONFIG_SENSORS_LM80) += lm80.o | ||
30 | obj-$(CONFIG_SENSORS_LM83) += lm83.o | ||
31 | obj-$(CONFIG_SENSORS_LM85) += lm85.o | ||
32 | obj-$(CONFIG_SENSORS_LM87) += lm87.o | ||
33 | obj-$(CONFIG_SENSORS_LM90) += lm90.o | ||
34 | obj-$(CONFIG_SENSORS_LM92) += lm92.o | ||
35 | obj-$(CONFIG_SENSORS_MAX1619) += max1619.o | ||
36 | obj-$(CONFIG_SENSORS_MAX6875) += max6875.o | 8 | obj-$(CONFIG_SENSORS_MAX6875) += max6875.o |
37 | obj-$(CONFIG_SENSORS_M41T00) += m41t00.o | 9 | obj-$(CONFIG_SENSORS_M41T00) += m41t00.o |
38 | obj-$(CONFIG_SENSORS_PC87360) += pc87360.o | ||
39 | obj-$(CONFIG_SENSORS_PCA9539) += pca9539.o | 10 | obj-$(CONFIG_SENSORS_PCA9539) += pca9539.o |
40 | obj-$(CONFIG_SENSORS_PCF8574) += pcf8574.o | 11 | obj-$(CONFIG_SENSORS_PCF8574) += pcf8574.o |
41 | obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o | 12 | obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o |
42 | obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o | 13 | obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o |
43 | obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o | ||
44 | obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o | ||
45 | obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o | ||
46 | obj-$(CONFIG_SENSORS_VIA686A) += via686a.o | ||
47 | obj-$(CONFIG_SENSORS_W83627EHF) += w83627ehf.o | ||
48 | obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o | ||
49 | |||
50 | obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o | 14 | obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o |
51 | obj-$(CONFIG_TPS65010) += tps65010.o | 15 | obj-$(CONFIG_TPS65010) += tps65010.o |
52 | 16 | ||
diff --git a/drivers/i2c/chips/eeprom.c b/drivers/i2c/chips/eeprom.c index addf0adc24d4..6ea413f6d5e5 100644 --- a/drivers/i2c/chips/eeprom.c +++ b/drivers/i2c/chips/eeprom.c | |||
@@ -173,9 +173,6 @@ int eeprom_detect(struct i2c_adapter *adapter, int address, int kind) | |||
173 | | I2C_FUNC_SMBUS_BYTE)) | 173 | | I2C_FUNC_SMBUS_BYTE)) |
174 | goto exit; | 174 | goto exit; |
175 | 175 | ||
176 | /* OK. For now, we presume we have a valid client. We now create the | ||
177 | client structure, even though we cannot fill it completely yet. | ||
178 | But it allows us to access eeprom_{read,write}_value. */ | ||
179 | if (!(data = kmalloc(sizeof(struct eeprom_data), GFP_KERNEL))) { | 176 | if (!(data = kmalloc(sizeof(struct eeprom_data), GFP_KERNEL))) { |
180 | err = -ENOMEM; | 177 | err = -ENOMEM; |
181 | goto exit; | 178 | goto exit; |
diff --git a/drivers/i2c/chips/m41t00.c b/drivers/i2c/chips/m41t00.c index 5e463c47bfbc..778d7e12859d 100644 --- a/drivers/i2c/chips/m41t00.c +++ b/drivers/i2c/chips/m41t00.c | |||
@@ -207,7 +207,7 @@ m41t00_detach(struct i2c_client *client) | |||
207 | int rc; | 207 | int rc; |
208 | 208 | ||
209 | if ((rc = i2c_detach_client(client)) == 0) { | 209 | if ((rc = i2c_detach_client(client)) == 0) { |
210 | kfree(i2c_get_clientdata(client)); | 210 | kfree(client); |
211 | tasklet_kill(&m41t00_tasklet); | 211 | tasklet_kill(&m41t00_tasklet); |
212 | } | 212 | } |
213 | return rc; | 213 | return rc; |
diff --git a/drivers/i2c/chips/max6875.c b/drivers/i2c/chips/max6875.c index fe6b150ec4c2..c4f14d9623c4 100644 --- a/drivers/i2c/chips/max6875.c +++ b/drivers/i2c/chips/max6875.c | |||
@@ -37,7 +37,8 @@ | |||
37 | #include <linux/i2c-sensor.h> | 37 | #include <linux/i2c-sensor.h> |
38 | 38 | ||
39 | /* Addresses to scan */ | 39 | /* Addresses to scan */ |
40 | static unsigned short normal_i2c[] = {0x50, 0x52, I2C_CLIENT_END}; | 40 | /* No address scanned by default, as this could corrupt standard EEPROMS. */ |
41 | static unsigned short normal_i2c[] = {I2C_CLIENT_END}; | ||
41 | static unsigned int normal_isa[] = {I2C_CLIENT_ISA_END}; | 42 | static unsigned int normal_isa[] = {I2C_CLIENT_ISA_END}; |
42 | 43 | ||
43 | /* Insmod parameters */ | 44 | /* Insmod parameters */ |
@@ -369,6 +370,9 @@ static int max6875_detect(struct i2c_adapter *adapter, int address, int kind) | |||
369 | new_client->driver = &max6875_driver; | 370 | new_client->driver = &max6875_driver; |
370 | new_client->flags = 0; | 371 | new_client->flags = 0; |
371 | 372 | ||
373 | /* Prevent 24RF08 corruption */ | ||
374 | i2c_smbus_write_quick(new_client, 0); | ||
375 | |||
372 | /* Setup the user section */ | 376 | /* Setup the user section */ |
373 | data->blocks[max6875_eeprom_user].type = max6875_eeprom_user; | 377 | data->blocks[max6875_eeprom_user].type = max6875_eeprom_user; |
374 | data->blocks[max6875_eeprom_user].slices = USER_EEPROM_SLICES; | 378 | data->blocks[max6875_eeprom_user].slices = USER_EEPROM_SLICES; |
diff --git a/drivers/i2c/chips/tps65010.c b/drivers/i2c/chips/tps65010.c index c0ac01b60039..280e9638c0f8 100644 --- a/drivers/i2c/chips/tps65010.c +++ b/drivers/i2c/chips/tps65010.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | #undef DEBUG | ||
22 | 21 | ||
23 | #include <linux/config.h> | 22 | #include <linux/config.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
@@ -49,11 +48,7 @@ | |||
49 | MODULE_DESCRIPTION("TPS6501x Power Management Driver"); | 48 | MODULE_DESCRIPTION("TPS6501x Power Management Driver"); |
50 | MODULE_LICENSE("GPL"); | 49 | MODULE_LICENSE("GPL"); |
51 | 50 | ||
52 | /* only two addresses possible */ | 51 | static unsigned short normal_i2c[] = { 0x48, /* 0x49, */ I2C_CLIENT_END }; |
53 | #define TPS_BASE 0x48 | ||
54 | static unsigned short normal_i2c[] = { | ||
55 | TPS_BASE, | ||
56 | I2C_CLIENT_END }; | ||
57 | static unsigned short normal_i2c_range[] = { I2C_CLIENT_END }; | 52 | static unsigned short normal_i2c_range[] = { I2C_CLIENT_END }; |
58 | 53 | ||
59 | I2C_CLIENT_INSMOD; | 54 | I2C_CLIENT_INSMOD; |
@@ -102,7 +97,7 @@ struct tps65010 { | |||
102 | u8 chgstatus, regstatus, chgconf; | 97 | u8 chgstatus, regstatus, chgconf; |
103 | u8 nmask1, nmask2; | 98 | u8 nmask1, nmask2; |
104 | 99 | ||
105 | /* plus four GPIOs, probably used to switch power */ | 100 | /* not currently tracking GPIO state */ |
106 | }; | 101 | }; |
107 | 102 | ||
108 | #define POWER_POLL_DELAY msecs_to_jiffies(800) | 103 | #define POWER_POLL_DELAY msecs_to_jiffies(800) |
@@ -135,7 +130,7 @@ static void dbg_regstat(char *buf, size_t len, u8 regstatus) | |||
135 | (regstatus & TPS_REG_COVER) ? " uncover" : "", | 130 | (regstatus & TPS_REG_COVER) ? " uncover" : "", |
136 | (regstatus & TPS_REG_UVLO) ? " UVLO" : "", | 131 | (regstatus & TPS_REG_UVLO) ? " UVLO" : "", |
137 | (regstatus & TPS_REG_NO_CHG) ? " NO_CHG" : "", | 132 | (regstatus & TPS_REG_NO_CHG) ? " NO_CHG" : "", |
138 | (regstatus & TPS_REG_PG_LD02) ? " ld01_bad" : "", | 133 | (regstatus & TPS_REG_PG_LD02) ? " ld02_bad" : "", |
139 | (regstatus & TPS_REG_PG_LD01) ? " ld01_bad" : "", | 134 | (regstatus & TPS_REG_PG_LD01) ? " ld01_bad" : "", |
140 | (regstatus & TPS_REG_PG_MAIN) ? " main_bad" : "", | 135 | (regstatus & TPS_REG_PG_MAIN) ? " main_bad" : "", |
141 | (regstatus & TPS_REG_PG_CORE) ? " core_bad" : ""); | 136 | (regstatus & TPS_REG_PG_CORE) ? " core_bad" : ""); |
@@ -143,7 +138,7 @@ static void dbg_regstat(char *buf, size_t len, u8 regstatus) | |||
143 | 138 | ||
144 | static void dbg_chgconf(int por, char *buf, size_t len, u8 chgconfig) | 139 | static void dbg_chgconf(int por, char *buf, size_t len, u8 chgconfig) |
145 | { | 140 | { |
146 | char *hibit; | 141 | const char *hibit; |
147 | 142 | ||
148 | if (por) | 143 | if (por) |
149 | hibit = (chgconfig & TPS_CHARGE_POR) | 144 | hibit = (chgconfig & TPS_CHARGE_POR) |
@@ -295,7 +290,7 @@ static int dbg_show(struct seq_file *s, void *_) | |||
295 | seq_printf(s, "defgpio %02x mask3 %02x\n", value, v2); | 290 | seq_printf(s, "defgpio %02x mask3 %02x\n", value, v2); |
296 | 291 | ||
297 | for (i = 0; i < 4; i++) { | 292 | for (i = 0; i < 4; i++) { |
298 | if (value & (1 << (4 +i))) | 293 | if (value & (1 << (4 + i))) |
299 | seq_printf(s, " gpio%d-out %s\n", i + 1, | 294 | seq_printf(s, " gpio%d-out %s\n", i + 1, |
300 | (value & (1 << i)) ? "low" : "hi "); | 295 | (value & (1 << i)) ? "low" : "hi "); |
301 | else | 296 | else |
@@ -481,7 +476,7 @@ static int __exit tps65010_detach_client(struct i2c_client *client) | |||
481 | debugfs_remove(tps->file); | 476 | debugfs_remove(tps->file); |
482 | if (i2c_detach_client(client) == 0) | 477 | if (i2c_detach_client(client) == 0) |
483 | kfree(tps); | 478 | kfree(tps); |
484 | the_tps = 0; | 479 | the_tps = NULL; |
485 | return 0; | 480 | return 0; |
486 | } | 481 | } |
487 | 482 | ||
@@ -514,7 +509,6 @@ tps65010_probe(struct i2c_adapter *bus, int address, int kind) | |||
514 | INIT_WORK(&tps->work, tps65010_work, tps); | 509 | INIT_WORK(&tps->work, tps65010_work, tps); |
515 | tps->irq = -1; | 510 | tps->irq = -1; |
516 | tps->client.addr = address; | 511 | tps->client.addr = address; |
517 | i2c_set_clientdata(&tps->client, tps); | ||
518 | tps->client.adapter = bus; | 512 | tps->client.adapter = bus; |
519 | tps->client.driver = &tps65010_driver; | 513 | tps->client.driver = &tps65010_driver; |
520 | strlcpy(tps->client.name, DRIVER_NAME, I2C_NAME_SIZE); | 514 | strlcpy(tps->client.name, DRIVER_NAME, I2C_NAME_SIZE); |
@@ -523,9 +517,7 @@ tps65010_probe(struct i2c_adapter *bus, int address, int kind) | |||
523 | if (status < 0) { | 517 | if (status < 0) { |
524 | dev_dbg(&bus->dev, "can't attach %s to device %d, err %d\n", | 518 | dev_dbg(&bus->dev, "can't attach %s to device %d, err %d\n", |
525 | DRIVER_NAME, address, status); | 519 | DRIVER_NAME, address, status); |
526 | fail1: | 520 | goto fail1; |
527 | kfree(tps); | ||
528 | return 0; | ||
529 | } | 521 | } |
530 | 522 | ||
531 | #ifdef CONFIG_ARM | 523 | #ifdef CONFIG_ARM |
@@ -535,7 +527,7 @@ fail1: | |||
535 | tps->irq = OMAP_GPIO_IRQ(58); | 527 | tps->irq = OMAP_GPIO_IRQ(58); |
536 | omap_request_gpio(58); | 528 | omap_request_gpio(58); |
537 | omap_set_gpio_direction(58, 1); | 529 | omap_set_gpio_direction(58, 1); |
538 | omap_set_gpio_edge_ctrl(58, OMAP_GPIO_FALLING_EDGE); | 530 | set_irq_type(tps->irq, IRQT_FALLING); |
539 | } | 531 | } |
540 | if (machine_is_omap_osk()) { | 532 | if (machine_is_omap_osk()) { |
541 | tps->model = TPS65010; | 533 | tps->model = TPS65010; |
@@ -543,7 +535,7 @@ fail1: | |||
543 | tps->irq = OMAP_GPIO_IRQ(OMAP_MPUIO(1)); | 535 | tps->irq = OMAP_GPIO_IRQ(OMAP_MPUIO(1)); |
544 | omap_request_gpio(OMAP_MPUIO(1)); | 536 | omap_request_gpio(OMAP_MPUIO(1)); |
545 | omap_set_gpio_direction(OMAP_MPUIO(1), 1); | 537 | omap_set_gpio_direction(OMAP_MPUIO(1), 1); |
546 | omap_set_gpio_edge_ctrl(OMAP_MPUIO(1), OMAP_GPIO_FALLING_EDGE); | 538 | set_irq_type(tps->irq, IRQT_FALLING); |
547 | } | 539 | } |
548 | if (machine_is_omap_h3()) { | 540 | if (machine_is_omap_h3()) { |
549 | tps->model = TPS65013; | 541 | tps->model = TPS65013; |
@@ -633,6 +625,9 @@ fail1: | |||
633 | tps->file = debugfs_create_file(DRIVER_NAME, S_IRUGO, NULL, | 625 | tps->file = debugfs_create_file(DRIVER_NAME, S_IRUGO, NULL, |
634 | tps, DEBUG_FOPS); | 626 | tps, DEBUG_FOPS); |
635 | return 0; | 627 | return 0; |
628 | fail1: | ||
629 | kfree(tps); | ||
630 | return 0; | ||
636 | } | 631 | } |
637 | 632 | ||
638 | static int __init tps65010_scan_bus(struct i2c_adapter *bus) | 633 | static int __init tps65010_scan_bus(struct i2c_adapter *bus) |
@@ -645,7 +640,6 @@ static int __init tps65010_scan_bus(struct i2c_adapter *bus) | |||
645 | static struct i2c_driver tps65010_driver = { | 640 | static struct i2c_driver tps65010_driver = { |
646 | .owner = THIS_MODULE, | 641 | .owner = THIS_MODULE, |
647 | .name = "tps65010", | 642 | .name = "tps65010", |
648 | .id = 888, /* FIXME assign "official" value */ | ||
649 | .flags = I2C_DF_NOTIFY, | 643 | .flags = I2C_DF_NOTIFY, |
650 | .attach_adapter = tps65010_scan_bus, | 644 | .attach_adapter = tps65010_scan_bus, |
651 | .detach_client = __exit_p(tps65010_detach_client), | 645 | .detach_client = __exit_p(tps65010_detach_client), |
@@ -744,7 +738,7 @@ int tps65010_set_led(unsigned led, unsigned mode) | |||
744 | if (!the_tps) | 738 | if (!the_tps) |
745 | return -ENODEV; | 739 | return -ENODEV; |
746 | 740 | ||
747 | if(led == LED1) | 741 | if (led == LED1) |
748 | offs = 0; | 742 | offs = 0; |
749 | else { | 743 | else { |
750 | offs = 2; | 744 | offs = 2; |
@@ -753,11 +747,13 @@ int tps65010_set_led(unsigned led, unsigned mode) | |||
753 | 747 | ||
754 | down(&the_tps->lock); | 748 | down(&the_tps->lock); |
755 | 749 | ||
756 | dev_dbg (&the_tps->client.dev, "led%i_on 0x%02x\n", led, | 750 | pr_debug("%s: led%i_on 0x%02x\n", DRIVER_NAME, led, |
757 | i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_ON + offs)); | 751 | i2c_smbus_read_byte_data(&the_tps->client, |
752 | TPS_LED1_ON + offs)); | ||
758 | 753 | ||
759 | dev_dbg (&the_tps->client.dev, "led%i_per 0x%02x\n", led, | 754 | pr_debug("%s: led%i_per 0x%02x\n", DRIVER_NAME, led, |
760 | i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_PER + offs)); | 755 | i2c_smbus_read_byte_data(&the_tps->client, |
756 | TPS_LED1_PER + offs)); | ||
761 | 757 | ||
762 | switch (mode) { | 758 | switch (mode) { |
763 | case OFF: | 759 | case OFF: |
@@ -773,7 +769,7 @@ int tps65010_set_led(unsigned led, unsigned mode) | |||
773 | led_per = 0x08 | (1 << 7); | 769 | led_per = 0x08 | (1 << 7); |
774 | break; | 770 | break; |
775 | default: | 771 | default: |
776 | printk(KERN_ERR "%s: Wrong mode parameter for tps65010_set_led()\n", | 772 | printk(KERN_ERR "%s: Wrong mode parameter for set_led()\n", |
777 | DRIVER_NAME); | 773 | DRIVER_NAME); |
778 | up(&the_tps->lock); | 774 | up(&the_tps->lock); |
779 | return -EINVAL; | 775 | return -EINVAL; |
@@ -789,7 +785,7 @@ int tps65010_set_led(unsigned led, unsigned mode) | |||
789 | return status; | 785 | return status; |
790 | } | 786 | } |
791 | 787 | ||
792 | dev_dbg (&the_tps->client.dev, "led%i_on 0x%02x\n", led, | 788 | pr_debug("%s: led%i_on 0x%02x\n", DRIVER_NAME, led, |
793 | i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_ON + offs)); | 789 | i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_ON + offs)); |
794 | 790 | ||
795 | status = i2c_smbus_write_byte_data(&the_tps->client, | 791 | status = i2c_smbus_write_byte_data(&the_tps->client, |
@@ -802,8 +798,9 @@ int tps65010_set_led(unsigned led, unsigned mode) | |||
802 | return status; | 798 | return status; |
803 | } | 799 | } |
804 | 800 | ||
805 | dev_dbg (&the_tps->client.dev, "led%i_per 0x%02x\n", led, | 801 | pr_debug("%s: led%i_per 0x%02x\n", DRIVER_NAME, led, |
806 | i2c_smbus_read_byte_data(&the_tps->client, TPS_LED1_PER + offs)); | 802 | i2c_smbus_read_byte_data(&the_tps->client, |
803 | TPS_LED1_PER + offs)); | ||
807 | 804 | ||
808 | up(&the_tps->lock); | 805 | up(&the_tps->lock); |
809 | 806 | ||
@@ -874,7 +871,7 @@ int tps65010_set_low_pwr(unsigned mode) | |||
874 | 871 | ||
875 | if (status != 0) | 872 | if (status != 0) |
876 | printk(KERN_ERR "%s: Failed to write vdcdc1 register\n", | 873 | printk(KERN_ERR "%s: Failed to write vdcdc1 register\n", |
877 | DRIVER_NAME); | 874 | DRIVER_NAME); |
878 | else | 875 | else |
879 | pr_debug("%s: vdcdc1 0x%02x\n", DRIVER_NAME, | 876 | pr_debug("%s: vdcdc1 0x%02x\n", DRIVER_NAME, |
880 | i2c_smbus_read_byte_data(&the_tps->client, TPS_VDCDC1)); | 877 | i2c_smbus_read_byte_data(&the_tps->client, TPS_VDCDC1)); |
@@ -900,14 +897,14 @@ int tps65010_config_vregs1(unsigned value) | |||
900 | down(&the_tps->lock); | 897 | down(&the_tps->lock); |
901 | 898 | ||
902 | pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME, | 899 | pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME, |
903 | i2c_smbus_read_byte_data(&the_tps->client, TPS_VREGS1)); | 900 | i2c_smbus_read_byte_data(&the_tps->client, TPS_VREGS1)); |
904 | 901 | ||
905 | status = i2c_smbus_write_byte_data(&the_tps->client, | 902 | status = i2c_smbus_write_byte_data(&the_tps->client, |
906 | TPS_VREGS1, value); | 903 | TPS_VREGS1, value); |
907 | 904 | ||
908 | if (status != 0) | 905 | if (status != 0) |
909 | printk(KERN_ERR "%s: Failed to write vregs1 register\n", | 906 | printk(KERN_ERR "%s: Failed to write vregs1 register\n", |
910 | DRIVER_NAME); | 907 | DRIVER_NAME); |
911 | else | 908 | else |
912 | pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME, | 909 | pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME, |
913 | i2c_smbus_read_byte_data(&the_tps->client, TPS_VREGS1)); | 910 | i2c_smbus_read_byte_data(&the_tps->client, TPS_VREGS1)); |
@@ -1009,7 +1006,7 @@ static int __init tps_init(void) | |||
1009 | msleep(10); | 1006 | msleep(10); |
1010 | } | 1007 | } |
1011 | 1008 | ||
1012 | #if defined(CONFIG_ARM) | 1009 | #ifdef CONFIG_ARM |
1013 | if (machine_is_omap_osk()) { | 1010 | if (machine_is_omap_osk()) { |
1014 | 1011 | ||
1015 | // FIXME: More should be placed in the initialization code | 1012 | // FIXME: More should be placed in the initialization code |
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 51ce268998cd..4fd4f52c8e9b 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -156,7 +156,7 @@ int i2c_add_adapter(struct i2c_adapter *adap) | |||
156 | goto out_unlock; | 156 | goto out_unlock; |
157 | } | 157 | } |
158 | 158 | ||
159 | res = idr_get_new(&i2c_adapter_idr, NULL, &id); | 159 | res = idr_get_new(&i2c_adapter_idr, adap, &id); |
160 | if (res < 0) { | 160 | if (res < 0) { |
161 | if (res == -EAGAIN) | 161 | if (res == -EAGAIN) |
162 | res = -ENOMEM; | 162 | res = -ENOMEM; |
@@ -765,20 +765,15 @@ int i2c_adapter_id(struct i2c_adapter *adap) | |||
765 | 765 | ||
766 | struct i2c_adapter* i2c_get_adapter(int id) | 766 | struct i2c_adapter* i2c_get_adapter(int id) |
767 | { | 767 | { |
768 | struct list_head *item; | ||
769 | struct i2c_adapter *adapter; | 768 | struct i2c_adapter *adapter; |
770 | 769 | ||
771 | down(&core_lists); | 770 | down(&core_lists); |
772 | list_for_each(item,&adapters) { | 771 | adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id); |
773 | adapter = list_entry(item, struct i2c_adapter, list); | 772 | if (adapter && !try_module_get(adapter->owner)) |
774 | if (id == adapter->nr && | 773 | adapter = NULL; |
775 | try_module_get(adapter->owner)) { | 774 | |
776 | up(&core_lists); | ||
777 | return adapter; | ||
778 | } | ||
779 | } | ||
780 | up(&core_lists); | 775 | up(&core_lists); |
781 | return NULL; | 776 | return adapter; |
782 | } | 777 | } |
783 | 778 | ||
784 | void i2c_put_adapter(struct i2c_adapter *adap) | 779 | void i2c_put_adapter(struct i2c_adapter *adap) |
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c index 312cf3220f12..8a9c42822502 100644 --- a/drivers/w1/w1.c +++ b/drivers/w1/w1.c | |||
@@ -516,6 +516,7 @@ static void w1_slave_found(unsigned long data, u64 rn) | |||
516 | struct w1_reg_num *tmp; | 516 | struct w1_reg_num *tmp; |
517 | int family_found = 0; | 517 | int family_found = 0; |
518 | struct w1_master *dev; | 518 | struct w1_master *dev; |
519 | u64 rn_le = cpu_to_le64(rn); | ||
519 | 520 | ||
520 | dev = w1_search_master(data); | 521 | dev = w1_search_master(data); |
521 | if (!dev) { | 522 | if (!dev) { |
@@ -544,10 +545,8 @@ static void w1_slave_found(unsigned long data, u64 rn) | |||
544 | slave_count++; | 545 | slave_count++; |
545 | } | 546 | } |
546 | 547 | ||
547 | rn = cpu_to_le64(rn); | ||
548 | |||
549 | if (slave_count == dev->slave_count && | 548 | if (slave_count == dev->slave_count && |
550 | rn && ((le64_to_cpu(rn) >> 56) & 0xff) == w1_calc_crc8((u8 *)&rn, 7)) { | 549 | rn && ((rn >> 56) & 0xff) == w1_calc_crc8((u8 *)&rn_le, 7)) { |
551 | w1_attach_slave_device(dev, tmp); | 550 | w1_attach_slave_device(dev, tmp); |
552 | } | 551 | } |
553 | 552 | ||