time64_t time = rtc_tm_to_time64(tm);
        int ret;
 
-       if (time > U32_MAX) {
-               dev_err(dev, "RTC exceeded by %llus\n", time - U32_MAX);
-               return -EINVAL;
-       }
-
        ret = mxc_rtc_lock(pdata);
        if (ret)
                return ret;
        if (ret)
                return ret;
 
-       if (time > U32_MAX) {
-               dev_err(dev, "Hopefully I am out of service by then :-(\n");
-               return -EINVAL;
-       }
-
        writel((u32)time, pdata->ioaddr + SRTC_LPSAR);
 
        /* clear alarm interrupt status bit */
                return PTR_ERR(pdata->rtc);
 
        pdata->rtc->ops = &mxc_rtc_ops;
+       pdata->rtc->range_max = U32_MAX;
 
        clk_disable(pdata->clk);
        platform_set_drvdata(pdev, pdata);