mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
[PATCH] hwmon: hwmon vs i2c, second round (06/11)
The only thing left in i2c-sensor.h are module parameter definition macros. It's only an extension of what i2c.h offers, and this extension is not sensors-specific. As a matter of fact, a few non-sensors drivers use them. So we better merge them in i2c.h, and get rid of i2c-sensor.h altogether. Signed-off-by: Jean Delvare <khali@linux-fr> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
96478ef3f3
commit
f4b5026120
41 changed files with 188 additions and 342 deletions
|
@ -1,4 +1,4 @@
|
|||
Revision 4, 2004-03-30
|
||||
Revision 5, 2005-07-29
|
||||
Jean Delvare <khali@linux-fr.org>
|
||||
Greg KH <greg@kroah.com>
|
||||
|
||||
|
@ -17,13 +17,12 @@ yours for best results.
|
|||
|
||||
Technical changes:
|
||||
|
||||
* [Includes] Get rid of "version.h". Replace <linux/i2c-proc.h> with
|
||||
<linux/i2c-sensor.h>. Includes typically look like that:
|
||||
* [Includes] Get rid of "version.h" and <linux/i2c-proc.h>.
|
||||
Includes typically look like that:
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h> /* if you need VRM support */
|
||||
#include <asm/io.h> /* if you have I/O operations */
|
||||
Please respect this inclusion order. Some extra headers may be
|
||||
|
@ -31,6 +30,7 @@ Technical changes:
|
|||
|
||||
* [Addresses] SENSORS_I2C_END becomes I2C_CLIENT_END, ISA addresses
|
||||
are no more handled by the i2c core.
|
||||
SENSORS_INSMOD_<n> becomes I2C_CLIENT_INSMOD_<n>.
|
||||
|
||||
* [Client data] Get rid of sysctl_id. Try using standard names for
|
||||
register values (for example, temp_os becomes temp_max). You're
|
||||
|
|
|
@ -155,8 +155,8 @@ NOTE: If you want to write a `sensors' driver, the interface is slightly
|
|||
|
||||
|
||||
|
||||
Probing classes (i2c)
|
||||
---------------------
|
||||
Probing classes
|
||||
---------------
|
||||
|
||||
All parameters are given as lists of unsigned 16-bit integers. Lists are
|
||||
terminated by I2C_CLIENT_END.
|
||||
|
@ -171,12 +171,18 @@ The following lists are used internally:
|
|||
ignore: insmod parameter.
|
||||
A list of pairs. The first value is a bus number (-1 for any I2C bus),
|
||||
the second is the I2C address. These addresses are never probed.
|
||||
This parameter overrules 'normal' and 'probe', but not the 'force' lists.
|
||||
This parameter overrules the 'normal_i2c' list only.
|
||||
force: insmod parameter.
|
||||
A list of pairs. The first value is a bus number (-1 for any I2C bus),
|
||||
the second is the I2C address. A device is blindly assumed to be on
|
||||
the given address, no probing is done.
|
||||
|
||||
Additionally, kind-specific force lists may optionally be defined if
|
||||
the driver supports several chip kinds. They are grouped in a
|
||||
NULL-terminated list of pointers named forces, those first element if the
|
||||
generic force list mentioned above. Each additional list correspond to an
|
||||
insmod parameter of the form force_<kind>.
|
||||
|
||||
Fortunately, as a module writer, you just have to define the `normal_i2c'
|
||||
parameter. The complete declaration could look like this:
|
||||
|
||||
|
@ -186,61 +192,17 @@ parameter. The complete declaration could look like this:
|
|||
|
||||
/* Magic definition of all other variables and things */
|
||||
I2C_CLIENT_INSMOD;
|
||||
/* Or, if your driver supports, say, 2 kind of devices: */
|
||||
I2C_CLIENT_INSMOD_2(foo, bar);
|
||||
|
||||
If you use the multi-kind form, an enum will be defined for you:
|
||||
enum chips { any_chip, foo, bar, ... }
|
||||
You can then (and certainly should) use it in the driver code.
|
||||
|
||||
Note that you *have* to call the defined variable `normal_i2c',
|
||||
without any prefix!
|
||||
|
||||
|
||||
Probing classes (sensors)
|
||||
-------------------------
|
||||
|
||||
If you write a `sensors' driver, you use a slightly different interface.
|
||||
Also, we use a enum of chip types. Don't forget to include `sensors.h'.
|
||||
|
||||
The following lists are used internally. They are all lists of integers.
|
||||
|
||||
normal_i2c: filled in by the module writer. Terminated by I2C_CLIENT_END.
|
||||
A list of I2C addresses which should normally be examined.
|
||||
probe: insmod parameter. Initialize this list with I2C_CLIENT_END values.
|
||||
A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
|
||||
I2C bus), the second is the address. These addresses are also probed,
|
||||
as if they were in the 'normal' list.
|
||||
ignore: insmod parameter. Initialize this list with I2C_CLIENT_END values.
|
||||
A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
|
||||
I2C bus), the second is the I2C address. These addresses are never
|
||||
probed. This parameter overrules 'normal' and 'probe', but not the
|
||||
'force' lists.
|
||||
|
||||
Also used is a list of pointers to sensors_force_data structures:
|
||||
force_data: insmod parameters. A list, ending with an element of which
|
||||
the force field is NULL.
|
||||
Each element contains the type of chip and a list of pairs.
|
||||
The first value is a bus number (ANY_I2C_BUS for any I2C bus), the
|
||||
second is the address.
|
||||
These are automatically translated to insmod variables of the form
|
||||
force_foo.
|
||||
|
||||
So we have a generic insmod variabled `force', and chip-specific variables
|
||||
`force_CHIPNAME'.
|
||||
|
||||
Fortunately, as a module writer, you just have to define the `normal_i2c'
|
||||
parameter, and define what chip names are used. The complete declaration
|
||||
could look like this:
|
||||
/* Scan i2c addresses 0x37, and 0x48 to 0x4f */
|
||||
static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c,
|
||||
0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
|
||||
|
||||
/* Define chips foo and bar, as well as all module parameters and things */
|
||||
SENSORS_INSMOD_2(foo,bar);
|
||||
|
||||
If you have one chip, you use macro SENSORS_INSMOD_1(chip), if you have 2
|
||||
you use macro SENSORS_INSMOD_2(chip1,chip2), etc. If you do not want to
|
||||
bother with chip types, you can use SENSORS_INSMOD_0.
|
||||
|
||||
A enum is automatically defined as follows:
|
||||
enum chips { any_chip, chip1, chip2, ... }
|
||||
|
||||
|
||||
Attaching to an adapter
|
||||
-----------------------
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -36,7 +35,7 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
|
|||
I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066);
|
||||
I2C_CLIENT_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066);
|
||||
|
||||
/* adm1021 constants specified below */
|
||||
|
||||
|
|
|
@ -50,7 +50,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -67,7 +66,7 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_2(adm1025, ne1619);
|
||||
I2C_CLIENT_INSMOD_2(adm1025, ne1619);
|
||||
|
||||
/*
|
||||
* The ADM1025 registers
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
#include <linux/hwmon.h>
|
||||
|
@ -38,7 +37,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(adm1026);
|
||||
I2C_CLIENT_INSMOD_1(adm1026);
|
||||
|
||||
static int gpio_input[17] = { -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1 };
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -63,7 +62,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_2(adm1030, adm1031);
|
||||
I2C_CLIENT_INSMOD_2(adm1030, adm1031);
|
||||
|
||||
typedef u8 auto_chan_table_t[8][2];
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -55,7 +54,7 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f,
|
|||
I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_3(adm9240, ds1780, lm81);
|
||||
I2C_CLIENT_INSMOD_3(adm9240, ds1780, lm81);
|
||||
|
||||
/* ADM9240 registers */
|
||||
#define ADM9240_REG_MAN_ID 0x3e
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -57,7 +56,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x2d, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(asb100);
|
||||
I2C_CLIENT_INSMOD_1(asb100);
|
||||
I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
|
||||
"{bus, clientaddr, subclientaddr1, subclientaddr2}");
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -43,7 +42,7 @@ MODULE_AUTHOR("Sebastian Witt <se.witt@gmx.net>");
|
|||
|
||||
static unsigned short normal_i2c[] = { 0x37, 0x4e, I2C_CLIENT_END };
|
||||
|
||||
SENSORS_INSMOD_1(atxp1);
|
||||
I2C_CLIENT_INSMOD_1(atxp1);
|
||||
|
||||
static int atxp1_attach_adapter(struct i2c_adapter * adapter);
|
||||
static int atxp1_detach_client(struct i2c_client * client);
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
#include "lm75.h"
|
||||
|
@ -36,7 +35,7 @@ static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
|
|||
0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(ds1621);
|
||||
I2C_CLIENT_INSMOD_1(ds1621);
|
||||
static int polarity = -1;
|
||||
module_param(polarity, int, 0);
|
||||
MODULE_PARM_DESC(polarity, "Output's polarity: 0 = active high, 1 = active low");
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -45,7 +44,7 @@ static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_1(fscher);
|
||||
I2C_CLIENT_INSMOD_1(fscher);
|
||||
|
||||
/*
|
||||
* The FSCHER registers
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -47,7 +46,7 @@ static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
|
|||
/*
|
||||
* Insmod parameters
|
||||
*/
|
||||
SENSORS_INSMOD_1(fscpos);
|
||||
I2C_CLIENT_INSMOD_1(fscpos);
|
||||
|
||||
/*
|
||||
* The FSCPOS registers
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -49,7 +48,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_2(gl518sm_r00, gl518sm_r80);
|
||||
I2C_CLIENT_INSMOD_2(gl518sm_r00, gl518sm_r80);
|
||||
|
||||
/* Many GL518 constants specified below */
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -40,7 +39,7 @@ MODULE_PARM_DESC(extra_sensor_type, "Type of extra sensor (0=autodetect, 1=tempe
|
|||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(gl520sm);
|
||||
I2C_CLIENT_INSMOD_1(gl520sm);
|
||||
|
||||
/* Many GL520 constants specified below
|
||||
One of the inputs can be configured as either temp or voltage.
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
#include <linux/hwmon.h>
|
||||
|
@ -51,7 +50,7 @@ static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
|
|||
static unsigned short isa_address = 0x290;
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_2(it87, it8712);
|
||||
I2C_CLIENT_INSMOD_2(it87, it8712);
|
||||
|
||||
#define REG 0x2e /* The register to read/write */
|
||||
#define DEV 0x07 /* Register: Logical device select */
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -58,7 +57,7 @@ static unsigned short normal_i2c[] = { 0x4c, I2C_CLIENT_END };
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_1(lm63);
|
||||
I2C_CLIENT_INSMOD_1(lm63);
|
||||
|
||||
/*
|
||||
* The LM63 registers
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
#include "lm75.h"
|
||||
|
@ -34,7 +33,7 @@ static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
|
|||
0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(lm75);
|
||||
I2C_CLIENT_INSMOD_1(lm75);
|
||||
|
||||
/* Many LM75 constants specified below */
|
||||
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -38,7 +37,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(lm77);
|
||||
I2C_CLIENT_INSMOD_1(lm77);
|
||||
|
||||
/* The LM77 registers */
|
||||
#define LM77_REG_TEMP 0x00
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
#include <asm/io.h>
|
||||
|
@ -37,7 +36,7 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24,
|
|||
static unsigned short isa_address = 0x290;
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_2(lm78, lm79);
|
||||
I2C_CLIENT_INSMOD_2(lm78, lm79);
|
||||
|
||||
/* Many LM78 constants specified below */
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -35,7 +34,7 @@ static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c,
|
|||
0x2d, 0x2e, 0x2f, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(lm80);
|
||||
I2C_CLIENT_INSMOD_1(lm80);
|
||||
|
||||
/* Many LM80 constants specified below */
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -52,7 +51,7 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_1(lm83);
|
||||
I2C_CLIENT_INSMOD_1(lm83);
|
||||
|
||||
/*
|
||||
* The LM83 registers
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -37,7 +36,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102);
|
||||
I2C_CLIENT_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102);
|
||||
|
||||
/* The LM85 registers */
|
||||
|
||||
|
|
|
@ -57,7 +57,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -73,7 +72,7 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_1(lm87);
|
||||
I2C_CLIENT_INSMOD_1(lm87);
|
||||
|
||||
/*
|
||||
* The LM87 registers
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -96,7 +95,7 @@ static unsigned short normal_i2c[] = { 0x4c, 0x4d, I2C_CLIENT_END };
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_6(lm90, adm1032, lm99, lm86, max6657, adt7461);
|
||||
I2C_CLIENT_INSMOD_6(lm90, adm1032, lm99, lm86, max6657, adt7461);
|
||||
|
||||
/*
|
||||
* The LM90 registers
|
||||
|
|
|
@ -44,7 +44,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -54,7 +53,7 @@ static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b,
|
|||
I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(lm92);
|
||||
I2C_CLIENT_INSMOD_1(lm92);
|
||||
|
||||
/* The LM92 registers */
|
||||
#define LM92_REG_CONFIG 0x01 /* 8-bit, RW */
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -44,7 +43,7 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_1(max1619);
|
||||
I2C_CLIENT_INSMOD_1(max1619);
|
||||
|
||||
/*
|
||||
* The MAX1619 registers
|
||||
|
|
|
@ -56,7 +56,6 @@
|
|||
#include <linux/pci.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
@ -43,7 +43,6 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-isa.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -53,7 +52,7 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
|
|||
static unsigned short isa_address = 0x290;
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f);
|
||||
I2C_CLIENT_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f);
|
||||
I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
|
||||
"{bus, clientaddr, subclientaddr1, subclientaddr2}");
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/i2c-vid.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
|
@ -50,7 +49,7 @@
|
|||
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(w83792d);
|
||||
I2C_CLIENT_INSMOD_1(w83792d);
|
||||
I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
|
||||
"{bus, clientaddr, subclientaddr1, subclientaddr2}");
|
||||
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/hwmon.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
|
@ -54,7 +53,7 @@ static unsigned short normal_i2c[] = { 0x2e, I2C_CLIENT_END };
|
|||
* Insmod parameters
|
||||
*/
|
||||
|
||||
SENSORS_INSMOD_1(w83l785ts);
|
||||
I2C_CLIENT_INSMOD_1(w83l785ts);
|
||||
|
||||
/*
|
||||
* The W83L785TS-S registers
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/rtc.h> /* get the user-level API */
|
||||
#include <linux/bcd.h>
|
||||
|
@ -40,7 +39,7 @@
|
|||
*/
|
||||
static unsigned short normal_i2c[] = { 0x68, I2C_CLIENT_END };
|
||||
|
||||
SENSORS_INSMOD_1(ds1337);
|
||||
I2C_CLIENT_INSMOD_1(ds1337);
|
||||
|
||||
static int ds1337_attach_adapter(struct i2c_adapter *adapter);
|
||||
static int ds1337_detect(struct i2c_adapter *adapter, int address, int kind);
|
||||
|
|
|
@ -33,14 +33,13 @@
|
|||
#include <linux/sched.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
|
||||
/* Addresses to scan */
|
||||
static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54,
|
||||
0x55, 0x56, 0x57, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(eeprom);
|
||||
I2C_CLIENT_INSMOD_1(eeprom);
|
||||
|
||||
|
||||
/* Size of EEPROM in bytes */
|
||||
|
|
|
@ -31,14 +31,13 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
#include <asm/semaphore.h>
|
||||
|
||||
/* Do not scan - the MAX6875 access method will write to some EEPROM chips */
|
||||
static unsigned short normal_i2c[] = {I2C_CLIENT_END};
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(max6875);
|
||||
I2C_CLIENT_INSMOD_1(max6875);
|
||||
|
||||
/* The MAX6875 can only read/write 16 bytes at a time */
|
||||
#define SLICE_SIZE 16
|
||||
|
|
|
@ -13,13 +13,12 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/hwmon-sysfs.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
|
||||
/* Addresses to scan */
|
||||
static unsigned short normal_i2c[] = {0x74, 0x75, 0x76, 0x77, I2C_CLIENT_END};
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(pca9539);
|
||||
I2C_CLIENT_INSMOD_1(pca9539);
|
||||
|
||||
enum pca9539_cmd
|
||||
{
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
|
||||
/* Addresses to scan */
|
||||
static 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,
|
|||
I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_2(pcf8574, pcf8574a);
|
||||
I2C_CLIENT_INSMOD_2(pcf8574, pcf8574a);
|
||||
|
||||
/* Initial values */
|
||||
#define PCF8574_INIT 255 /* All outputs on (input mode) */
|
||||
|
|
|
@ -24,14 +24,13 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-sensor.h>
|
||||
|
||||
/* Addresses to scan */
|
||||
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
|
||||
0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
|
||||
|
||||
/* Insmod parameters */
|
||||
SENSORS_INSMOD_1(pcf8591);
|
||||
I2C_CLIENT_INSMOD_1(pcf8591);
|
||||
|
||||
static int input_mode;
|
||||
module_param(input_mode, int, 0);
|
||||
|
|
|
@ -1,203 +0,0 @@
|
|||
/*
|
||||
i2c-sensor.h - Part of the i2c package
|
||||
was originally sensors.h - Part of lm_sensors, Linux kernel modules
|
||||
for hardware monitoring
|
||||
Copyright (c) 1998, 1999 Frodo Looijaard <frodol@dds.nl>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_I2C_SENSOR_H
|
||||
#define _LINUX_I2C_SENSOR_H
|
||||
|
||||
#include <linux/i2c.h>
|
||||
|
||||
#define SENSORS_MODULE_PARM_FORCE(name) \
|
||||
I2C_CLIENT_MODULE_PARM(force_ ## name, \
|
||||
"List of adapter,address pairs which are unquestionably" \
|
||||
" assumed to contain a `" # name "' chip")
|
||||
|
||||
|
||||
/* This defines several insmod variables, and the addr_data structure */
|
||||
#define SENSORS_INSMOD \
|
||||
I2C_CLIENT_MODULE_PARM(probe, \
|
||||
"List of adapter,address pairs to scan additionally"); \
|
||||
I2C_CLIENT_MODULE_PARM(ignore, \
|
||||
"List of adapter,address pairs not to scan"); \
|
||||
static struct i2c_client_address_data addr_data = { \
|
||||
.normal_i2c = normal_i2c, \
|
||||
.probe = probe, \
|
||||
.ignore = ignore, \
|
||||
.forces = forces, \
|
||||
}
|
||||
|
||||
/* The following functions create an enum with the chip names as elements.
|
||||
The first element of the enum is any_chip. These are the only macros
|
||||
a module will want to use. */
|
||||
|
||||
#define SENSORS_INSMOD_0 \
|
||||
enum chips { any_chip }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_1(chip1) \
|
||||
enum chips { any_chip, chip1 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_2(chip1,chip2) \
|
||||
enum chips { any_chip, chip1, chip2 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_3(chip1,chip2,chip3) \
|
||||
enum chips { any_chip, chip1, chip2, chip3 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip3); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
force_##chip3, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_4(chip1,chip2,chip3,chip4) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip3); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip4); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
force_##chip3, \
|
||||
force_##chip4, \
|
||||
NULL}; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_5(chip1,chip2,chip3,chip4,chip5) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip3); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip4); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip5); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
force_##chip3, \
|
||||
force_##chip4, \
|
||||
force_##chip5, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_6(chip1,chip2,chip3,chip4,chip5,chip6) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip3); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip4); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip5); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip6); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
force_##chip3, \
|
||||
force_##chip4, \
|
||||
force_##chip5, \
|
||||
force_##chip6, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_7(chip1,chip2,chip3,chip4,chip5,chip6,chip7) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, chip7 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip3); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip4); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip5); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip6); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip7); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
force_##chip3, \
|
||||
force_##chip4, \
|
||||
force_##chip5, \
|
||||
force_##chip6, \
|
||||
force_##chip7, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#define SENSORS_INSMOD_8(chip1,chip2,chip3,chip4,chip5,chip6,chip7,chip8) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, chip7, chip8 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip1); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip2); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip3); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip4); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip5); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip6); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip7); \
|
||||
SENSORS_MODULE_PARM_FORCE(chip8); \
|
||||
static unsigned short *forces[] = { force, \
|
||||
force_##chip1, \
|
||||
force_##chip2, \
|
||||
force_##chip3, \
|
||||
force_##chip4, \
|
||||
force_##chip5, \
|
||||
force_##chip6, \
|
||||
force_##chip7, \
|
||||
force_##chip8, \
|
||||
NULL }; \
|
||||
SENSORS_INSMOD
|
||||
|
||||
#endif /* def _LINUX_I2C_SENSOR_H */
|
|
@ -565,24 +565,148 @@ union i2c_smbus_data {
|
|||
module_param_array(var, short, &var##_num, 0); \
|
||||
MODULE_PARM_DESC(var,desc)
|
||||
|
||||
/* This is the one you want to use in your own modules */
|
||||
#define I2C_CLIENT_MODULE_PARM_FORCE(name) \
|
||||
I2C_CLIENT_MODULE_PARM(force_##name, \
|
||||
"List of adapter,address pairs which are " \
|
||||
"unquestionably assumed to contain a `" \
|
||||
# name "' chip")
|
||||
|
||||
|
||||
#define I2C_CLIENT_INSMOD_COMMON \
|
||||
I2C_CLIENT_MODULE_PARM(probe, "List of adapter,address pairs to scan " \
|
||||
"additionally"); \
|
||||
I2C_CLIENT_MODULE_PARM(ignore, "List of adapter,address pairs not to " \
|
||||
"scan"); \
|
||||
static struct i2c_client_address_data addr_data = { \
|
||||
.normal_i2c = normal_i2c, \
|
||||
.probe = probe, \
|
||||
.ignore = ignore, \
|
||||
.forces = forces, \
|
||||
}
|
||||
|
||||
/* These are the ones you want to use in your own drivers. Pick the one
|
||||
which matches the number of devices the driver differenciates between. */
|
||||
#define I2C_CLIENT_INSMOD \
|
||||
I2C_CLIENT_MODULE_PARM(probe, \
|
||||
"List of adapter,address pairs to scan additionally"); \
|
||||
I2C_CLIENT_MODULE_PARM(ignore, \
|
||||
"List of adapter,address pairs not to scan"); \
|
||||
I2C_CLIENT_MODULE_PARM(force, \
|
||||
"List of adapter,address pairs to boldly assume " \
|
||||
"to be present"); \
|
||||
static unsigned short *addr_forces[] = { \
|
||||
static unsigned short *forces[] = { \
|
||||
force, \
|
||||
NULL \
|
||||
}; \
|
||||
static struct i2c_client_address_data addr_data = { \
|
||||
.normal_i2c = normal_i2c, \
|
||||
.probe = probe, \
|
||||
.ignore = ignore, \
|
||||
.forces = addr_forces, \
|
||||
}
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_1(chip1) \
|
||||
enum chips { any_chip, chip1 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_2(chip1, chip2) \
|
||||
enum chips { any_chip, chip1, chip2 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_3(chip1, chip2, chip3) \
|
||||
enum chips { any_chip, chip1, chip2, chip3 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, force_##chip3, \
|
||||
NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_4(chip1, chip2, chip3, chip4) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, force_##chip3, \
|
||||
force_##chip4, NULL}; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_5(chip1, chip2, chip3, chip4, chip5) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, force_##chip3, \
|
||||
force_##chip4, force_##chip5, \
|
||||
NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_6(chip1, chip2, chip3, chip4, chip5, chip6) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip6); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, force_##chip3, \
|
||||
force_##chip4, force_##chip5, \
|
||||
force_##chip6, NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_7(chip1, chip2, chip3, chip4, chip5, chip6, chip7) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, \
|
||||
chip7 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip6); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip7); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, force_##chip3, \
|
||||
force_##chip4, force_##chip5, \
|
||||
force_##chip6, force_##chip7, \
|
||||
NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#define I2C_CLIENT_INSMOD_8(chip1, chip2, chip3, chip4, chip5, chip6, chip7, chip8) \
|
||||
enum chips { any_chip, chip1, chip2, chip3, chip4, chip5, chip6, \
|
||||
chip7, chip8 }; \
|
||||
I2C_CLIENT_MODULE_PARM(force, "List of adapter,address pairs to " \
|
||||
"boldly assume to be present"); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip1); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip2); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip3); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip4); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip5); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip6); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip7); \
|
||||
I2C_CLIENT_MODULE_PARM_FORCE(chip8); \
|
||||
static unsigned short *forces[] = { force, force_##chip1, \
|
||||
force_##chip2, force_##chip3, \
|
||||
force_##chip4, force_##chip5, \
|
||||
force_##chip6, force_##chip7, \
|
||||
force_##chip8, NULL }; \
|
||||
I2C_CLIENT_INSMOD_COMMON
|
||||
|
||||
#endif /* _LINUX_I2C_H */
|
||||
|
|
Loading…
Reference in a new issue