aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2014-06-10 18:18:41 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-10 18:34:47 -0400
commitfe787a5b2297b3ef29ff04e09dcdfb58d9b690f9 (patch)
tree8355234f2c52eb69609e6de9c99b1dcec2f25f92
parent602cb5bbae9868fe48989efa78aca62415309fcf (diff)
rtc: s5m: remove undocumented time init on first boot
Remove the code for initializing time if this is first boot. The code for detecting first boot uses undocumented field RTC_TCON in RTC_UDR_CON register. According to S5M8767's datasheet this field is reserved. On S2MPS14 it is not documented at all. On device first boot the registers will be initialized with reset value (2000-01-01 00:00:00). The code might work on S5M8763 but still this does not look like a task for RTC driver. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: Lee Jones <lee.jones@linaro.org> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: Sangbeom Kim <sbkim73@samsung.com> Cc: Samuel Ortiz <sameo@linux.intel.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/rtc/rtc-s5m.c30
1 files changed, 0 insertions, 30 deletions
diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c
index b37df8c790f2..22137d4dbadf 100644
--- a/drivers/rtc/rtc-s5m.c
+++ b/drivers/rtc/rtc-s5m.c
@@ -517,16 +517,7 @@ static void s5m_rtc_enable_smpl(struct s5m_rtc_info *info, bool enable)
517static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info) 517static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
518{ 518{
519 u8 data[2]; 519 u8 data[2];
520 unsigned int tp_read;
521 int ret; 520 int ret;
522 struct rtc_time tm;
523
524 ret = regmap_read(info->regmap, S5M_RTC_UDR_CON, &tp_read);
525 if (ret < 0) {
526 dev_err(info->dev, "%s: fail to read control reg(%d)\n",
527 __func__, ret);
528 return ret;
529 }
530 521
531 /* Set RTC control register : Binary mode, 24hour mode */ 522 /* Set RTC control register : Binary mode, 24hour mode */
532 data[0] = (1 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT); 523 data[0] = (1 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT);
@@ -540,27 +531,6 @@ static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
540 return ret; 531 return ret;
541 } 532 }
542 533
543 /* In first boot time, Set rtc time to 1/1/2012 00:00:00(SUN) */
544 if ((tp_read & RTC_TCON_MASK) == 0) {
545 dev_dbg(info->dev, "rtc init\n");
546 tm.tm_sec = 0;
547 tm.tm_min = 0;
548 tm.tm_hour = 0;
549 tm.tm_wday = 0;
550 tm.tm_mday = 1;
551 tm.tm_mon = 0;
552 tm.tm_year = 112;
553 tm.tm_yday = 0;
554 tm.tm_isdst = 0;
555 ret = s5m_rtc_set_time(info->dev, &tm);
556 }
557
558 ret = regmap_update_bits(info->regmap, S5M_RTC_UDR_CON,
559 RTC_TCON_MASK, tp_read | RTC_TCON_MASK);
560 if (ret < 0)
561 dev_err(info->dev, "%s: fail to update TCON reg(%d)\n",
562 __func__, ret);
563
564 return ret; 534 return ret;
565} 535}
566 536