Lines Matching full:rtc

3  *  linux/drivers/rtc/rtc-pl030.c
8 #include <linux/rtc.h>
24 struct rtc_device *rtc; member
30 struct pl030_rtc *rtc = dev_id; in pl030_interrupt() local
31 writel(0, rtc->base + RTC_EOI); in pl030_interrupt()
37 struct pl030_rtc *rtc = dev_get_drvdata(dev); in pl030_read_alarm() local
39 rtc_time64_to_tm(readl(rtc->base + RTC_MR), &alrm->time); in pl030_read_alarm()
45 struct pl030_rtc *rtc = dev_get_drvdata(dev); in pl030_set_alarm() local
47 writel(rtc_tm_to_time64(&alrm->time), rtc->base + RTC_MR); in pl030_set_alarm()
54 struct pl030_rtc *rtc = dev_get_drvdata(dev); in pl030_read_time() local
56 rtc_time64_to_tm(readl(rtc->base + RTC_DR), tm); in pl030_read_time()
62 * Set the RTC time. Unfortunately, we can't accurately set
71 struct pl030_rtc *rtc = dev_get_drvdata(dev); in pl030_set_time() local
73 writel(rtc_tm_to_time64(tm) + 1, rtc->base + RTC_LR); in pl030_set_time()
87 struct pl030_rtc *rtc; in pl030_probe() local
94 rtc = devm_kzalloc(&dev->dev, sizeof(*rtc), GFP_KERNEL); in pl030_probe()
95 if (!rtc) { in pl030_probe()
100 rtc->rtc = devm_rtc_allocate_device(&dev->dev); in pl030_probe()
101 if (IS_ERR(rtc->rtc)) { in pl030_probe()
102 ret = PTR_ERR(rtc->rtc); in pl030_probe()
106 rtc->rtc->ops = &pl030_ops; in pl030_probe()
107 rtc->rtc->range_max = U32_MAX; in pl030_probe()
108 rtc->base = ioremap(dev->res.start, resource_size(&dev->res)); in pl030_probe()
109 if (!rtc->base) { in pl030_probe()
114 __raw_writel(0, rtc->base + RTC_CR); in pl030_probe()
115 __raw_writel(0, rtc->base + RTC_EOI); in pl030_probe()
117 amba_set_drvdata(dev, rtc); in pl030_probe()
120 "rtc-pl030", rtc); in pl030_probe()
124 ret = devm_rtc_register_device(rtc->rtc); in pl030_probe()
131 free_irq(dev->irq[0], rtc); in pl030_probe()
133 iounmap(rtc->base); in pl030_probe()
142 struct pl030_rtc *rtc = amba_get_drvdata(dev); in pl030_remove() local
144 writel(0, rtc->base + RTC_CR); in pl030_remove()
146 free_irq(dev->irq[0], rtc); in pl030_remove()
147 iounmap(rtc->base); in pl030_remove()
163 .name = "rtc-pl030",
173 MODULE_DESCRIPTION("ARM AMBA PL030 RTC Driver");