aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-imxdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-imxdi.c')
-rw-r--r--drivers/rtc/rtc-imxdi.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-imxdi.c b/drivers/rtc/rtc-imxdi.c
index 891cd6c61d0a..8da7a5cf83c6 100644
--- a/drivers/rtc/rtc-imxdi.c
+++ b/drivers/rtc/rtc-imxdi.c
@@ -36,7 +36,9 @@
36#include <linux/platform_device.h> 36#include <linux/platform_device.h>
37#include <linux/rtc.h> 37#include <linux/rtc.h>
38#include <linux/sched.h> 38#include <linux/sched.h>
39#include <linux/spinlock.h>
39#include <linux/workqueue.h> 40#include <linux/workqueue.h>
41#include <linux/of.h>
40 42
41/* DryIce Register Definitions */ 43/* DryIce Register Definitions */
42 44
@@ -392,6 +394,8 @@ static int dryice_rtc_probe(struct platform_device *pdev)
392 if (imxdi->ioaddr == NULL) 394 if (imxdi->ioaddr == NULL)
393 return -ENOMEM; 395 return -ENOMEM;
394 396
397 spin_lock_init(&imxdi->irq_lock);
398
395 imxdi->irq = platform_get_irq(pdev, 0); 399 imxdi->irq = platform_get_irq(pdev, 0);
396 if (imxdi->irq < 0) 400 if (imxdi->irq < 0)
397 return imxdi->irq; 401 return imxdi->irq;
@@ -493,10 +497,20 @@ static int __devexit dryice_rtc_remove(struct platform_device *pdev)
493 return 0; 497 return 0;
494} 498}
495 499
500#ifdef CONFIG_OF
501static const struct of_device_id dryice_dt_ids[] = {
502 { .compatible = "fsl,imx25-rtc" },
503 { /* sentinel */ }
504};
505
506MODULE_DEVICE_TABLE(of, dryice_dt_ids);
507#endif
508
496static struct platform_driver dryice_rtc_driver = { 509static struct platform_driver dryice_rtc_driver = {
497 .driver = { 510 .driver = {
498 .name = "imxdi_rtc", 511 .name = "imxdi_rtc",
499 .owner = THIS_MODULE, 512 .owner = THIS_MODULE,
513 .of_match_table = of_match_ptr(dryice_dt_ids),
500 }, 514 },
501 .remove = __devexit_p(dryice_rtc_remove), 515 .remove = __devexit_p(dryice_rtc_remove),
502}; 516};