* [PATCH 2.6] I2C: Fix MAX6657/8/9 detection in lm90
@ 2005-05-19 6:25 Jean Delvare
2005-05-19 6:25 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Jean Delvare @ 2005-05-19 6:25 UTC (permalink / raw)
To: lm-sensors
Hi Greg,
I received no additional feedback about my MAX6657/8/9 detection fix.
Since it was correct for the only chips I got a report for, I propose we
apply it. After all, maybe people don't know they have such a chip
because the detection was previously not correct.
The patch below is the one I sent to the LM Sensors and Linux Kernel
mailing-lists two weeks ago, unchanged. Thanks.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
--- linux-2.6.10-rc3/drivers/i2c/chips/lm90.c.orig 2004-12-05 17:33:04.000000000 +0100
+++ linux-2.6.10-rc3/drivers/i2c/chips/lm90.c 2004-12-12 16:28:42.000000000 +0100
@@ -35,12 +35,13 @@
* Among others, it has a higher accuracy than the LM90, much like the
* LM86 does.
*
- * This driver also supports the MAX6657 and MAX6658, sensor chips made
- * by Maxim. These chips are similar to the LM86. Complete datasheet
- * can be obtained at Maxim's website at:
+ * This driver also supports the MAX6657, MAX6658 and MAX6659 sensor
+ * chips made by Maxim. These chips are similar to the LM86. Complete
+ * datasheet can be obtained at Maxim's website at:
* http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
- * Note that there is no way to differenciate between both chips (but
- * no need either).
+ * Note that there is no easy way to differenciate between the three
+ * variants. The extra address and features of the MAX6659 are not
+ * supported by this driver.
*
* Since the LM90 was the first chipset supported by this driver, most
* comments will refer to this chipset, but are actually general and
@@ -70,9 +71,11 @@
/*
* Addresses to scan
- * Address is fully defined internally and cannot be changed.
+ * 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.
+ * MAX6659 can have address 0x4c, 0x4d or 0x4e (unsupported).
*/
static unsigned short normal_i2c[] = { 0x4c, 0x4d, I2C_CLIENT_END };
@@ -386,8 +389,17 @@
}
} else
if (man_id = 0x4D) { /* Maxim */
- if (address = 0x4C
- && (reg_config1 & 0x1F) = 0
+ /*
+ * The Maxim variants do NOT have a chip_id register.
+ * Reading from that address will return the last read
+ * value, which in our case is those of the man_id
+ * register. Likewise, the config1 register seems to
+ * lack a low nibble, so the value will be those of the
+ * previous read, so in our case those of the man_id
+ * register.
+ */
+ if (chip_id = man_id
+ && (reg_config1 & 0x1F) = (man_id & 0x0F)
&& reg_convrate <= 0x09) {
kind = max6657;
}
--
Jean Delvare
http://khali.linux-fr.org/
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 2.6] I2C: Fix MAX6657/8/9 detection in lm90
2005-05-19 6:25 [PATCH 2.6] I2C: Fix MAX6657/8/9 detection in lm90 Jean Delvare
@ 2005-05-19 6:25 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2005-05-19 6:25 UTC (permalink / raw)
To: lm-sensors
On Sun, Dec 26, 2004 at 03:22:29PM +0100, Jean Delvare wrote:
> Hi Greg,
>
> I received no additional feedback about my MAX6657/8/9 detection fix.
> Since it was correct for the only chips I got a report for, I propose we
> apply it. After all, maybe people don't know they have such a chip
> because the detection was previously not correct.
>
> The patch below is the one I sent to the LM Sensors and Linux Kernel
> mailing-lists two weeks ago, unchanged. Thanks.
Applied, thanks.
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-05-19 6:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-19 6:25 [PATCH 2.6] I2C: Fix MAX6657/8/9 detection in lm90 Jean Delvare
2005-05-19 6:25 ` Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.