diff options
author | Jean Delvare <khali@linux-fr.org> | 2005-07-19 17:56:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-09-05 12:14:10 -0400 |
commit | 2d8672c5a6ba0d3f1d8d3ad61ef67868941364f0 (patch) | |
tree | f01f038198bad63fee4c7d23af806ad0ab4e5071 /drivers/hwmon/w83781d.c | |
parent | 5042c7d752fe72c6924037058367f63902e68c5c (diff) |
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (5/9)
Call the ISA chip drivers detection function directly instead of relying
on i2c_detect. The net effect is that address lists won't be handled
anymore, but they were mostly useless in the ISA case anyway (pc87360,
smsc47m1, smsc47b397 had already dropped them).
We don't need to handle multiple devices, all we may need is a way to
force a given address instead of the original one (some drivers already
do: sis5595, via686a, w83627hf), and, for drivers supporting multiple
chips, a way to force one given kind. All this may be added later on
demand, but I actually don't think there will be much demand.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/hwmon/w83781d.c')
-rw-r--r-- | drivers/hwmon/w83781d.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c index 69b061e2dc00..a4ab819ac360 100644 --- a/drivers/hwmon/w83781d.c +++ b/drivers/hwmon/w83781d.c | |||
@@ -50,7 +50,8 @@ | |||
50 | static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, | 50 | static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, |
51 | 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, | 51 | 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, |
52 | 0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END }; | 52 | 0x2c, 0x2d, 0x2e, 0x2f, I2C_CLIENT_END }; |
53 | static unsigned int normal_isa[] = { 0x0290, I2C_CLIENT_ISA_END }; | 53 | static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END }; |
54 | static unsigned short isa_address = 0x290; | ||
54 | 55 | ||
55 | /* Insmod parameters */ | 56 | /* Insmod parameters */ |
56 | SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f); | 57 | SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f); |
@@ -259,6 +260,7 @@ struct w83781d_data { | |||
259 | }; | 260 | }; |
260 | 261 | ||
261 | static int w83781d_attach_adapter(struct i2c_adapter *adapter); | 262 | static int w83781d_attach_adapter(struct i2c_adapter *adapter); |
263 | static int w83781d_isa_attach_adapter(struct i2c_adapter *adapter); | ||
262 | static int w83781d_detect(struct i2c_adapter *adapter, int address, int kind); | 264 | static int w83781d_detect(struct i2c_adapter *adapter, int address, int kind); |
263 | static int w83781d_detach_client(struct i2c_client *client); | 265 | static int w83781d_detach_client(struct i2c_client *client); |
264 | 266 | ||
@@ -280,7 +282,7 @@ static struct i2c_driver w83781d_driver = { | |||
280 | static struct i2c_driver w83781d_isa_driver = { | 282 | static struct i2c_driver w83781d_isa_driver = { |
281 | .owner = THIS_MODULE, | 283 | .owner = THIS_MODULE, |
282 | .name = "w83781d-isa", | 284 | .name = "w83781d-isa", |
283 | .attach_adapter = w83781d_attach_adapter, | 285 | .attach_adapter = w83781d_isa_attach_adapter, |
284 | .detach_client = w83781d_detach_client, | 286 | .detach_client = w83781d_detach_client, |
285 | }; | 287 | }; |
286 | 288 | ||
@@ -871,6 +873,12 @@ w83781d_attach_adapter(struct i2c_adapter *adapter) | |||
871 | return i2c_detect(adapter, &addr_data, w83781d_detect); | 873 | return i2c_detect(adapter, &addr_data, w83781d_detect); |
872 | } | 874 | } |
873 | 875 | ||
876 | static int | ||
877 | w83781d_isa_attach_adapter(struct i2c_adapter *adapter) | ||
878 | { | ||
879 | return w83781d_detect(adapter, isa_address, -1); | ||
880 | } | ||
881 | |||
874 | /* Assumes that adapter is of I2C, not ISA variety. | 882 | /* Assumes that adapter is of I2C, not ISA variety. |
875 | * OTHERWISE DON'T CALL THIS | 883 | * OTHERWISE DON'T CALL THIS |
876 | */ | 884 | */ |