rtc-ds1307: remove legacy probe() checks
Remove RTC register value checks from the rtc-ds1307 probe() function. They were left over from the legacy style I2C driver, which had to defend against finding a non-RTC chip when the driver was probed. Also fix a minor glitch in the alarm support: DS1307 chips don't have alarms, so name those methods after one of the chips which actually *do* have alarms (DS1337). Signed-off-by: Jüri Reitel <juri.reitel@liewenthal.ee> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Sebastien Barre <sbarre@sdelcc.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Acked-by: Jean Delvare <khali@linux-fr.org> Cc: Rodolfo Giometti <giometti@enneenne.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
fed40b734c
commit
74d88eb293
|
@ -287,7 +287,7 @@ static int ds1307_set_time(struct device *dev, struct rtc_time *t)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ds1307_read_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
static int ds1337_read_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
{
|
||||
struct i2c_client *client = to_i2c_client(dev);
|
||||
struct ds1307 *ds1307 = i2c_get_clientdata(client);
|
||||
|
@ -338,7 +338,7 @@ static int ds1307_read_alarm(struct device *dev, struct rtc_wkalrm *t)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ds1307_set_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
static int ds1337_set_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
{
|
||||
struct i2c_client *client = to_i2c_client(dev);
|
||||
struct ds1307 *ds1307 = i2c_get_clientdata(client);
|
||||
|
@ -452,8 +452,8 @@ static int ds1307_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
|
|||
static const struct rtc_class_ops ds13xx_rtc_ops = {
|
||||
.read_time = ds1307_get_time,
|
||||
.set_time = ds1307_set_time,
|
||||
.read_alarm = ds1307_read_alarm,
|
||||
.set_alarm = ds1307_set_alarm,
|
||||
.read_alarm = ds1337_read_alarm,
|
||||
.set_alarm = ds1337_set_alarm,
|
||||
.ioctl = ds1307_ioctl,
|
||||
};
|
||||
|
||||
|
@ -654,22 +654,6 @@ read_rtc:
|
|||
break;
|
||||
}
|
||||
|
||||
tmp = ds1307->regs[DS1307_REG_SECS];
|
||||
tmp = bcd2bin(tmp & 0x7f);
|
||||
if (tmp > 60)
|
||||
goto exit_bad;
|
||||
tmp = bcd2bin(ds1307->regs[DS1307_REG_MIN] & 0x7f);
|
||||
if (tmp > 60)
|
||||
goto exit_bad;
|
||||
|
||||
tmp = bcd2bin(ds1307->regs[DS1307_REG_MDAY] & 0x3f);
|
||||
if (tmp == 0 || tmp > 31)
|
||||
goto exit_bad;
|
||||
|
||||
tmp = bcd2bin(ds1307->regs[DS1307_REG_MONTH] & 0x1f);
|
||||
if (tmp == 0 || tmp > 12)
|
||||
goto exit_bad;
|
||||
|
||||
tmp = ds1307->regs[DS1307_REG_HOUR];
|
||||
switch (ds1307->type) {
|
||||
case ds_1340:
|
||||
|
@ -726,13 +710,6 @@ read_rtc:
|
|||
|
||||
return 0;
|
||||
|
||||
exit_bad:
|
||||
dev_dbg(&client->dev, "%s: %02x %02x %02x %02x %02x %02x %02x\n",
|
||||
"bogus register",
|
||||
ds1307->regs[0], ds1307->regs[1],
|
||||
ds1307->regs[2], ds1307->regs[3],
|
||||
ds1307->regs[4], ds1307->regs[5],
|
||||
ds1307->regs[6]);
|
||||
exit_irq:
|
||||
if (ds1307->rtc)
|
||||
rtc_device_unregister(ds1307->rtc);
|
||||
|
|
Loading…
Reference in New Issue