Lines Matching refs:xrtcdev

54 	struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
68 xrtcdev->calibval &= RTC_CALIB_MASK;
69 writel(xrtcdev->calibval, (xrtcdev->reg_base + RTC_CALIB_WR));
71 writel(new_time, xrtcdev->reg_base + RTC_SET_TM_WR);
81 writel(RTC_INT_SEC, xrtcdev->reg_base + RTC_INT_STS);
90 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
92 status = readl(xrtcdev->reg_base + RTC_INT_STS);
99 read_time = readl(xrtcdev->reg_base + RTC_CUR_TM);
108 read_time = readl(xrtcdev->reg_base + RTC_SET_TM_RD) - 1;
117 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
119 rtc_time64_to_tm(readl(xrtcdev->reg_base + RTC_ALRM), &alrm->time);
120 alrm->enabled = readl(xrtcdev->reg_base + RTC_INT_MASK) & RTC_INT_ALRM;
127 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
135 status = readl(xrtcdev->reg_base + RTC_INT_STS);
143 writel(RTC_INT_ALRM, xrtcdev->reg_base + RTC_INT_STS);
146 writel(RTC_INT_ALRM, xrtcdev->reg_base + RTC_INT_EN);
148 writel(RTC_INT_ALRM, xrtcdev->reg_base + RTC_INT_DIS);
156 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
161 writel((u32)alarm_time, (xrtcdev->reg_base + RTC_ALRM));
168 static void xlnx_init_rtc(struct xlnx_rtc_dev *xrtcdev)
173 rtc_ctrl = readl(xrtcdev->reg_base + RTC_CTRL);
175 writel(rtc_ctrl, xrtcdev->reg_base + RTC_CTRL);
183 xrtcdev->calibval &= RTC_CALIB_MASK;
184 writel(xrtcdev->calibval, (xrtcdev->reg_base + RTC_CALIB_WR));
197 struct xlnx_rtc_dev *xrtcdev = (struct xlnx_rtc_dev *)id;
200 status = readl(xrtcdev->reg_base + RTC_INT_STS);
206 writel(RTC_INT_ALRM, xrtcdev->reg_base + RTC_INT_DIS);
209 rtc_update_irq(xrtcdev->rtc, 1, RTC_IRQF | RTC_AF);
216 struct xlnx_rtc_dev *xrtcdev;
219 xrtcdev = devm_kzalloc(&pdev->dev, sizeof(*xrtcdev), GFP_KERNEL);
220 if (!xrtcdev)
223 platform_set_drvdata(pdev, xrtcdev);
225 xrtcdev->rtc = devm_rtc_allocate_device(&pdev->dev);
226 if (IS_ERR(xrtcdev->rtc))
227 return PTR_ERR(xrtcdev->rtc);
229 xrtcdev->rtc->ops = &xlnx_rtc_ops;
230 xrtcdev->rtc->range_max = U32_MAX;
232 xrtcdev->reg_base = devm_platform_ioremap_resource(pdev, 0);
233 if (IS_ERR(xrtcdev->reg_base))
234 return PTR_ERR(xrtcdev->reg_base);
236 xrtcdev->alarm_irq = platform_get_irq_byname(pdev, "alarm");
237 if (xrtcdev->alarm_irq < 0)
238 return xrtcdev->alarm_irq;
239 ret = devm_request_irq(&pdev->dev, xrtcdev->alarm_irq,
241 dev_name(&pdev->dev), xrtcdev);
247 xrtcdev->sec_irq = platform_get_irq_byname(pdev, "sec");
248 if (xrtcdev->sec_irq < 0)
249 return xrtcdev->sec_irq;
250 ret = devm_request_irq(&pdev->dev, xrtcdev->sec_irq,
252 dev_name(&pdev->dev), xrtcdev);
259 &xrtcdev->calibval);
261 xrtcdev->calibval = RTC_CALIB_DEF;
263 xlnx_init_rtc(xrtcdev);
267 return rtc_register_device(xrtcdev->rtc);
280 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
283 enable_irq_wake(xrtcdev->alarm_irq);
292 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
295 disable_irq_wake(xrtcdev->alarm_irq);