rtc_writel(KICK1_VALUE, OMAP_RTC_KICK1_REG);
        }
 
+       device_init_wakeup(&pdev->dev, true);
+
        rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
                        &omap_rtc_ops, THIS_MODULE);
        if (IS_ERR(rtc)) {
         *    is write-only, and always reads as zero...)
         */
 
-       device_init_wakeup(&pdev->dev, true);
-
        if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT)
                pr_info("%s: split power mode\n", pdev->name);
 
        return 0;
 
 fail0:
+       device_init_wakeup(&pdev->dev, false);
        if (id_entry->driver_data & OMAP_RTC_HAS_KICKER)
                rtc_writel(0, OMAP_RTC_KICK0_REG);
        pm_runtime_put_sync(&pdev->dev);