if (ret)
                return ret;
 
-       rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm);
+       rtc_time64_to_tm(readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm);
        return 0;
 }
 
 {
        struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev);
 
-       rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time);
+       rtc_time64_to_tm(readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time);
        return 0;
 }
 
 static int stmp3xxx_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
 {
-       unsigned long t;
        struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev);
 
-       rtc_tm_to_time(&alm->time, &t);
-       writel(t, rtc_data->io + STMP3XXX_RTC_ALARM);
+       writel(rtc_tm_to_time64(&alm->time), rtc_data->io + STMP3XXX_RTC_ALARM);
 
        stmp3xxx_alarm_irq_enable(dev, alm->enabled);