return 0;
 }
 
-static int cpts_ptp_gettime(struct ptp_clock_info *ptp, struct timespec *ts)
+static int cpts_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)
 {
        u64 ns;
        u32 remainder;
 }
 
 static int cpts_ptp_settime(struct ptp_clock_info *ptp,
-                           const struct timespec *ts)
+                           const struct timespec64 *ts)
 {
        u64 ns;
        unsigned long flags;
        .pps            = 0,
        .adjfreq        = cpts_ptp_adjfreq,
        .adjtime        = cpts_ptp_adjtime,
-       .gettime        = cpts_ptp_gettime,
-       .settime        = cpts_ptp_settime,
+       .gettime64      = cpts_ptp_gettime,
+       .settime64      = cpts_ptp_settime,
        .enable         = cpts_ptp_enable,
 };
 
 static void cpts_overflow_check(struct work_struct *work)
 {
-       struct timespec ts;
+       struct timespec64 ts;
        struct cpts *cpts = container_of(work, struct cpts, overflow_work.work);
 
        cpts_write32(cpts, CPTS_EN, control);
        cpts_write32(cpts, TS_PEND_EN, int_enable);
        cpts_ptp_gettime(&cpts->info, &ts);
-       pr_debug("cpts overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec);
+       pr_debug("cpts overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec);
        schedule_delayed_work(&cpts->overflow_work, CPTS_OVERFLOW_PERIOD);
 }