Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
[pandora-kernel.git] / drivers / hwmon / lm75.c
index e7c8bf9..fe41d5a 100644 (file)
@@ -44,6 +44,7 @@ enum lm75_type {              /* keep sorted in alphabetical order */
        g751,
        lm75,
        lm75a,
+       lm75b,
        max6625,
        max6626,
        mcp980x,
@@ -237,6 +238,10 @@ lm75_probe(struct i2c_client *client, const struct i2c_device_id *id)
                data->resolution = 9;
                data->sample_time = HZ / 2;
                break;
+       case lm75b:
+               data->resolution = 11;
+               data->sample_time = HZ / 4;
+               break;
        case max6625:
                data->resolution = 9;
                data->sample_time = HZ / 4;
@@ -325,6 +330,7 @@ static const struct i2c_device_id lm75_ids[] = {
        { "g751", g751, },
        { "lm75", lm75, },
        { "lm75a", lm75a, },
+       { "lm75b", lm75b, },
        { "max6625", max6625, },
        { "max6626", max6626, },
        { "mcp980x", mcp980x, },
@@ -412,6 +418,12 @@ static int lm75_detect(struct i2c_client *new_client,
                 || i2c_smbus_read_byte_data(new_client, 7) != os)
                        return -ENODEV;
        }
+       /*
+        * It is very unlikely that this is a LM75 if both
+        * hysteresis and temperature limit registers are 0.
+        */
+       if (hyst == 0 && os == 0)
+               return -ENODEV;
 
        /* Addresses cycling */
        for (i = 8; i <= 248; i += 40) {