From 6d94d22cd640a5a1d0769562cef47866aeef2875 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Sun, 30 Oct 2005 15:24:39 +0000 Subject: [PATCH] Support the ADM1032-2 and ADT7461-2, which have address 0x4d. Backported from Linux 2.6. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3161 7894878c-1315-0410-8ee3-d5d059ff63e0 --- doc/chips/lm90 | 4 ++-- kernel/chips/lm90.c | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/doc/chips/lm90 b/doc/chips/lm90 index f5e75e2d..80d00c61 100644 --- a/doc/chips/lm90 +++ b/doc/chips/lm90 @@ -26,12 +26,12 @@ Supported chips: http://www.national.com/pf/LM/LM86.html * Analog Devices ADM1032 Prefix: 'adm1032' - Addresses scanned: I2C 0x4c + Addresses scanned: I2C 0x4c and 0x4d Datasheet: Publicly available at the Analog Devices website http://products.analog.com/products/info.asp?product=ADM1032 * Analog Devices ADT7461 Prefix: 'adt7461' - Addresses scanned: I2C 0x4c + Addresses scanned: I2C 0x4c and 0x4d Datasheet: Publicly available at the Analog Devices website http://products.analog.com/products/info.asp?product=ADT7461 Note: Only if in ADM1032 compatibility mode diff --git a/kernel/chips/lm90.c b/kernel/chips/lm90.c index 2974386f..50101a85 100644 --- a/kernel/chips/lm90.c +++ b/kernel/chips/lm90.c @@ -85,10 +85,10 @@ * Addresses to scan * Address is fully defined internally and cannot be changed except for * MAX6659. - * LM86, LM89, LM90, LM99, ADM1032, MAX6657 and MAX6658 have address 0x4c. - * LM89-1, and LM99-1 have address 0x4d. + * LM86, LM89, LM90, LM99, ADM1032, ADM1032-1, ADT7461, MAX6657 and MAX6658 + * have address 0x4c. + * ADM1032-2, ADT7461-2, LM89-1, and LM99-1 have address 0x4d. * MAX6659 can have address 0x4c, 0x4d or 0x4e (unsupported). - * ADT7461 always has address 0x4c. */ static unsigned short normal_i2c[] = { 0x4c, 0x4d, SENSORS_I2C_END }; @@ -383,14 +383,12 @@ static int lm90_detect(struct i2c_adapter *adapter, int address, } else if (man_id == 0x41) /* Analog Devices */ { - if (address == 0x4C - && (chip_id & 0xF0) == 0x40 /* ADM1032 */ + if ((chip_id & 0xF0) == 0x40 /* ADM1032 */ && (reg_config1 & 0x3F) == 0x00 && reg_convrate <= 0x0A) kind = adm1032; else - if (address == 0x4c - && chip_id == 0x51 /* ADT7461 */ + if (chip_id == 0x51 /* ADT7461 */ && (reg_config1 & 0x1F) == 0x00 /* check compat mode */ && reg_convrate <= 0x0A) kind = adt7461;