Merge tag 'v4.4.52' into linux-linaro-lsk-v4.4
[firefly-linux-kernel-4.4.55.git] / drivers / rtc / rtc-at91sam9.c
index 23f721d049b265bd3dbb3cd184832f86ebfa5948..7206e2fa43837545a11f61a5b298843678b31636 100644 (file)
@@ -18,7 +18,7 @@
 #include <linux/kernel.h>
 #include <linux/mfd/syscon.h>
 #include <linux/module.h>
-#include <linux/platform_data/atmel.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/rtc.h>
@@ -425,18 +425,19 @@ static int at91_rtc_probe(struct platform_device *pdev)
        if (IS_ERR(rtc->sclk))
                return PTR_ERR(rtc->sclk);
 
-       sclk_rate = clk_get_rate(rtc->sclk);
-       if (!sclk_rate || sclk_rate > AT91_RTT_RTPRES) {
-               dev_err(&pdev->dev, "Invalid slow clock rate\n");
-               return -EINVAL;
-       }
-
        ret = clk_prepare_enable(rtc->sclk);
        if (ret) {
                dev_err(&pdev->dev, "Could not enable slow clock\n");
                return ret;
        }
 
+       sclk_rate = clk_get_rate(rtc->sclk);
+       if (!sclk_rate || sclk_rate > AT91_RTT_RTPRES) {
+               dev_err(&pdev->dev, "Invalid slow clock rate\n");
+               ret = -EINVAL;
+               goto err_clk;
+       }
+
        mr = rtt_readl(rtc, MR);
 
        /* unless RTT is counting at 1 Hz, re-initialize it */