Message ID | 20190315133513.9909-3-alexandre.belloni@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] rtc: mv: convert to SPDX identifier | expand |
Hi Alexandre, On ven., mars 15 2019, Alexandre Belloni <alexandre.belloni@bootlin.com> wrote: > This RTC handles time from 2000-01-01 00:00:00 to 2099-12-31 23:59:59 with > a weird rollover to 2000-06-23 00:00:00. > > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com> on Armada XP GP Thanks, Gregory > --- > drivers/rtc/rtc-mv.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c > index ef704aef8663..e357a0b3f612 100644 > --- a/drivers/rtc/rtc-mv.c > +++ b/drivers/rtc/rtc-mv.c > @@ -57,7 +57,7 @@ static int mv_rtc_set_time(struct device *dev, struct rtc_time *tm) > > rtc_reg = (bin2bcd(tm->tm_mday) << RTC_MDAY_OFFS) | > (bin2bcd(tm->tm_mon + 1) << RTC_MONTH_OFFS) | > - (bin2bcd(tm->tm_year % 100) << RTC_YEAR_OFFS); > + (bin2bcd(tm->tm_year - 100) << RTC_YEAR_OFFS); > writel(rtc_reg, ioaddr + RTC_DATE_REG_OFFS); > > return 0; > @@ -156,7 +156,7 @@ static int mv_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) > << RTC_MONTH_OFFS; > > if (alm->time.tm_year >= 0) > - rtc_reg |= (RTC_ALARM_VALID | bin2bcd(alm->time.tm_year % 100)) > + rtc_reg |= (RTC_ALARM_VALID | bin2bcd(alm->time.tm_year - 100)) > << RTC_YEAR_OFFS; > > writel(rtc_reg, ioaddr + RTC_ALARM_DATE_REG_OFFS); > @@ -277,6 +277,9 @@ static int __init mv_rtc_probe(struct platform_device *pdev) > pdata->rtc->ops = &mv_rtc_ops; > } > > + pdata->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; > + pdata->rtc->range_max = RTC_TIMESTAMP_END_2099; > + > ret = rtc_register_device(pdata->rtc); > if (!ret) > return 0; > -- > 2.20.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c index ef704aef8663..e357a0b3f612 100644 --- a/drivers/rtc/rtc-mv.c +++ b/drivers/rtc/rtc-mv.c @@ -57,7 +57,7 @@ static int mv_rtc_set_time(struct device *dev, struct rtc_time *tm) rtc_reg = (bin2bcd(tm->tm_mday) << RTC_MDAY_OFFS) | (bin2bcd(tm->tm_mon + 1) << RTC_MONTH_OFFS) | - (bin2bcd(tm->tm_year % 100) << RTC_YEAR_OFFS); + (bin2bcd(tm->tm_year - 100) << RTC_YEAR_OFFS); writel(rtc_reg, ioaddr + RTC_DATE_REG_OFFS); return 0; @@ -156,7 +156,7 @@ static int mv_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) << RTC_MONTH_OFFS; if (alm->time.tm_year >= 0) - rtc_reg |= (RTC_ALARM_VALID | bin2bcd(alm->time.tm_year % 100)) + rtc_reg |= (RTC_ALARM_VALID | bin2bcd(alm->time.tm_year - 100)) << RTC_YEAR_OFFS; writel(rtc_reg, ioaddr + RTC_ALARM_DATE_REG_OFFS); @@ -277,6 +277,9 @@ static int __init mv_rtc_probe(struct platform_device *pdev) pdata->rtc->ops = &mv_rtc_ops; } + pdata->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; + pdata->rtc->range_max = RTC_TIMESTAMP_END_2099; + ret = rtc_register_device(pdata->rtc); if (!ret) return 0;
This RTC handles time from 2000-01-01 00:00:00 to 2099-12-31 23:59:59 with a weird rollover to 2000-06-23 00:00:00. Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> --- drivers/rtc/rtc-mv.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)