|
@@ -22,7 +22,7 @@
|
|
|
#include <linux/of.h>
|
|
|
#include <linux/err.h>
|
|
|
|
|
|
-#define DRV_VERSION "0.4.3"
|
|
|
+#define DRV_VERSION "0.4.4"
|
|
|
|
|
|
#define PCF8563_REG_ST1 0x00 /* status */
|
|
|
#define PCF8563_REG_ST2 0x01
|
|
@@ -202,8 +202,9 @@ static int pcf8563_get_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|
|
|
|
|
if (buf[PCF8563_REG_SC] & PCF8563_SC_LV) {
|
|
|
pcf8563->voltage_low = 1;
|
|
|
- dev_info(&client->dev,
|
|
|
+ dev_err(&client->dev,
|
|
|
"low voltage detected, date/time is not reliable.\n");
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
dev_dbg(&client->dev,
|
|
@@ -234,12 +235,6 @@ static int pcf8563_get_datetime(struct i2c_client *client, struct rtc_time *tm)
|
|
|
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
|
|
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
|
|
|
|
|
- /* the clock can give out invalid datetime, but we cannot return
|
|
|
- * -EINVAL otherwise hwclock will refuse to set the time on bootup.
|
|
|
- */
|
|
|
- if (rtc_valid_tm(tm) < 0)
|
|
|
- dev_err(&client->dev, "retrieved date/time is not valid.\n");
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|