Lines Matching defs:rtc
3 * linux/drivers/rtc/rtc-pl030.c
8 #include <linux/rtc.h>
24 struct rtc_device *rtc;
30 struct pl030_rtc *rtc = dev_id;
31 writel(0, rtc->base + RTC_EOI);
37 struct pl030_rtc *rtc = dev_get_drvdata(dev);
39 rtc_time64_to_tm(readl(rtc->base + RTC_MR), &alrm->time);
45 struct pl030_rtc *rtc = dev_get_drvdata(dev);
47 writel(rtc_tm_to_time64(&alrm->time), rtc->base + RTC_MR);
54 struct pl030_rtc *rtc = dev_get_drvdata(dev);
56 rtc_time64_to_tm(readl(rtc->base + RTC_DR), tm);
71 struct pl030_rtc *rtc = dev_get_drvdata(dev);
73 writel(rtc_tm_to_time64(tm) + 1, rtc->base + RTC_LR);
87 struct pl030_rtc *rtc;
94 rtc = devm_kzalloc(&dev->dev, sizeof(*rtc), GFP_KERNEL);
95 if (!rtc) {
100 rtc->rtc = devm_rtc_allocate_device(&dev->dev);
101 if (IS_ERR(rtc->rtc)) {
102 ret = PTR_ERR(rtc->rtc);
106 rtc->rtc->ops = &pl030_ops;
107 rtc->rtc->range_max = U32_MAX;
108 rtc->base = ioremap(dev->res.start, resource_size(&dev->res));
109 if (!rtc->base) {
114 __raw_writel(0, rtc->base + RTC_CR);
115 __raw_writel(0, rtc->base + RTC_EOI);
117 amba_set_drvdata(dev, rtc);
120 "rtc-pl030", rtc);
124 ret = devm_rtc_register_device(rtc->rtc);
131 free_irq(dev->irq[0], rtc);
133 iounmap(rtc->base);
142 struct pl030_rtc *rtc = amba_get_drvdata(dev);
144 writel(0, rtc->base + RTC_CR);
146 free_irq(dev->irq[0], rtc);
147 iounmap(rtc->base);
163 .name = "rtc-pl030",