提交 5071860a 编写于 作者: J Jean Delvare 提交者: Greg Kroah-Hartman

[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (7/9)

Kill normal_isa in header files, documentation and all chip drivers, as
it is no more used.

normal_i2c could be renamed to normal, but I decided not to do so at the
moment, so as to limit the number of changes. This might be done later
as part of the i2c_probe/i2c_detect merge.
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 4926c0d4
...@@ -29,8 +29,8 @@ Technical changes: ...@@ -29,8 +29,8 @@ Technical changes:
Please respect this inclusion order. Some extra headers may be Please respect this inclusion order. Some extra headers may be
required for a given driver (e.g. "lm75.h"). required for a given driver (e.g. "lm75.h").
* [Addresses] SENSORS_I2C_END becomes I2C_CLIENT_END, SENSORS_ISA_END * [Addresses] SENSORS_I2C_END becomes I2C_CLIENT_END, ISA addresses
becomes I2C_CLIENT_ISA_END. are no more handled by the i2c core.
* [Client data] Get rid of sysctl_id. Try using standard names for * [Client data] Get rid of sysctl_id. Try using standard names for
register values (for example, temp_os becomes temp_max). You're register values (for example, temp_os becomes temp_max). You're
...@@ -72,7 +72,8 @@ Technical changes: ...@@ -72,7 +72,8 @@ Technical changes:
name string, which will be filled with a lowercase, short string name string, which will be filled with a lowercase, short string
(typically the driver name, e.g. "lm75"). (typically the driver name, e.g. "lm75").
In i2c-only drivers, drop the i2c_is_isa_adapter check, it's In i2c-only drivers, drop the i2c_is_isa_adapter check, it's
useless. useless. Same for isa-only drivers, as the test would always be
true. Only hybrid drivers (which are quite rare) still need it.
The errorN labels are reduced to the number needed. If that number The errorN labels are reduced to the number needed. If that number
is 2 (i2c-only drivers), it is advised that the labels are named is 2 (i2c-only drivers), it is advised that the labels are named
exit and exit_free. For i2c+isa drivers, labels should be named exit and exit_free. For i2c+isa drivers, labels should be named
......
...@@ -195,31 +195,28 @@ Probing classes (sensors) ...@@ -195,31 +195,28 @@ Probing classes (sensors)
------------------------- -------------------------
If you write a `sensors' driver, you use a slightly different interface. If you write a `sensors' driver, you use a slightly different interface.
As well as I2C addresses, we have to cope with ISA addresses. Also, we Also, we use a enum of chip types. Don't forget to include `sensors.h'.
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. The following lists are used internally. They are all lists of integers.
normal_i2c: filled in by the module writer. Terminated by SENSORS_I2C_END. normal_i2c: filled in by the module writer. Terminated by I2C_CLIENT_END.
A list of I2C addresses which should normally be examined. A list of I2C addresses which should normally be examined.
normal_isa: filled in by the module writer. Terminated by SENSORS_ISA_END. probe: insmod parameter. Initialize this list with I2C_CLIENT_END values.
A list of ISA addresses which should normally be examined. A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
probe: insmod parameter. Initialize this list with SENSORS_I2C_END values. I2C bus), the second is the address. These addresses are also probed,
A list of pairs. The first value is a bus number (SENSORS_ISA_BUS for as if they were in the 'normal' list.
the ISA bus, -1 for any I2C bus), the second is the address. These ignore: insmod parameter. Initialize this list with I2C_CLIENT_END values.
addresses are also probed, as if they were in the 'normal' list. A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
ignore: insmod parameter. Initialize this list with SENSORS_I2C_END values. I2C bus), the second is the I2C address. These addresses are never
A list of pairs. The first value is a bus number (SENSORS_ISA_BUS for probed. This parameter overrules 'normal' and 'probe', but not the
the ISA bus, -1 for any I2C bus), the second is the I2C address. These 'force' lists.
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: Also used is a list of pointers to sensors_force_data structures:
force_data: insmod parameters. A list, ending with an element of which force_data: insmod parameters. A list, ending with an element of which
the force field is NULL. the force field is NULL.
Each element contains the type of chip and a list of pairs. Each element contains the type of chip and a list of pairs.
The first value is a bus number (SENSORS_ISA_BUS for the ISA bus, The first value is a bus number (ANY_I2C_BUS for any I2C bus), the
-1 for any I2C bus), the second is the address. second is the address.
These are automatically translated to insmod variables of the form These are automatically translated to insmod variables of the form
force_foo. force_foo.
...@@ -227,13 +224,11 @@ So we have a generic insmod variabled `force', and chip-specific variables ...@@ -227,13 +224,11 @@ So we have a generic insmod variabled `force', and chip-specific variables
`force_CHIPNAME'. `force_CHIPNAME'.
Fortunately, as a module writer, you just have to define the `normal_i2c' Fortunately, as a module writer, you just have to define the `normal_i2c'
and `normal_isa' parameters, and define what chip names are used. parameter, and define what chip names are used. The complete declaration
The complete declaration could look like this: could look like this:
/* Scan i2c addresses 0x37, and 0x48 to 0x4f */ /* Scan i2c addresses 0x37, and 0x48 to 0x4f */
static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c, static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c,
0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
/* Scan ISA address 0x290 */
static unsigned int normal_isa[] = {0x0290,SENSORS_ISA_END};
/* Define chips foo and bar, as well as all module parameters and things */ /* Define chips foo and bar, as well as all module parameters and things */
SENSORS_INSMOD_2(foo,bar); SENSORS_INSMOD_2(foo,bar);
......
...@@ -34,7 +34,6 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a, ...@@ -34,7 +34,6 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
0x29, 0x2a, 0x2b, 0x29, 0x2a, 0x2b,
0x4c, 0x4d, 0x4e, 0x4c, 0x4d, 0x4e,
I2C_CLIENT_END }; I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066); SENSORS_INSMOD_8(adm1021, adm1023, max1617, max1617a, thmc10, lm84, gl523sm, mc1066);
......
...@@ -62,7 +62,6 @@ ...@@ -62,7 +62,6 @@
*/ */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(adm1026); SENSORS_INSMOD_1(adm1026);
......
...@@ -61,7 +61,6 @@ ...@@ -61,7 +61,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_2(adm1030, adm1031); SENSORS_INSMOD_2(adm1030, adm1031);
......
...@@ -54,8 +54,6 @@ ...@@ -54,8 +54,6 @@
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f, static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, 0x2f,
I2C_CLIENT_END }; I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_3(adm9240, ds1780, lm81); SENSORS_INSMOD_3(adm9240, ds1780, lm81);
......
...@@ -56,9 +56,6 @@ ...@@ -56,9 +56,6 @@
/* I2C addresses to scan */ /* I2C addresses to scan */
static unsigned short normal_i2c[] = { 0x2d, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2d, I2C_CLIENT_END };
/* ISA addresses to scan (none) */
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(asb100); SENSORS_INSMOD_1(asb100);
I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: " I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
......
...@@ -42,7 +42,6 @@ MODULE_AUTHOR("Sebastian Witt <se.witt@gmx.net>"); ...@@ -42,7 +42,6 @@ MODULE_AUTHOR("Sebastian Witt <se.witt@gmx.net>");
#define ATXP1_GPIO1MASK 0x0f #define ATXP1_GPIO1MASK 0x0f
static unsigned short normal_i2c[] = { 0x37, 0x4e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x37, 0x4e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
SENSORS_INSMOD_1(atxp1); SENSORS_INSMOD_1(atxp1);
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c, static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(ds1621); SENSORS_INSMOD_1(ds1621);
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
*/ */
static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -43,7 +43,6 @@ ...@@ -43,7 +43,6 @@
* Addresses to scan * Addresses to scan
*/ */
static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -47,7 +47,6 @@ ...@@ -47,7 +47,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_2(gl518sm_r00, gl518sm_r80); SENSORS_INSMOD_2(gl518sm_r00, gl518sm_r80);
......
...@@ -38,7 +38,6 @@ MODULE_PARM_DESC(extra_sensor_type, "Type of extra sensor (0=autodetect, 1=tempe ...@@ -38,7 +38,6 @@ MODULE_PARM_DESC(extra_sensor_type, "Type of extra sensor (0=autodetect, 1=tempe
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(gl520sm); SENSORS_INSMOD_1(gl520sm);
......
...@@ -48,7 +48,6 @@ ...@@ -48,7 +48,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
0x2e, 0x2f, I2C_CLIENT_END }; 0x2e, 0x2f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
static unsigned short isa_address = 0x290; static unsigned short isa_address = 0x290;
/* Insmod parameters */ /* Insmod parameters */
......
...@@ -53,7 +53,6 @@ ...@@ -53,7 +53,6 @@
*/ */
static unsigned short normal_i2c[] = { 0x4c, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x4c, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c, static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(lm75); SENSORS_INSMOD_1(lm75);
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(lm77); SENSORS_INSMOD_1(lm77);
......
...@@ -34,7 +34,6 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, ...@@ -34,7 +34,6 @@ static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24,
0x25, 0x26, 0x27, 0x28, 0x29, 0x25, 0x26, 0x27, 0x28, 0x29,
0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e,
0x2f, I2C_CLIENT_END }; 0x2f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
static unsigned short isa_address = 0x290; static unsigned short isa_address = 0x290;
/* Insmod parameters */ /* Insmod parameters */
......
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c,
0x2d, 0x2e, 0x2f, I2C_CLIENT_END }; 0x2d, 0x2e, 0x2f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(lm80); SENSORS_INSMOD_1(lm80);
......
...@@ -47,7 +47,6 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a, ...@@ -47,7 +47,6 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
0x29, 0x2a, 0x2b, 0x29, 0x2a, 0x2b,
0x4c, 0x4d, 0x4e, 0x4c, 0x4d, 0x4e,
I2C_CLIENT_END }; I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102); SENSORS_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102);
......
...@@ -68,7 +68,6 @@ ...@@ -68,7 +68,6 @@
*/ */
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -91,7 +91,6 @@ ...@@ -91,7 +91,6 @@
*/ */
static unsigned short normal_i2c[] = { 0x4c, 0x4d, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x4c, 0x4d, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -52,7 +52,6 @@ ...@@ -52,7 +52,6 @@
resulting in 4 possible addresses. */ resulting in 4 possible addresses. */
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b,
I2C_CLIENT_END }; I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(lm92); SENSORS_INSMOD_1(lm92);
......
...@@ -39,7 +39,6 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a, ...@@ -39,7 +39,6 @@ static unsigned short normal_i2c[] = { 0x18, 0x19, 0x1a,
0x29, 0x2a, 0x2b, 0x29, 0x2a, 0x2b,
0x4c, 0x4d, 0x4e, 0x4c, 0x4d, 0x4e,
I2C_CLIENT_END }; I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -50,7 +50,6 @@ ...@@ -50,7 +50,6 @@
static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b,
0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END }; 0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
static unsigned short isa_address = 0x290; static unsigned short isa_address = 0x290;
/* Insmod parameters */ /* Insmod parameters */
......
...@@ -49,7 +49,6 @@ ...@@ -49,7 +49,6 @@
*/ */
static unsigned short normal_i2c[] = { 0x2e, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x2e, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* /*
* Insmod parameters * Insmod parameters
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
* Functions declaration * Functions declaration
*/ */
static unsigned short normal_i2c[] = { 0x68, I2C_CLIENT_END }; static unsigned short normal_i2c[] = { 0x68, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
SENSORS_INSMOD_1(ds1337); SENSORS_INSMOD_1(ds1337);
......
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54, static unsigned short normal_i2c[] = { 0x50, 0x51, 0x52, 0x53, 0x54,
0x55, 0x56, 0x57, I2C_CLIENT_END }; 0x55, 0x56, 0x57, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(eeprom); SENSORS_INSMOD_1(eeprom);
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
/* Do not scan - the MAX6875 access method will write to some EEPROM chips */ /* Do not scan - the MAX6875 access method will write to some EEPROM chips */
static unsigned short normal_i2c[] = {I2C_CLIENT_END}; static unsigned short normal_i2c[] = {I2C_CLIENT_END};
static unsigned int normal_isa[] = {I2C_CLIENT_ISA_END};
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(max6875); SENSORS_INSMOD_1(max6875);
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = {0x74, 0x75, 0x76, 0x77, I2C_CLIENT_END}; static unsigned short normal_i2c[] = {0x74, 0x75, 0x76, 0x77, I2C_CLIENT_END};
static unsigned int normal_isa[] = {I2C_CLIENT_ISA_END};
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(pca9539); SENSORS_INSMOD_1(pca9539);
......
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
I2C_CLIENT_END }; I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_2(pcf8574, pcf8574a); SENSORS_INSMOD_2(pcf8574, pcf8574a);
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
/* Addresses to scan */ /* Addresses to scan */
static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c, static unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c,
0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; 0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */ /* Insmod parameters */
SENSORS_INSMOD_1(pcf8591); SENSORS_INSMOD_1(pcf8591);
......
...@@ -27,11 +27,10 @@ ...@@ -27,11 +27,10 @@
that place. If a specific chip is given, the module blindly assumes this that place. If a specific chip is given, the module blindly assumes this
chip type is present; if a general force (kind == 0) is given, the module chip type is present; if a general force (kind == 0) is given, the module
will still try to figure out what type of chip is present. This is useful will still try to figure out what type of chip is present. This is useful
if for some reasons the detect for SMBus or ISA address space filled if for some reasons the detect for SMBus address space filled fails.
fails. probe: insmod parameter. Initialize this list with I2C_CLIENT_END values.
probe: insmod parameter. Initialize this list with I2C_CLIENT_ISA_END values. A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
A list of pairs. The first value is a bus number (ANY_I2C_ISA_BUS for I2C bus), the second is the address.
the ISA bus, -1 for any I2C bus), the second is the address.
kind: The kind of chip. 0 equals any chip. kind: The kind of chip. 0 equals any chip.
*/ */
struct i2c_force_data { struct i2c_force_data {
...@@ -40,25 +39,22 @@ struct i2c_force_data { ...@@ -40,25 +39,22 @@ struct i2c_force_data {
}; };
/* A structure containing the detect information. /* A structure containing the detect information.
normal_i2c: filled in by the module writer. Terminated by I2C_CLIENT_ISA_END. normal_i2c: filled in by the module writer. Terminated by I2C_CLIENT_END.
A list of I2C addresses which should normally be examined. A list of I2C addresses which should normally be examined.
normal_isa: filled in by the module writer. Terminated by SENSORS_ISA_END. probe: insmod parameter. Initialize this list with I2C_CLIENT_END values.
A list of ISA addresses which should normally be examined. A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
probe: insmod parameter. Initialize this list with I2C_CLIENT_ISA_END values. I2C bus), the second is the address. These addresses are also probed,
A list of pairs. The first value is a bus number (ANY_I2C_ISA_BUS for as if they were in the 'normal' list.
the ISA bus, -1 for any I2C bus), the second is the address. These ignore: insmod parameter. Initialize this list with I2C_CLIENT_END values.
addresses are also probed, as if they were in the 'normal' list. A list of pairs. The first value is a bus number (ANY_I2C_BUS for any
ignore: insmod parameter. Initialize this list with I2C_CLIENT_ISA_END values. I2C bus), the second is the I2C address. These addresses are never
A list of pairs. The first value is a bus number (ANY_I2C_ISA_BUS for probed. This parameter overrules 'normal' and probe', but not the
the ISA bus, -1 for any I2C bus), the second is the I2C address. These 'force' lists.
addresses are never probed. This parameter overrules 'normal' and
'probe', but not the 'force' lists.
force_data: insmod parameters. A list, ending with an element of which force_data: insmod parameters. A list, ending with an element of which
the force field is NULL. the force field is NULL.
*/ */
struct i2c_address_data { struct i2c_address_data {
unsigned short *normal_i2c; unsigned short *normal_i2c;
unsigned int *normal_isa;
unsigned short *probe; unsigned short *probe;
unsigned short *ignore; unsigned short *ignore;
struct i2c_force_data *forces; struct i2c_force_data *forces;
...@@ -78,7 +74,6 @@ struct i2c_address_data { ...@@ -78,7 +74,6 @@ struct i2c_address_data {
"List of adapter,address pairs not to scan"); \ "List of adapter,address pairs not to scan"); \
static struct i2c_address_data addr_data = { \ static struct i2c_address_data addr_data = { \
.normal_i2c = normal_i2c, \ .normal_i2c = normal_i2c, \
.normal_isa = normal_isa, \
.probe = probe, \ .probe = probe, \
.ignore = ignore, \ .ignore = ignore, \
.forces = forces, \ .forces = forces, \
...@@ -242,8 +237,7 @@ struct i2c_address_data { ...@@ -242,8 +237,7 @@ struct i2c_address_data {
/* Detect function. It iterates over all possible addresses itself. For /* Detect function. It iterates over all possible addresses itself. For
SMBus addresses, it will only call found_proc if some client is connected SMBus addresses, it will only call found_proc if some client is connected
to the SMBus (unless a 'force' matched); for ISA detections, this is not to the SMBus (unless a 'force' matched). */
done. */
extern int i2c_detect(struct i2c_adapter *adapter, extern int i2c_detect(struct i2c_adapter *adapter,
struct i2c_address_data *address_data, struct i2c_address_data *address_data,
int (*found_proc) (struct i2c_adapter *, int, int)); int (*found_proc) (struct i2c_adapter *, int, int));
......
...@@ -150,12 +150,9 @@ struct i2c_driver { ...@@ -150,12 +150,9 @@ struct i2c_driver {
*/ */
struct i2c_client { struct i2c_client {
unsigned int flags; /* div., see below */ unsigned int flags; /* div., see below */
unsigned int addr; /* chip address - NOTE: 7bit */ unsigned short addr; /* chip address - NOTE: 7bit */
/* addresses are stored in the */ /* addresses are stored in the */
/* _LOWER_ 7 bits of this char */ /* _LOWER_ 7 bits */
/* addr: unsigned int to make lm_sensors i2c-isa adapter work
more cleanly. It does not take any more memory space, due to
alignment considerations */
struct i2c_adapter *adapter; /* the adapter we sit on */ struct i2c_adapter *adapter; /* the adapter we sit on */
struct i2c_driver *driver; /* and our access routines */ struct i2c_driver *driver; /* and our access routines */
int usage_count; /* How many accesses currently */ int usage_count; /* How many accesses currently */
...@@ -309,7 +306,6 @@ struct i2c_client_address_data { ...@@ -309,7 +306,6 @@ struct i2c_client_address_data {
/* Internal numbers to terminate lists */ /* Internal numbers to terminate lists */
#define I2C_CLIENT_END 0xfffeU #define I2C_CLIENT_END 0xfffeU
#define I2C_CLIENT_ISA_END 0xfffefffeU
/* The numbers to use to set I2C bus address */ /* The numbers to use to set I2C bus address */
#define ANY_I2C_BUS 0xffff #define ANY_I2C_BUS 0xffff
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册