diff options
-rw-r--r-- | share/man/man4/sdtemp.4 | 9 | ||||
-rw-r--r-- | sys/dev/i2c/i2c_scan.c | 26 | ||||
-rw-r--r-- | sys/dev/i2c/sdtemp.c | 5 |
3 files changed, 28 insertions, 12 deletions
diff --git a/share/man/man4/sdtemp.4 b/share/man/man4/sdtemp.4 index e2638951948..90cb118261b 100644 --- a/share/man/man4/sdtemp.4 +++ b/share/man/man4/sdtemp.4 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sdtemp.4,v 1.7 2009/07/10 00:17:30 cnst Exp $ +.\" $OpenBSD: sdtemp.4,v 1.8 2010/07/09 08:05:46 deraadt Exp $ .\" .\" Copyright (c) 2008 Theo de Raadt <deraadt@openbsd.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: July 10 2009 $ +.Dd $Mdocdate: July 9 2010 $ .Dt SDTEMP 4 .Os .Sh NAME @@ -29,8 +29,9 @@ driver retrieves temperature sensor information from memory modules which contain sensor chips defined in JEDEC JC-42.4. .Pp Current sensor chips include the NXP SE97, NXP SE98, -Microchip MCP9805, Microchip MCP98242, ST STTS424, -AD ADT7408, ON CAT6095 and ON CAT34TS02. +Maxim 6604, Microchip MCP9805, Microchip MCP98242, +Microchip MCP98243, AD ADT7408, ST STTS424, ON CAT6095 and +ON CAT34TS02. .Sh SEE ALSO .Xr iic 4 .Sh HISTORY diff --git a/sys/dev/i2c/i2c_scan.c b/sys/dev/i2c/i2c_scan.c index 500b321e163..86de8991250 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.136 2010/03/22 23:17:34 kettenis Exp $ */ +/* $OpenBSD: i2c_scan.c,v 1.137 2010/07/09 08:05:45 deraadt Exp $ */ /* * Copyright (c) 2005 Theo de Raadt <deraadt@openbsd.org> @@ -866,29 +866,41 @@ iic_probe_sensor(struct device *self, u_int8_t addr) iicprobe(0x16) == 0x41 && ((iicprobe(0x17) & 0xf0) == 0x40)) { name = "adm1026"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x1131 && - iicprobew(0x07) == 0xa101 && + (iicprobew(0x07) & 0xfffc) == 0xa200 && (iicprobew(0x00) & 0xfff0) == 0x0010) { - name = "se98"; + name = "se97"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x1131 && - iicprobew(0x07) == 0xa200 && + (iicprobew(0x07) & 0xfffc) == 0xa101 && (iicprobew(0x00) & 0xfff0) == 0x0010) { - name = "se97"; + name = "se98"; + } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x004d && + iicprobew(0x07) == 0x3e00 && + (iicprobew(0x00) & 0xffe0) == 0x0000) { + name = "max6604"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x0054 && iicprobew(0x07) == 0x0000 && (iicprobew(0x00) & 0xffe0) == 0x0000) { name = "mcp9805"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x0054 && - iicprobew(0x07) == 0x2000 && + (iicprobew(0x07) & 0xfffc) == 0x2000 && (iicprobew(0x00) & 0xffe0) == 0x0000) { name = "mcp98242"; + } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x0054 && + (iicprobew(0x07) & 0xfffc) == 0x2100 && + (iicprobew(0x00) & 0xffe0) == 0x0000) { + name = "mcp98243"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x11d4 && - (iicprobew(0x07) & 0xfff0) == 0x0800 && + iicprobew(0x07) == 0x0800 && iicprobew(0x00) == 0x001d) { name = "adt7408"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x104a && (iicprobew(0x07) & 0xfffe) == 0x0000 && (iicprobew(0x00) == 0x002d || iicprobew(0x00) == 0x002f)) { name = "stts424e02"; + } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x104a && + (iicprobew(0x07) & 0xfffe) == 0x0101 && + (iicprobew(0x00) == 0x002d || iicprobew(0x00) == 0x002f)) { + name = "stts424"; } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x1b09 && (iicprobew(0x07) & 0xffe0) == 0x0800 && iicprobew(0x00) == 0x001f) { diff --git a/sys/dev/i2c/sdtemp.c b/sys/dev/i2c/sdtemp.c index db0d0b4630e..99599f1038b 100644 --- a/sys/dev/i2c/sdtemp.c +++ b/sys/dev/i2c/sdtemp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sdtemp.c,v 1.11 2009/07/10 18:12:56 cnst Exp $ */ +/* $OpenBSD: sdtemp.c,v 1.12 2010/07/09 08:05:45 deraadt Exp $ */ /* * Copyright (c) 2008 Theo de Raadt @@ -58,10 +58,13 @@ sdtemp_match(struct device *parent, void *match, void *aux) if (strcmp(ia->ia_name, "se97") == 0 || strcmp(ia->ia_name, "se98") == 0 || + strcmp(ia->ia_name, "max6604") == 0 || strcmp(ia->ia_name, "mcp9805") == 0 || strcmp(ia->ia_name, "mcp98242") == 0 || + strcmp(ia->ia_name, "mcp98243") == 0 || strcmp(ia->ia_name, "adt7408") == 0 || strcmp(ia->ia_name, "stts424e02") == 0 || + strcmp(ia->ia_name, "stts424") == 0 || strcmp(ia->ia_name, "cat34ts02") == 0) return (1); return (0); |