Hi Benjamin, On Wed, 12 Jul 2017, Benjamin Gaignard wrote:
> @@ -93,12 +93,12 @@ static int ftrtc010_rtc_set_time(struct device *dev, > struct rtc_time *tm) > { > struct ftrtc010_rtc *rtc = dev_get_drvdata(dev); > unsigned int sec, min, hour, day; > - unsigned long offset, time; > + unsigned long long offset, time; > > if (tm->tm_year >= 2148) /* EPOCH Year + 179 */ > return -EINVAL; > > - rtc_tm_to_time(tm, &time); > + time = rtc_tm_to_time64(tm); > > sec = readl(rtc->rtc_base + FTRTC010_RTC_SECOND); > min = readl(rtc->rtc_base + FTRTC010_RTC_MINUTE); later on this will do writel(offset, rtc->rtc_base + FTRTC010_RTC_RECORD); you are writing some 64bit value in a 32bit register ... NACK here Greetings from Cologne Hans Ulli Kroll > 1.9.1 > >