summaryrefslogtreecommitdiffstats
path: root/sys/dev/i2c/i2c_scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/i2c/i2c_scan.c')
-rw-r--r--sys/dev/i2c/i2c_scan.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/i2c/i2c_scan.c b/sys/dev/i2c/i2c_scan.c
index b06e86b9648..5235b2a5671 100644
--- a/sys/dev/i2c/i2c_scan.c
+++ b/sys/dev/i2c/i2c_scan.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i2c_scan.c,v 1.133 2009/07/10 19:58:41 cnst Exp $ */
+/* $OpenBSD: i2c_scan.c,v 1.134 2009/08/12 14:51:20 cnst Exp $ */
/*
* Copyright (c) 2005 Theo de Raadt <deraadt@openbsd.org>
@@ -883,6 +883,14 @@ iic_probe_sensor(struct device *self, u_int8_t addr)
(iicprobew(0x07) & 0xffe0) == 0x0800 &&
iicprobew(0x00) == 0x001f) {
name = "cat34ts02"; /* or cat6095 */
+ } else if ((addr & 0x7e) == 0x1c && iicprobe(0x0f) == 0x3b &&
+ (iicprobe(0x21) & 0x60) == 0x00 &&
+ iicprobe(0x0f) == iicprobe(0x8f) && /* registers address is 7 bits */
+ iicprobe(0x20) == iicprobe(0xa0) &&
+ iicprobe(0x21) == iicprobe(0xa1) &&
+ iicprobe(0x22) == iicprobe(0xa2) &&
+ iicprobe(0x07) == 0x00) { /* 0x00 to 0x0e are reserved */
+ name = "lis331dl";
} else if (name == NULL &&
(addr & 0x78) == 0x48) { /* addr 0b1001xxx */
name = lm75probe();