summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2014-09-27 06:07:01 +0000
committerjsg <jsg@openbsd.org>2014-09-27 06:07:01 +0000
commit462cb67a7cc9784ba02adec740ba402dd7fbc623 (patch)
treeec922d0a42a7c2fea21a05eba64dc0a60c12dac1
parentAdd missing .An macros (found with mandoc -Tlint) and (diff)
downloadwireguard-openbsd-462cb67a7cc9784ba02adec740ba402dd7fbc623.tar.xz
wireguard-openbsd-462cb67a7cc9784ba02adec740ba402dd7fbc623.zip
add some more sdtemp devices
ok deraadt@
-rw-r--r--share/man/man4/sdtemp.437
-rw-r--r--sys/dev/i2c/i2c_scan.c50
-rw-r--r--sys/dev/i2c/sdtemp.c16
3 files changed, 94 insertions, 9 deletions
diff --git a/share/man/man4/sdtemp.4 b/share/man/man4/sdtemp.4
index eee9df5d9c1..b0e295abe4d 100644
--- a/share/man/man4/sdtemp.4
+++ b/share/man/man4/sdtemp.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: sdtemp.4,v 1.9 2011/10/07 06:29:45 deraadt Exp $
+.\" $OpenBSD: sdtemp.4,v 1.10 2014/09/27 06:07:01 jsg 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: October 7 2011 $
+.Dd $Mdocdate: September 27 2014 $
.Dt SDTEMP 4
.Os
.Sh NAME
@@ -28,10 +28,35 @@ The
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,
-Maxim 6604, Microchip MCP9805, Microchip MCP98242,
-Microchip MCP98243, IDT TS3000B3, ADT ADT7408, ST STTS424,
-ST STTS2002, ON CAT6095 and ON CAT34TS02.
+Current sensor chips include:
+.Pp
+.Bl -tag -width Dv -offset indent -compact
+.It ADT ADT7408
+.It Atmel AT30TS00
+.It Atmel AT30TSE002
+.It Atmel AT30TSE004
+.It Giantec GT30TS00
+.It Giantec GT34TS02
+.It IDT TSE2002B3
+.It IDT TSE2002GB2
+.It IDT TS3000B3
+.It IDT TS3000GB2
+.It IDT TS3001GB2
+.It Maxim 6604
+.It Microchip MCP9804
+.It Microchip MCP9805
+.It Microchip MCP98242
+.It Microchip MCP98243
+.It Microchip MCP98244
+.It NXP SE97
+.It NXP SE98
+.It ON CAT34TS02
+.It ON CAT6095
+.It ST STTS424
+.It ST STTS2002
+.It ST STTS2004
+.It ST STTS3000
+.El
.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 b13d0de8a67..a2e340c07c5 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.141 2014/09/26 15:24:56 jsg Exp $ */
+/* $OpenBSD: i2c_scan.c,v 1.142 2014/09/27 06:07:01 jsg Exp $ */
/*
* Copyright (c) 2005 Theo de Raadt <deraadt@openbsd.org>
@@ -886,6 +886,10 @@ iic_probe_sensor(struct device *self, u_int8_t addr)
(iicprobew(0x00) & 0xffe0) == 0x0000) {
name = "max6604";
} else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x0054 &&
+ (iicprobew(0x07) & 0xfffc) == 0x0200 &&
+ (iicprobew(0x00) & 0xffe0) == 0x0000) {
+ name = "mcp9804";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x0054 &&
(iicprobew(0x07) & 0xff00) == 0x0000 &&
(iicprobew(0x00) & 0xffe0) == 0x0000) {
name = "mcp9805"; /* or mcp9843 */
@@ -897,6 +901,10 @@ iic_probe_sensor(struct device *self, u_int8_t addr)
(iicprobew(0x07) & 0xff00) == 0x2100 &&
(iicprobew(0x00) & 0xff00) == 0x0000) {
name = "mcp98243";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x0054 &&
+ (iicprobew(0x07) & 0xfffc) == 0x2200 &&
+ (iicprobew(0x00) & 0xff00) == 0x0000) {
+ name = "mcp98244";
} else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x11d4 &&
iicprobew(0x07) == 0x0800 &&
iicprobew(0x00) == 0x001d) {
@@ -910,6 +918,14 @@ iic_probe_sensor(struct device *self, u_int8_t addr)
(iicprobew(0x00) == 0x006f)) {
name = "stts2002";
} else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x104a &&
+ (iicprobew(0x07) & 0xffff) == 0x2201 &&
+ (iicprobew(0x00) == 0x00ef)) {
+ name = "stts2004";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x104a &&
+ (iicprobew(0x07) & 0xffff) == 0x0200 &&
+ (iicprobew(0x00) == 0x006f)) {
+ name = "stts3000";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x104a &&
(iicprobew(0x07) & 0xffff) == 0x0101 &&
(iicprobew(0x00) == 0x002d || iicprobew(0x00) == 0x002f)) {
name = "stts424";
@@ -917,10 +933,42 @@ iic_probe_sensor(struct device *self, u_int8_t addr)
(iicprobew(0x07) & 0xffe0) == 0x0800 &&
(iicprobew(0x00) & 0x001f) == 0x001f) {
name = "cat34ts02"; /* or cat6095, prod 0x0813 */
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x1b09 &&
+ (iicprobew(0x07) & 0xffff) == 0x0a00 &&
+ (iicprobew(0x00) & 0x001f) == 0x001f) {
+ name = "cat34ts02c";
} else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x00b3 &&
(iicprobew(0x07) & 0xffff) == 0x2903 &&
(iicprobew(0x00) == 0x004f)) {
name = "ts3000b3"; /* or tse2002b3 */
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x00b3 &&
+ (iicprobew(0x07) & 0xffff) == 0x2912 &&
+ (iicprobew(0x00) == 0x006f)) {
+ name = "ts3000gb2"; /* or tse2002gb2 */
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x00b3 &&
+ (iicprobew(0x07) & 0xffff) == 0x2913 &&
+ (iicprobew(0x00) == 0x0077)) {
+ name = "ts3000gb0";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x00b3 &&
+ (iicprobew(0x07) & 0xffff) == 0x3001 &&
+ (iicprobew(0x00) == 0x006f)) {
+ name = "ts3001gb2";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x001f &&
+ (iicprobew(0x07) & 0xffff) == 0x8201 &&
+ (iicprobew(0x00) & 0xff00) == 0x0000) {
+ name = "at30ts00"; /* or at30tse002 */
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x1114 &&
+ (iicprobew(0x07) & 0xffff) == 0x2200 &&
+ (iicprobew(0x00) & 0xff00) == 0x0000) {
+ name = "at30tse004";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x1c68 &&
+ (iicprobew(0x07) & 0xffff) == 0x2201 &&
+ (iicprobew(0x00) & 0xff00) == 0x0000) {
+ name = "gt30ts00";
+ } else if ((addr & 0x78) == 0x18 && iicprobew(0x06) == 0x132d &&
+ (iicprobew(0x07) & 0xffff) == 0x3300 &&
+ (iicprobew(0x00) & 0x001f) == 0x001f) {
+ name = "gt34ts02";
} else if ((addr & 0x7e) == 0x1c && iicprobe(0x0f) == 0x3b &&
(iicprobe(0x21) & 0x60) == 0x00 &&
iicprobe(0x0f) == iicprobe(0x8f) && /* registers address is 7 bits */
diff --git a/sys/dev/i2c/sdtemp.c b/sys/dev/i2c/sdtemp.c
index 48b7bc5d25d..4d6c4ba7aa2 100644
--- a/sys/dev/i2c/sdtemp.c
+++ b/sys/dev/i2c/sdtemp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sdtemp.c,v 1.13 2011/10/07 06:29:43 deraadt Exp $ */
+/* $OpenBSD: sdtemp.c,v 1.14 2014/09/27 06:07:01 jsg Exp $ */
/*
* Copyright (c) 2008 Theo de Raadt
@@ -59,15 +59,27 @@ 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, "mcp9804") == 0 ||
strcmp(ia->ia_name, "mcp9805") == 0 ||
strcmp(ia->ia_name, "mcp98242") == 0 ||
strcmp(ia->ia_name, "mcp98243") == 0 ||
+ strcmp(ia->ia_name, "mcp98244") == 0 ||
strcmp(ia->ia_name, "adt7408") == 0 ||
strcmp(ia->ia_name, "stts424e02") == 0 ||
strcmp(ia->ia_name, "stts424") == 0 ||
strcmp(ia->ia_name, "stts2002") == 0 ||
+ strcmp(ia->ia_name, "stts2004") == 0 ||
+ strcmp(ia->ia_name, "stts3000") == 0 ||
strcmp(ia->ia_name, "ts3000b3") == 0 ||
- strcmp(ia->ia_name, "cat34ts02") == 0)
+ strcmp(ia->ia_name, "ts3000gb0") == 0 ||
+ strcmp(ia->ia_name, "ts3000gb2") == 0 ||
+ strcmp(ia->ia_name, "ts3001gb2") == 0 ||
+ strcmp(ia->ia_name, "at30ts00") == 0 ||
+ strcmp(ia->ia_name, "at30tse004") == 0 ||
+ strcmp(ia->ia_name, "cat34ts02") == 0 ||
+ strcmp(ia->ia_name, "cat34ts02c") == 0 ||
+ strcmp(ia->ia_name, "gt30ts00") == 0 ||
+ strcmp(ia->ia_name, "gt34ts02") == 0)
return (1);
return (0);
}