]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/rtc/rtc-pcf8563.c
Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-omap-h63xx.git] / drivers / rtc / rtc-pcf8563.c
index 0fc4c363078003e6d189f39a8b3f6f5a4ddd790a..a829f20ad6d6eb140d56d246ab620af0640507d7 100644 (file)
@@ -179,58 +179,6 @@ struct pcf8563_limit
        unsigned char max;
 };
 
-static int pcf8563_validate_client(struct i2c_client *client)
-{
-       int i;
-
-       static const struct pcf8563_limit pattern[] = {
-               /* register, mask, min, max */
-               { PCF8563_REG_SC,       0x7F,   0,      59      },
-               { PCF8563_REG_MN,       0x7F,   0,      59      },
-               { PCF8563_REG_HR,       0x3F,   0,      23      },
-               { PCF8563_REG_DM,       0x3F,   0,      31      },
-               { PCF8563_REG_MO,       0x1F,   0,      12      },
-       };
-
-       /* check limits (only registers with bcd values) */
-       for (i = 0; i < ARRAY_SIZE(pattern); i++) {
-               int xfer;
-               unsigned char value;
-               unsigned char buf = pattern[i].reg;
-
-               struct i2c_msg msgs[] = {
-                       { client->addr, 0, 1, &buf },
-                       { client->addr, I2C_M_RD, 1, &buf },
-               };
-
-               xfer = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
-
-               if (xfer != ARRAY_SIZE(msgs)) {
-                       dev_err(&client->dev,
-                               "%s: could not read register 0x%02X\n",
-                               __func__, pattern[i].reg);
-
-                       return -EIO;
-               }
-
-               value = BCD2BIN(buf & pattern[i].mask);
-
-               if (value > pattern[i].max ||
-                       value < pattern[i].min) {
-                       dev_dbg(&client->dev,
-                               "%s: pattern=%d, reg=%x, mask=0x%02x, min=%d, "
-                               "max=%d, value=%d, raw=0x%02X\n",
-                               __func__, i, pattern[i].reg, pattern[i].mask,
-                               pattern[i].min, pattern[i].max,
-                               value, buf);
-
-                       return -ENODEV;
-               }
-       }
-
-       return 0;
-}
-
 static int pcf8563_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
        return pcf8563_get_datetime(to_i2c_client(dev), tm);
@@ -262,12 +210,6 @@ static int pcf8563_probe(struct i2c_client *client,
        if (!pcf8563)
                return -ENOMEM;
 
-       /* Verify the chip is really an PCF8563 */
-       if (pcf8563_validate_client(client) < 0) {
-               err = -ENODEV;
-               goto exit_kfree;
-       }
-
        dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n");
 
        pcf8563->rtc = rtc_device_register(pcf8563_driver.driver.name,
@@ -302,6 +244,7 @@ static int pcf8563_remove(struct i2c_client *client)
 
 static const struct i2c_device_id pcf8563_id[] = {
        { "pcf8563", 0 },
+       { "rtc8564", 0 },
        { }
 };
 MODULE_DEVICE_TABLE(i2c, pcf8563_id);