if (!rtc_dd->allow_set_time)
                return -EACCES;
 
-       rtc_tm_to_time(tm, &secs);
+       secs = rtc_tm_to_time64(tm);
 
        dev_dbg(dev, "Seconds value to be written to RTC = %lu\n", secs);
 
        secs = value[0] | (value[1] << 8) | (value[2] << 16) |
               ((unsigned long)value[3] << 24);
 
-       rtc_time_to_tm(secs, tm);
+       rtc_time64_to_tm(secs, tm);
 
        dev_dbg(dev, "secs = %lu, h:m:s == %ptRt, y-m-d = %ptRdr\n", secs, tm, tm);
 
        struct pm8xxx_rtc *rtc_dd = dev_get_drvdata(dev);
        const struct pm8xxx_rtc_regs *regs = rtc_dd->regs;
 
-       rtc_tm_to_time(&alarm->time, &secs);
+       secs = rtc_tm_to_time64(&alarm->time);
 
        for (i = 0; i < NUM_8_BIT_RTC_REGS; i++) {
                value[i] = secs & 0xFF;
        secs = value[0] | (value[1] << 8) | (value[2] << 16) |
               ((unsigned long)value[3] << 24);
 
-       rtc_time_to_tm(secs, &alarm->time);
+       rtc_time64_to_tm(secs, &alarm->time);
 
        rc = rtc_valid_tm(&alarm->time);
        if (rc < 0) {