[PATCH] hwmon: New device ID for the smsc47b397 driver
authorMark M. Hoffman <mhoffman@lightlink.com>
Mon, 17 Oct 2005 21:01:45 +0000 (23:01 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 28 Oct 2005 21:02:11 +0000 (14:02 -0700)
This patch adds a new ID to the SMSC LPC47B397-NC hardware
monitoring driver - for a chip that is claimed to be 100%
compatible otherwise.

Signed-off-by: Bryan Young (Utilitek Systems, Inc.)
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Documentation/hwmon/smsc47b397
drivers/hwmon/smsc47b397.c

index da9d80c9643286183750fd978aec69ac78e0633b..20682f15ae410cc7962c1914fe0f959465330f91 100644 (file)
@@ -3,6 +3,7 @@ Kernel driver smsc47b397
 
 Supported chips:
   * SMSC LPC47B397-NC
+  * SMSC SCH5307-NS
     Prefix: 'smsc47b397'
     Addresses scanned: none, address read from Super I/O config space
     Datasheet: In this file
@@ -12,11 +13,14 @@ Authors: Mark M. Hoffman <mhoffman@lightlink.com>
 
 November 23, 2004
 
-The following specification describes the SMSC LPC47B397-NC sensor chip
+The following specification describes the SMSC LPC47B397-NC[1] sensor chip
 (for which there is no public datasheet available). This document was
 provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected
 by Mark M. Hoffman <mhoffman@lightlink.com>.
 
+[1] And SMSC SCH5307-NS, which has a different device ID but is otherwise
+compatible.
+
 * * * * *
 
 Methods for detecting the HP SIO and reading the thermal data on a dc7100.
@@ -127,7 +131,7 @@ OUT DX,AL
 The registers of interest for identifying the SIO on the dc7100 are Device ID
 (0x20) and Device Rev  (0x21).
 
-The Device ID will read 0X6F
+The Device ID will read 0x6F (for SCH5307-NS, 0x81)
 The Device Rev currently reads 0x01
 
 Obtaining the HWM Base Address.
index 7fe71576dea4b7416e6b15ae387e56dc6238da1d..37ed8b33f01aa69931a0dc05656871df86f0a16b 100644 (file)
@@ -299,7 +299,7 @@ static int __init smsc47b397_find(unsigned short *addr)
        superio_enter();
        id = superio_inb(SUPERIO_REG_DEVID);
 
-       if (id != 0x6f) {
+       if ((id != 0x6f) && (id != 0x81)) {
                superio_exit();
                return -ENODEV;
        }
@@ -310,8 +310,9 @@ static int __init smsc47b397_find(unsigned short *addr)
        *addr = (superio_inb(SUPERIO_REG_BASE_MSB) << 8)
                 |  superio_inb(SUPERIO_REG_BASE_LSB);
 
-       printk(KERN_INFO "smsc47b397: found SMSC LPC47B397-NC "
-               "(base address 0x%04x, revision %u)\n", *addr, rev);
+       printk(KERN_INFO "smsc47b397: found SMSC %s "
+               "(base address 0x%04x, revision %u)\n",
+               id == 0x81 ? "SCH5307-NS" : "LPC47B397-NC", *addr, rev);
 
        superio_exit();
        return 0;