aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/w83781d.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2005-07-19 17:56:35 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-09-05 12:14:10 -0400
commit2d8672c5a6ba0d3f1d8d3ad61ef67868941364f0 (patch)
treef01f038198bad63fee4c7d23af806ad0ab4e5071 /drivers/hwmon/w83781d.c
parent5042c7d752fe72c6924037058367f63902e68c5c (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.c12
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 @@
50static unsigned short normal_i2c[] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 50static 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 };
53static unsigned int normal_isa[] = { 0x0290, I2C_CLIENT_ISA_END }; 53static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
54static unsigned short isa_address = 0x290;
54 55
55/* Insmod parameters */ 56/* Insmod parameters */
56SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f); 57SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f);
@@ -259,6 +260,7 @@ struct w83781d_data {
259}; 260};
260 261
261static int w83781d_attach_adapter(struct i2c_adapter *adapter); 262static int w83781d_attach_adapter(struct i2c_adapter *adapter);
263static int w83781d_isa_attach_adapter(struct i2c_adapter *adapter);
262static int w83781d_detect(struct i2c_adapter *adapter, int address, int kind); 264static int w83781d_detect(struct i2c_adapter *adapter, int address, int kind);
263static int w83781d_detach_client(struct i2c_client *client); 265static int w83781d_detach_client(struct i2c_client *client);
264 266
@@ -280,7 +282,7 @@ static struct i2c_driver w83781d_driver = {
280static struct i2c_driver w83781d_isa_driver = { 282static 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
876static int
877w83781d_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 */