*/
        now = in_be32(®s->actual_time) + in_be32(®s->target_time);
 
-       rtc_time_to_tm(now, tm);
+       rtc_time64_to_tm(now, tm);
 
        /*
         * update second minute hour registers
 {
        struct mpc5121_rtc_data *rtc = dev_get_drvdata(dev);
        struct mpc5121_rtc_regs __iomem *regs = rtc->regs;
-       int ret;
        unsigned long now;
 
        /*
         * The actual_time register is read only so we write the offset
         * between it and linux time to the target_time register.
         */
-       ret = rtc_tm_to_time(tm, &now);
-       if (ret == 0)
-               out_be32(®s->target_time, now - in_be32(®s->actual_time));
+       now = rtc_tm_to_time64(tm);
+       out_be32(®s->target_time, now - in_be32(®s->actual_time));
 
        /*
         * update second minute hour registers