Lines Matching refs:xrtcdev

62 	struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);  in xlnx_rtc_set_time()  local
70 writel(new_time, xrtcdev->reg_base + RTC_SET_TM_WR); in xlnx_rtc_set_time()
77 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev); in xlnx_rtc_read_time() local
79 rtc_time64_to_tm(readl(xrtcdev->reg_base + RTC_CUR_TM), tm); in xlnx_rtc_read_time()
86 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev); in xlnx_rtc_read_alarm() local
88 rtc_time64_to_tm(readl(xrtcdev->reg_base + RTC_ALRM), &alrm->time); in xlnx_rtc_read_alarm()
89 alrm->enabled = readl(xrtcdev->reg_base + RTC_INT_MASK) & RTC_INT_ALRM; in xlnx_rtc_read_alarm()
96 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev); in xlnx_rtc_alarm_irq_enable() local
99 writel(RTC_INT_ALRM, xrtcdev->reg_base + RTC_INT_EN); in xlnx_rtc_alarm_irq_enable()
101 writel(RTC_INT_ALRM, xrtcdev->reg_base + RTC_INT_DIS); in xlnx_rtc_alarm_irq_enable()
108 struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev); in xlnx_rtc_set_alarm() local
116 writel((u32)alarm_time, (xrtcdev->reg_base + RTC_ALRM)); in xlnx_rtc_set_alarm()
123 static void xlnx_init_rtc(struct xlnx_rtc_dev *xrtcdev, u32 calibval) in xlnx_init_rtc() argument
132 writel(calibval, (xrtcdev->reg_base + RTC_CALIB_WR)); in xlnx_init_rtc()
145 struct xlnx_rtc_dev *xrtcdev = (struct xlnx_rtc_dev *)id; in xlnx_rtc_interrupt() local
148 status = readl(xrtcdev->reg_base + RTC_INT_STS); in xlnx_rtc_interrupt()
154 writel(status, xrtcdev->reg_base + RTC_INT_STS); in xlnx_rtc_interrupt()
157 rtc_update_irq(xrtcdev->rtc, 1, RTC_IRQF | RTC_UF); in xlnx_rtc_interrupt()
159 rtc_update_irq(xrtcdev->rtc, 1, RTC_IRQF | RTC_AF); in xlnx_rtc_interrupt()
166 struct xlnx_rtc_dev *xrtcdev; in xlnx_rtc_probe() local
171 xrtcdev = devm_kzalloc(&pdev->dev, sizeof(*xrtcdev), GFP_KERNEL); in xlnx_rtc_probe()
172 if (!xrtcdev) in xlnx_rtc_probe()
175 platform_set_drvdata(pdev, xrtcdev); in xlnx_rtc_probe()
179 xrtcdev->reg_base = devm_ioremap_resource(&pdev->dev, res); in xlnx_rtc_probe()
180 if (IS_ERR(xrtcdev->reg_base)) in xlnx_rtc_probe()
181 return PTR_ERR(xrtcdev->reg_base); in xlnx_rtc_probe()
183 xrtcdev->alarm_irq = platform_get_irq_byname(pdev, "alarm"); in xlnx_rtc_probe()
184 if (xrtcdev->alarm_irq < 0) { in xlnx_rtc_probe()
186 return xrtcdev->alarm_irq; in xlnx_rtc_probe()
188 ret = devm_request_irq(&pdev->dev, xrtcdev->alarm_irq, in xlnx_rtc_probe()
190 dev_name(&pdev->dev), xrtcdev); in xlnx_rtc_probe()
196 xrtcdev->sec_irq = platform_get_irq_byname(pdev, "sec"); in xlnx_rtc_probe()
197 if (xrtcdev->sec_irq < 0) { in xlnx_rtc_probe()
199 return xrtcdev->sec_irq; in xlnx_rtc_probe()
201 ret = devm_request_irq(&pdev->dev, xrtcdev->sec_irq, in xlnx_rtc_probe()
203 dev_name(&pdev->dev), xrtcdev); in xlnx_rtc_probe()
214 xlnx_init_rtc(xrtcdev, calibvalue); in xlnx_rtc_probe()
218 xrtcdev->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, in xlnx_rtc_probe()
220 return PTR_ERR_OR_ZERO(xrtcdev->rtc); in xlnx_rtc_probe()
234 struct xlnx_rtc_dev *xrtcdev = platform_get_drvdata(pdev); in xlnx_rtc_suspend() local
237 enable_irq_wake(xrtcdev->alarm_irq); in xlnx_rtc_suspend()
247 struct xlnx_rtc_dev *xrtcdev = platform_get_drvdata(pdev); in xlnx_rtc_resume() local
250 disable_irq_wake(xrtcdev->alarm_irq); in xlnx_rtc_resume()