aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-at32ap700x.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-at32ap700x.c')
-rw-r--r--drivers/rtc/rtc-at32ap700x.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-at32ap700x.c b/drivers/rtc/rtc-at32ap700x.c
index e1ec33e40e38..b2752b6e7a2f 100644
--- a/drivers/rtc/rtc-at32ap700x.c
+++ b/drivers/rtc/rtc-at32ap700x.c
@@ -11,6 +11,7 @@
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/platform_device.h> 13#include <linux/platform_device.h>
14#include <linux/slab.h>
14#include <linux/rtc.h> 15#include <linux/rtc.h>
15#include <linux/io.h> 16#include <linux/io.h>
16 17
@@ -256,6 +257,8 @@ static int __init at32_rtc_probe(struct platform_device *pdev)
256 goto out_iounmap; 257 goto out_iounmap;
257 } 258 }
258 259
260 platform_set_drvdata(pdev, rtc);
261
259 rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, 262 rtc->rtc = rtc_device_register(pdev->name, &pdev->dev,
260 &at32_rtc_ops, THIS_MODULE); 263 &at32_rtc_ops, THIS_MODULE);
261 if (IS_ERR(rtc->rtc)) { 264 if (IS_ERR(rtc->rtc)) {
@@ -264,7 +267,6 @@ static int __init at32_rtc_probe(struct platform_device *pdev)
264 goto out_free_irq; 267 goto out_free_irq;
265 } 268 }
266 269
267 platform_set_drvdata(pdev, rtc);
268 device_init_wakeup(&pdev->dev, 1); 270 device_init_wakeup(&pdev->dev, 1);
269 271
270 dev_info(&pdev->dev, "Atmel RTC for AT32AP700x at %08lx irq %ld\n", 272 dev_info(&pdev->dev, "Atmel RTC for AT32AP700x at %08lx irq %ld\n",
@@ -273,6 +275,7 @@ static int __init at32_rtc_probe(struct platform_device *pdev)
273 return 0; 275 return 0;
274 276
275out_free_irq: 277out_free_irq:
278 platform_set_drvdata(pdev, NULL);
276 free_irq(irq, rtc); 279 free_irq(irq, rtc);
277out_iounmap: 280out_iounmap:
278 iounmap(rtc->regs); 281 iounmap(rtc->regs);