aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/i2c/porting-clients8
-rw-r--r--Documentation/i2c/writing-clients68
-rw-r--r--drivers/hwmon/adm1021.c3
-rw-r--r--drivers/hwmon/adm1025.c3
-rw-r--r--drivers/hwmon/adm1026.c3
-rw-r--r--drivers/hwmon/adm1031.c3
-rw-r--r--drivers/hwmon/adm9240.c3
-rw-r--r--drivers/hwmon/asb100.c3
-rw-r--r--drivers/hwmon/atxp1.c3
-rw-r--r--drivers/hwmon/ds1621.c3
-rw-r--r--drivers/hwmon/fscher.c3
-rw-r--r--drivers/hwmon/fscpos.c3
-rw-r--r--drivers/hwmon/gl518sm.c3
-rw-r--r--drivers/hwmon/gl520sm.c3
-rw-r--r--drivers/hwmon/it87.c3
-rw-r--r--drivers/hwmon/lm63.c3
-rw-r--r--drivers/hwmon/lm75.c3
-rw-r--r--drivers/hwmon/lm77.c3
-rw-r--r--drivers/hwmon/lm78.c3
-rw-r--r--drivers/hwmon/lm80.c3
-rw-r--r--drivers/hwmon/lm83.c3
-rw-r--r--drivers/hwmon/lm85.c3
-rw-r--r--drivers/hwmon/lm87.c3
-rw-r--r--drivers/hwmon/lm90.c3
-rw-r--r--drivers/hwmon/lm92.c3
-rw-r--r--drivers/hwmon/max1619.c3
-rw-r--r--drivers/hwmon/sis5595.c1
-rw-r--r--drivers/hwmon/smsc47m1.c1
-rw-r--r--drivers/hwmon/via686a.c1
-rw-r--r--drivers/hwmon/w83627hf.c1
-rw-r--r--drivers/hwmon/w83781d.c3
-rw-r--r--drivers/hwmon/w83792d.c3
-rw-r--r--drivers/hwmon/w83l785ts.c3
-rw-r--r--drivers/i2c/chips/ds1337.c3
-rw-r--r--drivers/i2c/chips/eeprom.c3
-rw-r--r--drivers/i2c/chips/max6875.c3
-rw-r--r--drivers/i2c/chips/pca9539.c3
-rw-r--r--drivers/i2c/chips/pcf8574.c3
-rw-r--r--drivers/i2c/chips/pcf8591.c3
-rw-r--r--include/linux/i2c-sensor.h203
-rw-r--r--include/linux/i2c.h148
41 files changed, 188 insertions, 342 deletions
diff --git a/Documentation/i2c/porting-clients b/Documentation/i2c/porting-clients
index f9099211bd0b..8b819379adcb 100644
--- a/Documentation/i2c/porting-clients
+++ b/Documentation/i2c/porting-clients
@@ -1,4 +1,4 @@
1Revision 4, 2004-03-30 1Revision 5, 2005-07-29
2Jean Delvare <khali@linux-fr.org> 2Jean Delvare <khali@linux-fr.org>
3Greg KH <greg@kroah.com> 3Greg KH <greg@kroah.com>
4 4
@@ -17,13 +17,12 @@ yours for best results.
17 17
18Technical changes: 18Technical changes:
19 19
20* [Includes] Get rid of "version.h". Replace <linux/i2c-proc.h> with 20* [Includes] Get rid of "version.h" and <linux/i2c-proc.h>.
21 <linux/i2c-sensor.h>. Includes typically look like that: 21 Includes typically look like that:
22 #include <linux/module.h> 22 #include <linux/module.h>
23 #include <linux/init.h> 23 #include <linux/init.h>
24 #include <linux/slab.h> 24 #include <linux/slab.h>
25 #include <linux/i2c.h> 25 #include <linux/i2c.h>
26 #include <linux/i2c-sensor.h>
27 #include <linux/i2c-vid.h> /* if you need VRM support */ 26 #include <linux/i2c-vid.h> /* if you need VRM support */
28 #include <asm/io.h> /* if you have I/O operations */ 27 #include <asm/io.h> /* if you have I/O operations */
29 Please respect this inclusion order. Some extra headers may be 28 Please respect this inclusion order. Some extra headers may be
@@ -31,6 +30,7 @@ Technical changes:
31 30
32* [Addresses] SENSORS_I2C_END becomes I2C_CLIENT_END, ISA addresses 31* [Addresses] SENSORS_I2C_END becomes I2C_CLIENT_END, ISA addresses
33 are no more handled by the i2c core. 32 are no more handled by the i2c core.
33 SENSORS_INSMOD_<n> becomes I2C_CLIENT_INSMOD_<n>.
34 34
35* [Client data] Get rid of sysctl_id. Try using standard names for 35* [Client data] Get rid of sysctl_id. Try using standard names for
36 register values (for example, temp_os becomes temp_max). You're 36 register values (for example, temp_os becomes temp_max). You're
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index 43d7928056ae..97e138cbb2a9 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -155,8 +155,8 @@ NOTE: If you want to write a `sensors' driver, the interface is slightly
155 155
156 156
157 157
158Probing classes (i2c) 158Probing classes
159--------------------- 159---------------
160 160
161All parameters are given as lists of unsigned 16-bit integers. Lists are 161All parameters are given as lists of unsigned 16-bit integers. Lists are
162terminated by I2C_CLIENT_END. 162terminated by I2C_CLIENT_END.
@@ -171,12 +171,18 @@ The following lists are used internally:
171 ignore: insmod parameter. 171 ignore: insmod parameter.
172 A list of pairs. The first value is a bus number (-1 for any I2C bus), 172 A list of pairs. The first value is a bus number (-1 for any I2C bus),
173 the second is the I2C address. These addresses are never probed. 173 the second is the I2C address. These addresses are never probed.
174 This parameter overrules 'normal' and 'probe', but not the 'force' lists. 174 This parameter overrules the 'normal_i2c' list only.
175 force: insmod parameter. 175 force: insmod parameter.
176 A list of pairs. The first value is a bus number (-1 for any I2C bus), 176 A list of pairs. The first value is a bus number (-1 for any I2C bus),
177 the second is the I2C address. A device is blindly assumed to be on 177 the second is the I2C address. A device is blindly assumed to be on
178 the given address, no probing is done. 178 the given address, no probing is done.
179 179
180Additionally, kind-specific force lists may optionally be defined if
181the driver supports several chip kinds. They are grouped in a
182NULL-terminated list of pointers named forces, those first element if the
183generic force list mentioned above. Each additional list correspond to an
184insmod parameter of the form force_<kind>.
185
180Fortunately, as a module writer, you just have to define the `normal_i2c' 186Fortunately, as a module writer, you just have to define the `normal_i2c'
181parameter. The complete declaration could look like this: 187parameter. The complete declaration could look like this:
182 188
@@ -186,61 +192,17 @@ parameter. The complete declaration could look like this:
186 192
187 /* Magic definition of all other variables and things */ 193 /* Magic definition of all other variables and things */
188 I2C_CLIENT_INSMOD; 194 I2C_CLIENT_INSMOD;
195 /* Or, if your driver supports, say, 2 kind of devices: */
196 I2C_CLIENT_INSMOD_2(foo, bar);
197
198If you use the multi-kind form, an enum will be defined for you:
199 enum chips { any_chip, foo, bar, ... }
200You can then (and certainly should) use it in the driver code.
189 201
190Note that you *have* to call the defined variable `normal_i2c', 202Note that you *have* to call the defined variable `normal_i2c',
191without any prefix! 203without any prefix!
192 204
193 205
194Probing classes (sensors)
195-------------------------
196
197If you write a `sensors' driver, you use a slightly different interface.
198Also, we use a enum of chip types. Don't forget to include `sensors.h'.
199
200The following lists are used internally. They are all lists of integers.
201
202 normal_i2c: filled in by the module writer. Terminated by I2C_CLIENT_END.
203 A list of I2C addresses which should normally be examined.
204 probe: insmod parameter. Initialize this list with I2C_CLIENT_END values.
205 A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
206 I2C bus), the second is the address. These addresses are also probed,
207 as if they were in the 'normal' list.
208 ignore: insmod parameter. Initialize this list with I2C_CLIENT_END values.
209 A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
210 I2C bus), the second is the I2C address. These addresses are never
211 probed. This parameter overrules 'normal' and 'probe', but not the
212 'force' lists.
213
214Also used is a list of pointers to sensors_force_data structures:
215 force_data: insmod parameters. A list, ending with an element of which
216 the force field is NULL.
217 Each element contains the type of chip and a list of pairs.
218 The first value is a bus number (ANY_I2C_BUS for any I2C bus), the
219 second is the address.
220 These are automatically translated to insmod variables of the form
221 force_foo.
222
223So we have a generic insmod variabled `force', and chip-specific variables
224`force_CHIPNAME'.
225
226Fortunately, as a module writer, you just have to define the `normal_i2c'
227parameter, and define what chip names are used. The complete declaration
228could look like this:
229 /* Scan i2c addresses 0x37, and 0x48 to 0x4f */
230 static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c,
231 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
232
233 /* Define chips foo and bar, as well as all module parameters and things */
234 SENSORS_INSMOD_2(foo,bar);
235
236If you have one chip, you use macro SENSORS_INSMOD_1(chip), if you have 2
237you use macro SENSORS_INSMOD_2(chip1,chip2), etc. If you do not want to
238bother with chip types, you can use SENSORS_INSMOD_0.
239
240A enum is automatically defined as follows:
241 enum chips { any_chip, chip1, chip2, ... }
242
243
244Attaching to an adapter 206Attaching to an adapter
245----------------------- 207-----------------------
246 208
diff --git a/drivers/hwmon/adm1021.c b/drivers/hwmon/adm1021.c
index 21f6dfeb04ac..e928cdb041cb 100644
--- a/drivers/hwmon/adm1021.c
+++ b/drivers/hwmon/adm1021.c
@@ -24,7 +24,6 @@
24#include <linux/slab.h> 24#include <linux/slab.h>
25#include <linux/jiffies.h> 25#include <linux/jiffies.h>
26#include <linux/i2c.h> 26#include <linux/i2c.h>
27#include <linux/i2c-sensor.h>
28#include <linux/hwmon.h> 27#include <linux/hwmon.h>
29#include <linux/err.h> 28#include <linux/err.h>
30 29
@@ -36,7 +35,7 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
36 I2C_CLIENT_END }; 35 I2C_CLIENT_END };
37 36
38/* Insmod parameters */ 37/* Insmod parameters */
39SENSORS_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066); 38I2C_CLIENT_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066);
40 39
41/* adm1021 constants specified below */ 40/* adm1021 constants specified below */
42 41
diff --git a/drivers/hwmon/adm1025.c b/drivers/hwmon/adm1025.c
index 5b21284df2f8..229fd0de6f9e 100644
--- a/drivers/hwmon/adm1025.c
+++ b/drivers/hwmon/adm1025.c
@@ -50,7 +50,6 @@
50#include <linux/slab.h> 50#include <linux/slab.h>
51#include <linux/jiffies.h> 51#include <linux/jiffies.h>
52#include <linux/i2c.h> 52#include <linux/i2c.h>
53#include <linux/i2c-sensor.h>
54#include <linux/i2c-vid.h> 53#include <linux/i2c-vid.h>
55#include <linux/hwmon.h> 54#include <linux/hwmon.h>
56#include <linux/err.h> 55#include <linux/err.h>
@@ -67,7 +66,7 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
67 * Insmod parameters 66 * Insmod parameters
68 */ 67 */
69 68
70SENSORS_INSMOD_2(adm1025, ne1619); 69I2C_CLIENT_INSMOD_2(adm1025, ne1619);
71 70
72/* 71/*
73 * The ADM1025 registers 72 * The ADM1025 registers
diff --git a/drivers/hwmon/adm1026.c b/drivers/hwmon/adm1026.c
index f3a78f792919..f32f819efcfc 100644
--- a/drivers/hwmon/adm1026.c
+++ b/drivers/hwmon/adm1026.c
@@ -28,7 +28,6 @@
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/jiffies.h> 29#include <linux/jiffies.h>
30#include <linux/i2c.h> 30#include <linux/i2c.h>
31#include <linux/i2c-sensor.h>
32#include <linux/i2c-vid.h> 31#include <linux/i2c-vid.h>
33#include <linux/hwmon-sysfs.h> 32#include <linux/hwmon-sysfs.h>
34#include <linux/hwmon.h> 33#include <linux/hwmon.h>
@@ -38,7 +37,7 @@
38static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; 37static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
39 38
40/* Insmod parameters */ 39/* Insmod parameters */
41SENSORS_INSMOD_1(adm1026); 40I2C_CLIENT_INSMOD_1(adm1026);
42 41
43static int gpio_input[17] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, 42static int gpio_input[17] = { -1, -1, -1, -1, -1, -1, -1, -1, -1,
44 -1, -1, -1, -1, -1, -1, -1, -1 }; 43 -1, -1, -1, -1, -1, -1, -1, -1 };
diff --git a/drivers/hwmon/adm1031.c b/drivers/hwmon/adm1031.c
index 9221653590a8..58338ed7c8a1 100644
--- a/drivers/hwmon/adm1031.c
+++ b/drivers/hwmon/adm1031.c
@@ -26,7 +26,6 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/jiffies.h> 27#include <linux/jiffies.h>
28#include <linux/i2c.h> 28#include <linux/i2c.h>
29#include <linux/i2c-sensor.h>
30#include <linux/hwmon.h> 29#include <linux/hwmon.h>
31#include <linux/err.h> 30#include <linux/err.h>
32 31
@@ -63,7 +62,7 @@
63static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; 62static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
64 63
65/* Insmod parameters */ 64/* Insmod parameters */
66SENSORS_INSMOD_2(adm1030, adm1031); 65I2C_CLIENT_INSMOD_2(adm1030, adm1031);
67 66
68typedef u8 auto_chan_table_t[8][2]; 67typedef u8 auto_chan_table_t[8][2];
69 68
diff --git a/drivers/hwmon/adm9240.c b/drivers/hwmon/adm9240.c
index 6b20b28aa3b9..0a742cb88f4c 100644
--- a/drivers/hwmon/adm9240.c
+++ b/drivers/hwmon/adm9240.c
@@ -45,7 +45,6 @@
45#include <linux/module.h> 45#include <linux/module.h>
46#include <linux/slab.h> 46#include <linux/slab.h>
47#include <linux/i2c.h> 47#include <linux/i2c.h>
48#include <linux/i2c-sensor.h>
49#include <linux/i2c-vid.h> 48#include <linux/i2c-vid.h>
50#include <linux/hwmon.h> 49#include <linux/hwmon.h>
51#include <linux/err.h> 50#include <linux/err.h>
@@ -55,7 +54,7 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f,
55 I2C_CLIENT_END }; 54 I2C_CLIENT_END };
56 55
57/* Insmod parameters */ 56/* Insmod parameters */
58SENSORS_INSMOD_3(adm9240, ds1780, lm81); 57I2C_CLIENT_INSMOD_3(adm9240, ds1780, lm81);
59 58
60/* ADM9240 registers */ 59/* ADM9240 registers */
61#define ADM9240_REG_MAN_ID 0x3e 60#define ADM9240_REG_MAN_ID 0x3e
diff --git a/drivers/hwmon/asb100.c b/drivers/hwmon/asb100.c
index a6c6c9d3fddd..66b0dbd1af0e 100644
--- a/drivers/hwmon/asb100.c
+++ b/drivers/hwmon/asb100.c
@@ -39,7 +39,6 @@
39#include <linux/module.h> 39#include <linux/module.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/i2c.h> 41#include <linux/i2c.h>
42#include <linux/i2c-sensor.h>
43#include <linux/i2c-vid.h> 42#include <linux/i2c-vid.h>
44#include <linux/hwmon.h> 43#include <linux/hwmon.h>
45#include <linux/err.h> 44#include <linux/err.h>
@@ -57,7 +56,7 @@
57static unsigned short normal_i2c[] = { 0x2d, I2C_CLIENT_END }; 56static unsigned short normal_i2c[] = { 0x2d, I2C_CLIENT_END };
58 57
59/* Insmod parameters */ 58/* Insmod parameters */
60SENSORS_INSMOD_1(asb100); 59I2C_CLIENT_INSMOD_1(asb100);
61I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: " 60I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
62 "{bus, clientaddr, subclientaddr1, subclientaddr2}"); 61 "{bus, clientaddr, subclientaddr1, subclientaddr2}");
63 62
diff --git a/drivers/hwmon/atxp1.c b/drivers/hwmon/atxp1.c
index 329ddafd524b..5cf77e67a2ed 100644
--- a/drivers/hwmon/atxp1.c
+++ b/drivers/hwmon/atxp1.c
@@ -23,7 +23,6 @@
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/jiffies.h> 24#include <linux/jiffies.h>
25#include <linux/i2c.h> 25#include <linux/i2c.h>
26#include <linux/i2c-sensor.h>
27#include <linux/i2c-vid.h> 26#include <linux/i2c-vid.h>
28#include <linux/hwmon.h> 27#include <linux/hwmon.h>
29#include <linux/err.h> 28#include <linux/err.h>
@@ -43,7 +42,7 @@ MODULE_AUTHOR("Sebastian Witt <se.witt@gmx.net>");
43 42
44static unsigned short normal_i2c[] = { 0x37, 0x4e, I2C_CLIENT_END }; 43static unsigned short normal_i2c[] = { 0x37, 0x4e, I2C_CLIENT_END };
45 44
46SENSORS_INSMOD_1(atxp1); 45I2C_CLIENT_INSMOD_1(atxp1);
47 46
48static int atxp1_attach_adapter(struct i2c_adapter * adapter); 47static int atxp1_attach_adapter(struct i2c_adapter * adapter);
49static int atxp1_detach_client(struct i2c_client * client); 48static int atxp1_detach_client(struct i2c_client * client);
diff --git a/drivers/hwmon/ds1621.c b/drivers/hwmon/ds1621.c
index a3b3a5887621..b0199e063d0e 100644
--- a/drivers/hwmon/ds1621.c
+++ b/drivers/hwmon/ds1621.c
@@ -26,7 +26,6 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/jiffies.h> 27#include <linux/jiffies.h>
28#include <linux/i2c.h> 28#include <linux/i2c.h>
29#include <linux/i2c-sensor.h>
30#include <linux/hwmon.h> 29#include <linux/hwmon.h>
31#include <linux/err.h> 30#include <linux/err.h>
32#include "lm75.h" 31#include "lm75.h"
@@ -36,7 +35,7 @@ static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
36 0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 35 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
37 36
38/* Insmod parameters */ 37/* Insmod parameters */
39SENSORS_INSMOD_1(ds1621); 38I2C_CLIENT_INSMOD_1(ds1621);
40static int polarity = -1; 39static int polarity = -1;
41module_param(polarity, int, 0); 40module_param(polarity, int, 0);
42MODULE_PARM_DESC(polarity, "Output's polarity: 0 = active high, 1 = active low"); 41MODULE_PARM_DESC(polarity, "Output's polarity: 0 = active high, 1 = active low");
diff --git a/drivers/hwmon/fscher.c b/drivers/hwmon/fscher.c
index 5629e68a5ca3..eef6061d786b 100644
--- a/drivers/hwmon/fscher.c
+++ b/drivers/hwmon/fscher.c
@@ -31,7 +31,6 @@
31#include <linux/slab.h> 31#include <linux/slab.h>
32#include <linux/jiffies.h> 32#include <linux/jiffies.h>
33#include <linux/i2c.h> 33#include <linux/i2c.h>
34#include <linux/i2c-sensor.h>
35#include <linux/hwmon.h> 34#include <linux/hwmon.h>
36#include <linux/err.h> 35#include <linux/err.h>
37 36
@@ -45,7 +44,7 @@ static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
45 * Insmod parameters 44 * Insmod parameters
46 */ 45 */
47 46
48SENSORS_INSMOD_1(fscher); 47I2C_CLIENT_INSMOD_1(fscher);
49 48
50/* 49/*
51 * The FSCHER registers 50 * The FSCHER registers
diff --git a/drivers/hwmon/fscpos.c b/drivers/hwmon/fscpos.c
index edc84f2f6454..5fc77a5fed07 100644
--- a/drivers/hwmon/fscpos.c
+++ b/drivers/hwmon/fscpos.c
@@ -34,7 +34,6 @@
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/jiffies.h> 35#include <linux/jiffies.h>
36#include <linux/i2c.h> 36#include <linux/i2c.h>
37#include <linux/i2c-sensor.h>
38#include <linux/init.h> 37#include <linux/init.h>
39#include <linux/hwmon.h> 38#include <linux/hwmon.h>
40#include <linux/err.h> 39#include <linux/err.h>
@@ -47,7 +46,7 @@ static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
47/* 46/*
48 * Insmod parameters 47 * Insmod parameters
49 */ 48 */
50SENSORS_INSMOD_1(fscpos); 49I2C_CLIENT_INSMOD_1(fscpos);
51 50
52/* 51/*
53 * The FSCPOS registers 52 * The FSCPOS registers
diff --git a/drivers/hwmon/gl518sm.c b/drivers/hwmon/gl518sm.c
index 15376a6e0494..256b9323c84b 100644
--- a/drivers/hwmon/gl518sm.c
+++ b/drivers/hwmon/gl518sm.c
@@ -41,7 +41,6 @@
41#include <linux/slab.h> 41#include <linux/slab.h>
42#include <linux/jiffies.h> 42#include <linux/jiffies.h>
43#include <linux/i2c.h> 43#include <linux/i2c.h>
44#include <linux/i2c-sensor.h>
45#include <linux/hwmon.h> 44#include <linux/hwmon.h>
46#include <linux/err.h> 45#include <linux/err.h>
47 46
@@ -49,7 +48,7 @@
49static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END }; 48static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
50 49
51/* Insmod parameters */ 50/* Insmod parameters */
52SENSORS_INSMOD_2(gl518sm_r00, gl518sm_r80); 51I2C_CLIENT_INSMOD_2(gl518sm_r00, gl518sm_r80);
53 52
54/* Many GL518 constants specified below */ 53/* Many GL518 constants specified below */
55 54
diff --git a/drivers/hwmon/gl520sm.c b/drivers/hwmon/gl520sm.c
index 18539c9559c6..de6608a159c3 100644
--- a/drivers/hwmon/gl520sm.c
+++ b/drivers/hwmon/gl520sm.c
@@ -26,7 +26,6 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/jiffies.h> 27#include <linux/jiffies.h>
28#include <linux/i2c.h> 28#include <linux/i2c.h>
29#include <linux/i2c-sensor.h>
30#include <linux/i2c-vid.h> 29#include <linux/i2c-vid.h>
31#include <linux/hwmon.h> 30#include <linux/hwmon.h>
32#include <linux/err.h> 31#include <linux/err.h>
@@ -40,7 +39,7 @@ MODULE_PARM_DESC(extra_sensor_type, "Type of extra sensor (0=autodetect, 1=tempe
40static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END }; 39static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
41 40
42/* Insmod parameters */ 41/* Insmod parameters */
43SENSORS_INSMOD_1(gl520sm); 42I2C_CLIENT_INSMOD_1(gl520sm);
44 43
45/* Many GL520 constants specified below 44/* Many GL520 constants specified below
46One of the inputs can be configured as either temp or voltage. 45One of the inputs can be configured as either temp or voltage.
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index d1e04c40e64c..84877665b66e 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -37,7 +37,6 @@
37#include <linux/jiffies.h> 37#include <linux/jiffies.h>
38#include <linux/i2c.h> 38#include <linux/i2c.h>
39#include <linux/i2c-isa.h> 39#include <linux/i2c-isa.h>
40#include <linux/i2c-sensor.h>
41#include <linux/i2c-vid.h> 40#include <linux/i2c-vid.h>
42#include <linux/hwmon-sysfs.h> 41#include <linux/hwmon-sysfs.h>
43#include <linux/hwmon.h> 42#include <linux/hwmon.h>
@@ -51,7 +50,7 @@ static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
51static unsigned short isa_address = 0x290; 50static unsigned short isa_address = 0x290;
52 51
53/* Insmod parameters */ 52/* Insmod parameters */
54SENSORS_INSMOD_2(it87, it8712); 53I2C_CLIENT_INSMOD_2(it87, it8712);
55 54
56#define REG 0x2e /* The register to read/write */ 55#define REG 0x2e /* The register to read/write */
57#define DEV 0x07 /* Register: Logical device select */ 56#define DEV 0x07 /* Register: Logical device select */
diff --git a/drivers/hwmon/lm63.c b/drivers/hwmon/lm63.c
index dd2702131aed..be5c7095ecbb 100644
--- a/drivers/hwmon/lm63.c
+++ b/drivers/hwmon/lm63.c
@@ -42,7 +42,6 @@
42#include <linux/slab.h> 42#include <linux/slab.h>
43#include <linux/jiffies.h> 43#include <linux/jiffies.h>
44#include <linux/i2c.h> 44#include <linux/i2c.h>
45#include <linux/i2c-sensor.h>
46#include <linux/hwmon-sysfs.h> 45#include <linux/hwmon-sysfs.h>
47#include <linux/hwmon.h> 46#include <linux/hwmon.h>
48#include <linux/err.h> 47#include <linux/err.h>
@@ -58,7 +57,7 @@ static unsigned short normal_i2c[] = { 0x4c, I2C_CLIENT_END };
58 * Insmod parameters 57 * Insmod parameters
59 */ 58 */
60 59
61SENSORS_INSMOD_1(lm63); 60I2C_CLIENT_INSMOD_1(lm63);
62 61
63/* 62/*
64 * The LM63 registers 63 * The LM63 registers
diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c
index bd39452db895..9a3ebdf583f4 100644
--- a/drivers/hwmon/lm75.c
+++ b/drivers/hwmon/lm75.c
@@ -23,7 +23,6 @@
23#include <linux/slab.h> 23#include <linux/slab.h>
24#include <linux/jiffies.h> 24#include <linux/jiffies.h>
25#include <linux/i2c.h> 25#include <linux/i2c.h>
26#include <linux/i2c-sensor.h>
27#include <linux/hwmon.h> 26#include <linux/hwmon.h>
28#include <linux/err.h> 27#include <linux/err.h>
29#include "lm75.h" 28#include "lm75.h"
@@ -34,7 +33,7 @@ static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
34 0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 33 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
35 34
36/* Insmod parameters */ 35/* Insmod parameters */
37SENSORS_INSMOD_1(lm75); 36I2C_CLIENT_INSMOD_1(lm75);
38 37
39/* Many LM75 constants specified below */ 38/* Many LM75 constants specified below */
40 39
diff --git a/drivers/hwmon/lm77.c b/drivers/hwmon/lm77.c
index 52218570f874..866eab96a6f6 100644
--- a/drivers/hwmon/lm77.c
+++ b/drivers/hwmon/lm77.c
@@ -30,7 +30,6 @@
30#include <linux/slab.h> 30#include <linux/slab.h>
31#include <linux/jiffies.h> 31#include <linux/jiffies.h>
32#include <linux/i2c.h> 32#include <linux/i2c.h>
33#include <linux/i2c-sensor.h>
34#include <linux/hwmon.h> 33#include <linux/hwmon.h>
35#include <linux/err.h> 34#include <linux/err.h>
36 35
@@ -38,7 +37,7 @@
38static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, I2C_CLIENT_END }; 37static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, I2C_CLIENT_END };
39 38
40/* Insmod parameters */ 39/* Insmod parameters */
41SENSORS_INSMOD_1(lm77); 40I2C_CLIENT_INSMOD_1(lm77);
42 41
43/* The LM77 registers */ 42/* The LM77 registers */
44#define LM77_REG_TEMP 0x00 43#define LM77_REG_TEMP 0x00
diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c
index 008fd9310061..51c0b37c4990 100644
--- a/drivers/hwmon/lm78.c
+++ b/drivers/hwmon/lm78.c
@@ -24,7 +24,6 @@
24#include <linux/jiffies.h> 24#include <linux/jiffies.h>
25#include <linux/i2c.h> 25#include <linux/i2c.h>
26#include <linux/i2c-isa.h> 26#include <linux/i2c-isa.h>
27#include <linux/i2c-sensor.h>
28#include <linux/hwmon.h> 27#include <linux/hwmon.h>
29#include <linux/err.h> 28#include <linux/err.h>
30#include <asm/io.h> 29#include <asm/io.h>
@@ -37,7 +36,7 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24,
37static unsigned short isa_address = 0x290; 36static unsigned short isa_address = 0x290;
38 37
39/* Insmod parameters */ 38/* Insmod parameters */
40SENSORS_INSMOD_2(lm78, lm79); 39I2C_CLIENT_INSMOD_2(lm78, lm79);
41 40
42/* Many LM78 constants specified below */ 41/* Many LM78 constants specified below */
43 42
diff --git a/drivers/hwmon/lm80.c b/drivers/hwmon/lm80.c
index 500c38f3feae..83af8b3a0cac 100644
--- a/drivers/hwmon/lm80.c
+++ b/drivers/hwmon/lm80.c
@@ -26,7 +26,6 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/jiffies.h> 27#include <linux/jiffies.h>
28#include <linux/i2c.h> 28#include <linux/i2c.h>
29#include <linux/i2c-sensor.h>
30#include <linux/hwmon.h> 29#include <linux/hwmon.h>
31#include <linux/err.h> 30#include <linux/err.h>
32 31
@@ -35,7 +34,7 @@ static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c,
35 0x2d, 0x2e, 0x2f, I2C_CLIENT_END }; 34 0x2d, 0x2e, 0x2f, I2C_CLIENT_END };
36 35
37/* Insmod parameters */ 36/* Insmod parameters */
38SENSORS_INSMOD_1(lm80); 37I2C_CLIENT_INSMOD_1(lm80);
39 38
40/* Many LM80 constants specified below */ 39/* Many LM80 constants specified below */
41 40
diff --git a/drivers/hwmon/lm83.c b/drivers/hwmon/lm83.c
index 5b78d19693e8..d74b2c20c719 100644
--- a/drivers/hwmon/lm83.c
+++ b/drivers/hwmon/lm83.c
@@ -32,7 +32,6 @@
32#include <linux/slab.h> 32#include <linux/slab.h>
33#include <linux/jiffies.h> 33#include <linux/jiffies.h>
34#include <linux/i2c.h> 34#include <linux/i2c.h>
35#include <linux/i2c-sensor.h>
36#include <linux/hwmon-sysfs.h> 35#include <linux/hwmon-sysfs.h>
37#include <linux/hwmon.h> 36#include <linux/hwmon.h>
38#include <linux/err.h> 37#include <linux/err.h>
@@ -52,7 +51,7 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
52 * Insmod parameters 51 * Insmod parameters
53 */ 52 */
54 53
55SENSORS_INSMOD_1(lm83); 54I2C_CLIENT_INSMOD_1(lm83);
56 55
57/* 56/*
58 * The LM83 registers 57 * The LM83 registers
diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c
index 8976565113f4..aeb478815f72 100644
--- a/drivers/hwmon/lm85.c
+++ b/drivers/hwmon/lm85.c
@@ -28,7 +28,6 @@
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/jiffies.h> 29#include <linux/jiffies.h>
30#include <linux/i2c.h> 30#include <linux/i2c.h>
31#include <linux/i2c-sensor.h>
32#include <linux/i2c-vid.h> 31#include <linux/i2c-vid.h>
33#include <linux/hwmon.h> 32#include <linux/hwmon.h>
34#include <linux/err.h> 33#include <linux/err.h>
@@ -37,7 +36,7 @@
37static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; 36static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
38 37
39/* Insmod parameters */ 38/* Insmod parameters */
40SENSORS_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102); 39I2C_CLIENT_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102);
41 40
42/* The LM85 registers */ 41/* The LM85 registers */
43 42
diff --git a/drivers/hwmon/lm87.c b/drivers/hwmon/lm87.c
index af161203ce1d..d0d2464c1b73 100644
--- a/drivers/hwmon/lm87.c
+++ b/drivers/hwmon/lm87.c
@@ -57,7 +57,6 @@
57#include <linux/slab.h> 57#include <linux/slab.h>
58#include <linux/jiffies.h> 58#include <linux/jiffies.h>
59#include <linux/i2c.h> 59#include <linux/i2c.h>
60#include <linux/i2c-sensor.h>
61#include <linux/i2c-vid.h> 60#include <linux/i2c-vid.h>
62#include <linux/hwmon.h> 61#include <linux/hwmon.h>
63#include <linux/err.h> 62#include <linux/err.h>
@@ -73,7 +72,7 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
73 * Insmod parameters 72 * Insmod parameters
74 */ 73 */
75 74
76SENSORS_INSMOD_1(lm87); 75I2C_CLIENT_INSMOD_1(lm87);
77 76
78/* 77/*
79 * The LM87 registers 78 * The LM87 registers
diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
index 68155c72a4e4..14de05fcd431 100644
--- a/drivers/hwmon/lm90.c
+++ b/drivers/hwmon/lm90.c
@@ -75,7 +75,6 @@
75#include <linux/slab.h> 75#include <linux/slab.h>
76#include <linux/jiffies.h> 76#include <linux/jiffies.h>
77#include <linux/i2c.h> 77#include <linux/i2c.h>
78#include <linux/i2c-sensor.h>
79#include <linux/hwmon-sysfs.h> 78#include <linux/hwmon-sysfs.h>
80#include <linux/hwmon.h> 79#include <linux/hwmon.h>
81#include <linux/err.h> 80#include <linux/err.h>
@@ -96,7 +95,7 @@ static unsigned short normal_i2c[] = { 0x4c, 0x4d, I2C_CLIENT_END };
96 * Insmod parameters 95 * Insmod parameters
97 */ 96 */
98 97
99SENSORS_INSMOD_6(lm90, adm1032, lm99, lm86, max6657, adt7461); 98I2C_CLIENT_INSMOD_6(lm90, adm1032, lm99, lm86, max6657, adt7461);
100 99
101/* 100/*
102 * The LM90 registers 101 * The LM90 registers
diff --git a/drivers/hwmon/lm92.c b/drivers/hwmon/lm92.c
index 7ddc9116d091..647b7c7cd575 100644
--- a/drivers/hwmon/lm92.c
+++ b/drivers/hwmon/lm92.c
@@ -44,7 +44,6 @@
44#include <linux/init.h> 44#include <linux/init.h>
45#include <linux/slab.h> 45#include <linux/slab.h>
46#include <linux/i2c.h> 46#include <linux/i2c.h>
47#include <linux/i2c-sensor.h>
48#include <linux/hwmon.h> 47#include <linux/hwmon.h>
49#include <linux/err.h> 48#include <linux/err.h>
50 49
@@ -54,7 +53,7 @@ static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b,
54 I2C_CLIENT_END }; 53 I2C_CLIENT_END };
55 54
56/* Insmod parameters */ 55/* Insmod parameters */
57SENSORS_INSMOD_1(lm92); 56I2C_CLIENT_INSMOD_1(lm92);
58 57
59/* The LM92 registers */ 58/* The LM92 registers */
60#define LM92_REG_CONFIG 0x01 /* 8-bit, RW */ 59#define LM92_REG_CONFIG 0x01 /* 8-bit, RW */
diff --git a/drivers/hwmon/max1619.c b/drivers/hwmon/max1619.c
index 056506bae5f2..16bf71f3a04d 100644
--- a/drivers/hwmon/max1619.c
+++ b/drivers/hwmon/max1619.c
@@ -31,7 +31,6 @@
31#include <linux/slab.h> 31#include <linux/slab.h>
32#include <linux/jiffies.h> 32#include <linux/jiffies.h>
33#include <linux/i2c.h> 33#include <linux/i2c.h>
34#include <linux/i2c-sensor.h>
35#include <linux/hwmon.h> 34#include <linux/hwmon.h>
36#include <linux/err.h> 35#include <linux/err.h>
37 36
@@ -44,7 +43,7 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
44 * Insmod parameters 43 * Insmod parameters
45 */ 44 */
46 45
47SENSORS_INSMOD_1(max1619); 46I2C_CLIENT_INSMOD_1(max1619);
48 47
49/* 48/*
50 * The MAX1619 registers 49 * The MAX1619 registers
diff --git a/drivers/hwmon/sis5595.c b/drivers/hwmon/sis5595.c
index 55716cb579aa..8610bce08244 100644
--- a/drivers/hwmon/sis5595.c
+++ b/drivers/hwmon/sis5595.c
@@ -56,7 +56,6 @@
56#include <linux/pci.h> 56#include <linux/pci.h>
57#include <linux/i2c.h> 57#include <linux/i2c.h>
58#include <linux/i2c-isa.h> 58#include <linux/i2c-isa.h>
59#include <linux/i2c-sensor.h>
60#include <linux/hwmon.h> 59#include <linux/hwmon.h>
61#include <linux/err.h> 60#include <linux/err.h>
62#include <linux/init.h> 61#include <linux/init.h>
diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c
index dab22bd75b68..7e699a8ede26 100644
--- a/drivers/hwmon/smsc47m1.c
+++ b/drivers/hwmon/smsc47m1.c
@@ -31,7 +31,6 @@
31#include <linux/jiffies.h> 31#include <linux/jiffies.h>
32#include <linux/i2c.h> 32#include <linux/i2c.h>
33#include <linux/i2c-isa.h> 33#include <linux/i2c-isa.h>
34#include <linux/i2c-sensor.h>
35#include <linux/hwmon.h> 34#include <linux/hwmon.h>
36#include <linux/err.h> 35#include <linux/err.h>
37#include <linux/init.h> 36#include <linux/init.h>
diff --git a/drivers/hwmon/via686a.c b/drivers/hwmon/via686a.c
index d9251fb0b625..eb84997627c8 100644
--- a/drivers/hwmon/via686a.c
+++ b/drivers/hwmon/via686a.c
@@ -36,7 +36,6 @@
36#include <linux/jiffies.h> 36#include <linux/jiffies.h>
37#include <linux/i2c.h> 37#include <linux/i2c.h>
38#include <linux/i2c-isa.h> 38#include <linux/i2c-isa.h>
39#include <linux/i2c-sensor.h>
40#include <linux/hwmon.h> 39#include <linux/hwmon.h>
41#include <linux/err.h> 40#include <linux/err.h>
42#include <linux/init.h> 41#include <linux/init.h>
diff --git a/drivers/hwmon/w83627hf.c b/drivers/hwmon/w83627hf.c
index 0466cc4b760e..2d2fcfb706d7 100644
--- a/drivers/hwmon/w83627hf.c
+++ b/drivers/hwmon/w83627hf.c
@@ -43,7 +43,6 @@
43#include <linux/jiffies.h> 43#include <linux/jiffies.h>
44#include <linux/i2c.h> 44#include <linux/i2c.h>
45#include <linux/i2c-isa.h> 45#include <linux/i2c-isa.h>
46#include <linux/i2c-sensor.h>
47#include <linux/i2c-vid.h> 46#include <linux/i2c-vid.h>
48#include <linux/hwmon.h> 47#include <linux/hwmon.h>
49#include <linux/err.h> 48#include <linux/err.h>
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c
index f269faeffa47..47607983acfd 100644
--- a/drivers/hwmon/w83781d.c
+++ b/drivers/hwmon/w83781d.c
@@ -39,7 +39,6 @@
39#include <linux/jiffies.h> 39#include <linux/jiffies.h>
40#include <linux/i2c.h> 40#include <linux/i2c.h>
41#include <linux/i2c-isa.h> 41#include <linux/i2c-isa.h>
42#include <linux/i2c-sensor.h>
43#include <linux/i2c-vid.h> 42#include <linux/i2c-vid.h>
44#include <linux/hwmon.h> 43#include <linux/hwmon.h>
45#include <linux/err.h> 44#include <linux/err.h>
@@ -53,7 +52,7 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
53static unsigned short isa_address = 0x290; 52static unsigned short isa_address = 0x290;
54 53
55/* Insmod parameters */ 54/* Insmod parameters */
56SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f); 55I2C_CLIENT_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f);
57I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: " 56I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
58 "{bus, clientaddr, subclientaddr1, subclientaddr2}"); 57 "{bus, clientaddr, subclientaddr1, subclientaddr2}");
59 58
diff --git a/drivers/hwmon/w83792d.c b/drivers/hwmon/w83792d.c
index 49e3ccd84bd0..d6d8c0f04e32 100644
--- a/drivers/hwmon/w83792d.c
+++ b/drivers/hwmon/w83792d.c
@@ -40,7 +40,6 @@
40#include <linux/init.h> 40#include <linux/init.h>
41#include <linux/slab.h> 41#include <linux/slab.h>
42#include <linux/i2c.h> 42#include <linux/i2c.h>
43#include <linux/i2c-sensor.h>
44#include <linux/i2c-vid.h> 43#include <linux/i2c-vid.h>
45#include <linux/hwmon.h> 44#include <linux/hwmon.h>
46#include <linux/hwmon-sysfs.h> 45#include <linux/hwmon-sysfs.h>
@@ -50,7 +49,7 @@
50static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END }; 49static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END };
51 50
52/* Insmod parameters */ 51/* Insmod parameters */
53SENSORS_INSMOD_1(w83792d); 52I2C_CLIENT_INSMOD_1(w83792d);
54I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: " 53I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
55 "{bus, clientaddr, subclientaddr1, subclientaddr2}"); 54 "{bus, clientaddr, subclientaddr1, subclientaddr2}");
56 55
diff --git a/drivers/hwmon/w83l785ts.c b/drivers/hwmon/w83l785ts.c
index 129d4012e8fd..133e34ab1d0a 100644
--- a/drivers/hwmon/w83l785ts.c
+++ b/drivers/hwmon/w83l785ts.c
@@ -36,7 +36,6 @@
36#include <linux/slab.h> 36#include <linux/slab.h>
37#include <linux/jiffies.h> 37#include <linux/jiffies.h>
38#include <linux/i2c.h> 38#include <linux/i2c.h>
39#include <linux/i2c-sensor.h>
40#include <linux/hwmon.h> 39#include <linux/hwmon.h>
41#include <linux/err.h> 40#include <linux/err.h>
42 41
@@ -54,7 +53,7 @@ static unsigned short normal_i2c[] = { 0x2e, I2C_CLIENT_END };
54 * Insmod parameters 53 * Insmod parameters
55 */ 54 */
56 55
57SENSORS_INSMOD_1(w83l785ts); 56I2C_CLIENT_INSMOD_1(w83l785ts);
58 57
59/* 58/*
60 * The W83L785TS-S registers 59 * The W83L785TS-S registers
diff --git a/drivers/i2c/chips/ds1337.c b/drivers/i2c/chips/ds1337.c
index c612f19fc7e6..9d3175c03395 100644
--- a/drivers/i2c/chips/ds1337.c
+++ b/drivers/i2c/chips/ds1337.c
@@ -17,7 +17,6 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/i2c.h> 19#include <linux/i2c.h>
20#include <linux/i2c-sensor.h>
21#include <linux/string.h> 20#include <linux/string.h>
22#include <linux/rtc.h> /* get the user-level API */ 21#include <linux/rtc.h> /* get the user-level API */
23#include <linux/bcd.h> 22#include <linux/bcd.h>
@@ -40,7 +39,7 @@
40 */ 39 */
41static unsigned short normal_i2c[] = { 0x68, I2C_CLIENT_END }; 40static unsigned short normal_i2c[] = { 0x68, I2C_CLIENT_END };
42 41
43SENSORS_INSMOD_1(ds1337); 42I2C_CLIENT_INSMOD_1(ds1337);
44 43
45static int ds1337_attach_adapter(struct i2c_adapter *adapter); 44static int ds1337_attach_adapter(struct i2c_adapter *adapter);
46static int ds1337_detect(struct i2c_adapter *adapter, int address, int kind); 45static int ds1337_detect(struct i2c_adapter *adapter, int address, int kind);
diff --git a/drivers/i2c/chips/eeprom.c b/drivers/i2c/chips/eeprom.c
index befac01ecda6..a27420a54c84 100644
--- a/drivers/i2c/chips/eeprom.c
+++ b/drivers/i2c/chips/eeprom.c
@@ -33,14 +33,13 @@
33#include <linux/sched.h> 33#include <linux/sched.h>
34#include <linux/jiffies.h> 34#include <linux/jiffies.h>
35#include <linux/i2c.h> 35#include <linux/i2c.h>
36#include <linux/i2c-sensor.h>
37 36
38/* Addresses to scan */ 37/* Addresses to scan */
39static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54, 38static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54,
40 0x55, 0x56, 0x57, I2C_CLIENT_END }; 39 0x55, 0x56, 0x57, I2C_CLIENT_END };
41 40
42/* Insmod parameters */ 41/* Insmod parameters */
43SENSORS_INSMOD_1(eeprom); 42I2C_CLIENT_INSMOD_1(eeprom);
44 43
45 44
46/* Size of EEPROM in bytes */ 45/* Size of EEPROM in bytes */
diff --git a/drivers/i2c/chips/max6875.c b/drivers/i2c/chips/max6875.c
index 42663f921ecc..31cee2d34a17 100644
--- a/drivers/i2c/chips/max6875.c
+++ b/drivers/i2c/chips/max6875.c
@@ -31,14 +31,13 @@
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/slab.h> 32#include <linux/slab.h>
33#include <linux/i2c.h> 33#include <linux/i2c.h>
34#include <linux/i2c-sensor.h>
35#include <asm/semaphore.h> 34#include <asm/semaphore.h>
36 35
37/* Do not scan - the MAX6875 access method will write to some EEPROM chips */ 36/* Do not scan - the MAX6875 access method will write to some EEPROM chips */
38static unsigned short normal_i2c[] = {I2C_CLIENT_END}; 37static unsigned short normal_i2c[] = {I2C_CLIENT_END};
39 38
40/* Insmod parameters */ 39/* Insmod parameters */
41SENSORS_INSMOD_1(max6875); 40I2C_CLIENT_INSMOD_1(max6875);
42 41
43/* The MAX6875 can only read/write 16 bytes at a time */ 42/* The MAX6875 can only read/write 16 bytes at a time */
44#define SLICE_SIZE 16 43#define SLICE_SIZE 16
diff --git a/drivers/i2c/chips/pca9539.c b/drivers/i2c/chips/pca9539.c
index c8ea2a1e1a45..225577fdda4d 100644
--- a/drivers/i2c/chips/pca9539.c
+++ b/drivers/i2c/chips/pca9539.c
@@ -13,13 +13,12 @@
13#include <linux/slab.h> 13#include <linux/slab.h>
14#include <linux/i2c.h> 14#include <linux/i2c.h>
15#include <linux/hwmon-sysfs.h> 15#include <linux/hwmon-sysfs.h>
16#include <linux/i2c-sensor.h>
17 16
18/* Addresses to scan */ 17/* Addresses to scan */
19static unsigned short normal_i2c[] = {0x74, 0x75, 0x76, 0x77, I2C_CLIENT_END}; 18static unsigned short normal_i2c[] = {0x74, 0x75, 0x76, 0x77, I2C_CLIENT_END};
20 19
21/* Insmod parameters */ 20/* Insmod parameters */
22SENSORS_INSMOD_1(pca9539); 21I2C_CLIENT_INSMOD_1(pca9539);
23 22
24enum pca9539_cmd 23enum pca9539_cmd
25{ 24{
diff --git a/drivers/i2c/chips/pcf8574.c b/drivers/i2c/chips/pcf8574.c
index 01ec9ce19768..6525743ff9fd 100644
--- a/drivers/i2c/chips/pcf8574.c
+++ b/drivers/i2c/chips/pcf8574.c
@@ -39,7 +39,6 @@
39#include <linux/init.h> 39#include <linux/init.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/i2c.h> 41#include <linux/i2c.h>
42#include <linux/i2c-sensor.h>
43 42
44/* Addresses to scan */ 43/* Addresses to scan */
45static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 44static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
@@ -47,7 +46,7 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
47 I2C_CLIENT_END }; 46 I2C_CLIENT_END };
48 47
49/* Insmod parameters */ 48/* Insmod parameters */
50SENSORS_INSMOD_2(pcf8574, pcf8574a); 49I2C_CLIENT_INSMOD_2(pcf8574, pcf8574a);
51 50
52/* Initial values */ 51/* Initial values */
53#define PCF8574_INIT 255 /* All outputs on (input mode) */ 52#define PCF8574_INIT 255 /* All outputs on (input mode) */
diff --git a/drivers/i2c/chips/pcf8591.c b/drivers/i2c/chips/pcf8591.c
index dd03f2c725c8..80f1df9a4500 100644
--- a/drivers/i2c/chips/pcf8591.c
+++ b/drivers/i2c/chips/pcf8591.c
@@ -24,14 +24,13 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/slab.h> 25#include <linux/slab.h>
26#include <linux/i2c.h> 26#include <linux/i2c.h>
27#include <linux/i2c-sensor.h>
28 27
29/* Addresses to scan */ 28/* Addresses to scan */
30static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c, 29static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
31 0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 30 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
32 31
33/* Insmod parameters */ 32/* Insmod parameters */
34SENSORS_INSMOD_1(pcf8591); 33I2C_CLIENT_INSMOD_1(pcf8591);
35 34
36static int input_mode; 35static int input_mode;
37module_param(input_mode, int, 0); 36module_param(input_mode, int, 0);
diff --git a/include/linux/i2c-sensor.h b/include/linux/i2c-sensor.h
deleted file mode 100644
index 1563d445dfd1..000000000000
--- a/include/linux/i2c-sensor.h
+++ /dev/null
@@ -1,203 +0,0 @@
1/*
2 i2c-sensor.h - Part of the i2c package
3 was originally sensors.h - Part of lm_sensors, Linux kernel modules
4 for hardware monitoring
5 Copyright (c) 1998, 1999 Frodo Looijaard <frodol@dds.nl>
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20*/
21
22#ifndef _LINUX_I2C_SENSOR_H
23#define _LINUX_I2C_SENSOR_H
24
25#include <linux/i2c.h>
26
27#define SENSORS_MODULE_PARM_FORCE(name) \
28 I2C_CLIENT_MODULE_PARM(force_ ## name, \
29 "List of adapter,address pairs which are unquestionably" \
30 " assumed to contain a `" # name "' chip")
31
32
33/* This defines several insmod variables, and the addr_data structure */
34#define SENSORS_INSMOD \
35 I2C_CLIENT_MODULE_PARM(probe, \
36 "List of adapter,address pairs to scan additionally"); \
37 I2C_CLIENT_MODULE_PARM(ignore, \
38 "List of adapter,address pairs not to scan"); \
39 static struct i2c_client_address_data addr_data = { \
40 .normal_i2c = normal_i2c, \
41 .probe = probe, \
42 .ignore = ignore, \
43 .forces = forces, \
44 }
45
46/* The following functions create an enum with the chip names as elements.
47 The first element of the enum is any_chip. These are the only macros
48 a module will want to use. */
49
50#define SENSORS_INSMOD_0 \
51 enum chips { any_chip }; \
52 I2C_CLIENT_MODULE_PARM(force, \
53 "List of adapter,address pairs to boldly assume " \
54 "to be present"); \
55 static unsigned short *forces[] = { force, \
56 NULL }; \
57 SENSORS_INSMOD
58
59#define SENSORS_INSMOD_1(chip1) \
60 enum chips { any_chip, chip1 }; \
61 I2C_CLIENT_MODULE_PARM(force, \
62 "List of adapter,address pairs to boldly assume " \
63 "to be present"); \
64 SENSORS_MODULE_PARM_FORCE(chip1); \
65 static unsigned short *forces[] = { force, \
66 force_##chip1, \
67 NULL }; \
68 SENSORS_INSMOD
69
70#define SENSORS_INSMOD_2(chip1,chip2) \
71 enum chips { any_chip, chip1, chip2 }; \
72 I2C_CLIENT_MODULE_PARM(force, \
73 "List of adapter,address pairs to boldly assume " \
74 "to be present"); \
75 SENSORS_MODULE_PARM_FORCE(chip1); \
76 SENSORS_MODULE_PARM_FORCE(chip2); \
77 static unsigned short *forces[] = { force, \
78 force_##chip1, \
79 force_##chip2, \
80 NULL }; \
81 SENSORS_INSMOD
82
83#define SENSORS_INSMOD_3(chip1,chip2,chip3) \
84 enum chips { any_chip, chip1, chip2, chip3 }; \
85 I2C_CLIENT_MODULE_PARM(force, \
86 "List of adapter,address pairs to boldly assume " \
87 "to be present"); \
88 SENSORS_MODULE_PARM_FORCE(chip1); \
89 SENSORS_MODULE_PARM_FORCE(chip2); \
90 SENSORS_MODULE_PARM_FORCE(chip3); \
91 static unsigned short *forces[] = { force, \
92 force_##chip1, \
93 force_##chip2, \
94 force_##chip3, \
95 NULL }; \
96 SENSORS_INSMOD
97
98#define SENSORS_INSMOD_4(chip1,chip2,chip3,chip4) \
99 enum chips { any_chip, chip1, chip2, chip3, chip4 }; \
100 I2C_CLIENT_MODULE_PARM(force, \
101 "List of adapter,address pairs to boldly assume " \
102 "to be present"); \
103 SENSORS_MODULE_PARM_FORCE(chip1); \
104 SENSORS_MODULE_PARM_FORCE(chip2); \
105 SENSORS_MODULE_PARM_FORCE(chip3); \
106 SENSORS_MODULE_PARM_FORCE(chip4); \
107 static unsigned short *forces[] = { force, \
108 force_##chip1, \
109 force_##chip2, \
110 force_##chip3, \
111 force_##chip4, \
112 NULL}; \
113 SENSORS_INSMOD
114
115#define SENSORS_INSMOD_5(chip1,chip2,chip3,chip4,chip5) \
116 enum chips { any_chip, chip1, chip2, chip3, chip4, chip5 }; \
117 I2C_CLIENT_MODULE_PARM(force, \
118 "List of adapter,address pairs to boldly assume " \
119 "to be present"); \
120 SENSORS_MODULE_PARM_FORCE(chip1); \
121 SENSORS_MODULE_PARM_FORCE(chip2); \
122 SENSORS_MODULE_PARM_FORCE(chip3); \
123 SENSORS_MODULE_PARM_FORCE(chip4); \
124 SENSORS_MODULE_PARM_FORCE(chip5); \
125 static unsigned short *forces[] = { force, \
126 force_##chip1, \
127 force_##chip2, \
128 force_##chip3, \
129 force_##chip4, \
130 force_##chip5, \
131 NULL }; \
132 SENSORS_INSMOD
133
134#define SENSORS_INSMOD_6(chip1,chip2,chip3,chip4,chip5,chip6) \
135 enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6 }; \
136 I2C_CLIENT_MODULE_PARM(force, \
137 "List of adapter,address pairs to boldly assume " \
138 "to be present"); \
139 SENSORS_MODULE_PARM_FORCE(chip1); \
140 SENSORS_MODULE_PARM_FORCE(chip2); \
141 SENSORS_MODULE_PARM_FORCE(chip3); \
142 SENSORS_MODULE_PARM_FORCE(chip4); \
143 SENSORS_MODULE_PARM_FORCE(chip5); \
144 SENSORS_MODULE_PARM_FORCE(chip6); \
145 static unsigned short *forces[] = { force, \
146 force_##chip1, \
147 force_##chip2, \
148 force_##chip3, \
149 force_##chip4, \
150 force_##chip5, \
151 force_##chip6, \
152 NULL }; \
153 SENSORS_INSMOD
154
155#define SENSORS_INSMOD_7(chip1,chip2,chip3,chip4,chip5,chip6,chip7) \
156 enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, chip7 }; \
157 I2C_CLIENT_MODULE_PARM(force, \
158 "List of adapter,address pairs to boldly assume " \
159 "to be present"); \
160 SENSORS_MODULE_PARM_FORCE(chip1); \
161 SENSORS_MODULE_PARM_FORCE(chip2); \
162 SENSORS_MODULE_PARM_FORCE(chip3); \
163 SENSORS_MODULE_PARM_FORCE(chip4); \
164 SENSORS_MODULE_PARM_FORCE(chip5); \
165 SENSORS_MODULE_PARM_FORCE(chip6); \
166 SENSORS_MODULE_PARM_FORCE(chip7); \
167 static unsigned short *forces[] = { force, \
168 force_##chip1, \
169 force_##chip2, \
170 force_##chip3, \
171 force_##chip4, \
172 force_##chip5, \
173 force_##chip6, \
174 force_##chip7, \
175 NULL }; \
176 SENSORS_INSMOD
177
178#define SENSORS_INSMOD_8(chip1,chip2,chip3,chip4,chip5,chip6,chip7,chip8) \
179 enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, chip7, chip8 }; \
180 I2C_CLIENT_MODULE_PARM(force, \
181 "List of adapter,address pairs to boldly assume " \
182 "to be present"); \
183 SENSORS_MODULE_PARM_FORCE(chip1); \
184 SENSORS_MODULE_PARM_FORCE(chip2); \
185 SENSORS_MODULE_PARM_FORCE(chip3); \
186 SENSORS_MODULE_PARM_FORCE(chip4); \
187 SENSORS_MODULE_PARM_FORCE(chip5); \
188 SENSORS_MODULE_PARM_FORCE(chip6); \
189 SENSORS_MODULE_PARM_FORCE(chip7); \
190 SENSORS_MODULE_PARM_FORCE(chip8); \
191 static unsigned short *forces[] = { force, \
192 force_##chip1, \
193 force_##chip2, \
194 force_##chip3, \
195 force_##chip4, \
196 force_##chip5, \
197 force_##chip6, \
198 force_##chip7, \
199 force_##chip8, \
200 NULL }; \
201 SENSORS_INSMOD
202
203#endif /* def _LINUX_I2C_SENSOR_H */
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 9419bc5584ad..3ad3969b6f0d 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -565,24 +565,148 @@ union i2c_smbus_data {
565 module_param_array(var, short, &var##_num, 0); \ 565 module_param_array(var, short, &var##_num, 0); \
566 MODULE_PARM_DESC(var,desc) 566 MODULE_PARM_DESC(var,desc)
567 567
568/* This is the one you want to use in your own modules */ 568#define I2C_CLIENT_MODULE_PARM_FORCE(name) \
569I2C_CLIENT_MODULE_PARM(force_##name, \
570 "List of adapter,address pairs which are " \
571 "unquestionably assumed to contain a `" \
572 # name "' chip")
573
574
575#define I2C_CLIENT_INSMOD_COMMON \
576I2C_CLIENT_MODULE_PARM(probe, "List of adapter,address pairs to scan " \
577 "additionally"); \
578I2C_CLIENT_MODULE_PARM(ignore, "List of adapter,address pairs not to " \
579 "scan"); \
580static struct i2c_client_address_data addr_data = { \
581 .normal_i2c = normal_i2c, \
582 .probe = probe, \
583 .ignore = ignore, \
584 .forces = forces, \
585}
586
587/* These are the ones you want to use in your own drivers. Pick the one
588 which matches the number of devices the driver differenciates between. */
569#define I2C_CLIENT_INSMOD \ 589#define I2C_CLIENT_INSMOD \
570 I2C_CLIENT_MODULE_PARM(probe, \
571 "List of adapter,address pairs to scan additionally"); \
572 I2C_CLIENT_MODULE_PARM(ignore, \
573 "List of adapter,address pairs not to scan"); \
574 I2C_CLIENT_MODULE_PARM(force, \ 590 I2C_CLIENT_MODULE_PARM(force, \
575 "List of adapter,address pairs to boldly assume " \ 591 "List of adapter,address pairs to boldly assume " \
576 "to be present"); \ 592 "to be present"); \
577 static unsigned short *addr_forces[] = { \ 593 static unsigned short *forces[] = { \
578 force, \ 594 force, \
579 NULL \ 595 NULL \
580 }; \ 596 }; \
581 static struct i2c_client_address_data addr_data = { \ 597I2C_CLIENT_INSMOD_COMMON
582 .normal_i2c = normal_i2c, \ 598
583 .probe = probe, \ 599#define I2C_CLIENT_INSMOD_1(chip1) \
584 .ignore = ignore, \ 600enum chips { any_chip, chip1 }; \
585 .forces = addr_forces, \ 601I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
586 } 602 "boldly assume to be present"); \
603I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
604static unsigned short *forces[] = { force, force_##chip1, NULL }; \
605I2C_CLIENT_INSMOD_COMMON
606
607#define I2C_CLIENT_INSMOD_2(chip1, chip2) \
608enum chips { any_chip, chip1, chip2 }; \
609I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
610 "boldly assume to be present"); \
611I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
612I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
613static unsigned short *forces[] = { force, force_##chip1, \
614 force_##chip2, NULL }; \
615I2C_CLIENT_INSMOD_COMMON
616
617#define I2C_CLIENT_INSMOD_3(chip1, chip2, chip3) \
618enum chips { any_chip, chip1, chip2, chip3 }; \
619I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
620 "boldly assume to be present"); \
621I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
622I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
623I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
624static unsigned short *forces[] = { force, force_##chip1, \
625 force_##chip2, force_##chip3, \
626 NULL }; \
627I2C_CLIENT_INSMOD_COMMON
628
629#define I2C_CLIENT_INSMOD_4(chip1, chip2, chip3, chip4) \
630enum chips { any_chip, chip1, chip2, chip3, chip4 }; \
631I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
632 "boldly assume to be present"); \
633I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
634I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
635I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
636I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
637static unsigned short *forces[] = { force, force_##chip1, \
638 force_##chip2, force_##chip3, \
639 force_##chip4, NULL}; \
640I2C_CLIENT_INSMOD_COMMON
641
642#define I2C_CLIENT_INSMOD_5(chip1, chip2, chip3, chip4, chip5) \
643enum chips { any_chip, chip1, chip2, chip3, chip4, chip5 }; \
644I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
645 "boldly assume to be present"); \
646I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
647I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
648I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
649I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
650I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
651static unsigned short *forces[] = { force, force_##chip1, \
652 force_##chip2, force_##chip3, \
653 force_##chip4, force_##chip5, \
654 NULL }; \
655I2C_CLIENT_INSMOD_COMMON
656
657#define I2C_CLIENT_INSMOD_6(chip1, chip2, chip3, chip4, chip5, chip6) \
658enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6 }; \
659I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
660 "boldly assume to be present"); \
661I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
662I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
663I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
664I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
665I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
666I2C_CLIENT_MODULE_PARM_FORCE(chip6); \
667static unsigned short *forces[] = { force, force_##chip1, \
668 force_##chip2, force_##chip3, \
669 force_##chip4, force_##chip5, \
670 force_##chip6, NULL }; \
671I2C_CLIENT_INSMOD_COMMON
672
673#define I2C_CLIENT_INSMOD_7(chip1, chip2, chip3, chip4, chip5, chip6, chip7) \
674enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, \
675 chip7 }; \
676I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
677 "boldly assume to be present"); \
678I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
679I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
680I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
681I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
682I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
683I2C_CLIENT_MODULE_PARM_FORCE(chip6); \
684I2C_CLIENT_MODULE_PARM_FORCE(chip7); \
685static unsigned short *forces[] = { force, force_##chip1, \
686 force_##chip2, force_##chip3, \
687 force_##chip4, force_##chip5, \
688 force_##chip6, force_##chip7, \
689 NULL }; \
690I2C_CLIENT_INSMOD_COMMON
691
692#define I2C_CLIENT_INSMOD_8(chip1, chip2, chip3, chip4, chip5, chip6, chip7, chip8) \
693enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, \
694 chip7, chip8 }; \
695I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
696 "boldly assume to be present"); \
697I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
698I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
699I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
700I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
701I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
702I2C_CLIENT_MODULE_PARM_FORCE(chip6); \
703I2C_CLIENT_MODULE_PARM_FORCE(chip7); \
704I2C_CLIENT_MODULE_PARM_FORCE(chip8); \
705static unsigned short *forces[] = { force, force_##chip1, \
706 force_##chip2, force_##chip3, \
707 force_##chip4, force_##chip5, \
708 force_##chip6, force_##chip7, \
709 force_##chip8, NULL }; \
710I2C_CLIENT_INSMOD_COMMON
587 711
588#endif /* _LINUX_I2C_H */ 712#endif /* _LINUX_I2C_H */