diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2011-03-10 23:14:31 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2011-03-10 23:14:31 +0000 |
commit | bcc53476188646a13fa8afe78d5b87a831c1cc08 (patch) | |
tree | 18fcfead63bc509bf94191c1f304a0d240941527 | |
parent | b25c6f5b64e72a1079b92f61c32abdafffe3b7c7 (diff) |
Add support for detecting the NXP SA56004X (we have not actually
seen it in the wild yet, but the detection seems easy). Few bugs spotted
by kettenis.
ok kettenis
-rw-r--r-- | share/man/man4/admtemp.4 | 8 | ||||
-rw-r--r-- | sys/dev/i2c/adm1021.c | 3 | ||||
-rw-r--r-- | sys/dev/i2c/i2c_scan.c | 11 |
3 files changed, 16 insertions, 6 deletions
diff --git a/share/man/man4/admtemp.4 b/share/man/man4/admtemp.4 index 12422a06335..12cb0b98568 100644 --- a/share/man/man4/admtemp.4 +++ b/share/man/man4/admtemp.4 @@ -1,4 +1,4 @@ -.\" $OpenBSD: admtemp.4,v 1.8 2007/05/31 19:19:48 jmc Exp $ +.\" $OpenBSD: admtemp.4,v 1.9 2011/03/10 23:14:29 deraadt Exp $ .\" .\" Copyright (c) 2005 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: May 31 2007 $ +.Dd $Mdocdate: March 10 2011 $ .Dt ADMTEMP 4 .Os .Sh NAME @@ -27,8 +27,8 @@ The .Nm driver provides support for the Analog Devices ADM1021, Analog Devices ADM1023, Analog Devices ADM1032, Genesys Logic GL523SM, -Global Mixed-mode Technology G781, Maxim 1617, and Xeon embedded -temperature sensors. +Global Mixed-mode Technology G781, Maxim 1617, NXP SA56004x, +and Xeon embedded temperature sensors. The device possesses internal and external temperature sensors. These values are made available through the .Xr sysctl 8 diff --git a/sys/dev/i2c/adm1021.c b/sys/dev/i2c/adm1021.c index e49e67b1215..3bf90ee934b 100644 --- a/sys/dev/i2c/adm1021.c +++ b/sys/dev/i2c/adm1021.c @@ -1,4 +1,4 @@ -/* $OpenBSD: adm1021.c,v 1.27 2007/06/24 05:34:35 dlg Exp $ */ +/* $OpenBSD: adm1021.c,v 1.28 2011/03/10 23:14:30 deraadt Exp $ */ /* * Copyright (c) 2005 Theo de Raadt @@ -74,6 +74,7 @@ admtemp_match(struct device *parent, void *match, void *aux) strcmp(ia->ia_name, "g781-1") == 0 || strcmp(ia->ia_name, "gl523sm") == 0 || strcmp(ia->ia_name, "max1617") == 0 || + strcmp(ia->ia_name, "sa56004x") == 0 || strcmp(ia->ia_name, "xeontemp") == 0) return (1); return (0); diff --git a/sys/dev/i2c/i2c_scan.c b/sys/dev/i2c/i2c_scan.c index 86de8991250..27604690fc8 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.137 2010/07/09 08:05:45 deraadt Exp $ */ +/* $OpenBSD: i2c_scan.c,v 1.138 2011/03/10 23:14:30 deraadt Exp $ */ /* * Copyright (c) 2005 Theo de Raadt <deraadt@openbsd.org> @@ -734,6 +734,15 @@ iic_probe_sensor(struct device *self, u_int8_t addr) (iicprobe(0x17) & 0x0f) == 0x00) name = "tmp401"; break; + case 0xa1: + if ((addr >= 0x48 && addr <= 0x4f) && + iicprobe(0xff) == 0x00 && + (iicprobe(0x03) & 0xf8) == 0x00 && + iicprobe(0x04) <= 0x09) { + name = "sa56004x"; /* NXP sa56004x */ + skip_fc = 1; + } + break; } if (addr == iicprobe(0x48) && |