• Home
  • Raw
  • Download

Lines Matching refs:rtc

65 #define rtt_readl(rtc, field) \  argument
66 __raw_readl((rtc)->rtt + AT91_RTT_ ## field)
67 #define rtt_writel(rtc, field, val) \ argument
68 __raw_writel((val), (rtc)->rtt + AT91_RTT_ ## field)
70 #define gpbr_readl(rtc) \ argument
71 __raw_readl((rtc)->gpbr)
72 #define gpbr_writel(rtc, val) \ argument
73 __raw_writel((val), (rtc)->gpbr)
80 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_readtime() local
85 offset = gpbr_readl(rtc); in at91_rtc_readtime()
90 secs = rtt_readl(rtc, VR); in at91_rtc_readtime()
91 secs2 = rtt_readl(rtc, VR); in at91_rtc_readtime()
93 secs = rtt_readl(rtc, VR); in at91_rtc_readtime()
109 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_settime() local
122 mr = rtt_readl(rtc, MR); in at91_rtc_settime()
125 rtt_writel(rtc, MR, mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN)); in at91_rtc_settime()
128 offset = gpbr_readl(rtc); in at91_rtc_settime()
132 gpbr_writel(rtc, secs); in at91_rtc_settime()
135 alarm = rtt_readl(rtc, AR); in at91_rtc_settime()
148 rtt_writel(rtc, AR, alarm); in at91_rtc_settime()
152 rtt_writel(rtc, MR, mr | AT91_RTT_RTTRST); in at91_rtc_settime()
159 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_readalarm() local
161 u32 alarm = rtt_readl(rtc, AR); in at91_rtc_readalarm()
164 offset = gpbr_readl(rtc); in at91_rtc_readalarm()
176 if (rtt_readl(rtc, MR) & AT91_RTT_ALMIEN) in at91_rtc_readalarm()
185 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_setalarm() local
196 offset = gpbr_readl(rtc); in at91_rtc_setalarm()
201 mr = rtt_readl(rtc, MR); in at91_rtc_setalarm()
202 rtt_writel(rtc, MR, mr & ~AT91_RTT_ALMIEN); in at91_rtc_setalarm()
206 rtt_writel(rtc, AR, ALARM_DISABLED); in at91_rtc_setalarm()
211 rtt_writel(rtc, AR, secs - offset); in at91_rtc_setalarm()
213 rtt_writel(rtc, MR, mr | AT91_RTT_ALMIEN); in at91_rtc_setalarm()
224 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_alarm_irq_enable() local
225 u32 mr = rtt_readl(rtc, MR); in at91_rtc_alarm_irq_enable()
229 rtt_writel(rtc, MR, mr | AT91_RTT_ALMIEN); in at91_rtc_alarm_irq_enable()
231 rtt_writel(rtc, MR, mr & ~AT91_RTT_ALMIEN); in at91_rtc_alarm_irq_enable()
240 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_proc() local
241 u32 mr = mr = rtt_readl(rtc, MR); in at91_rtc_proc()
253 struct sam9_rtc *rtc = _rtc; in at91_rtc_interrupt() local
260 mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); in at91_rtc_interrupt()
261 sr = rtt_readl(rtc, SR) & (mr >> 16); in at91_rtc_interrupt()
273 rtc_update_irq(rtc->rtcdev, 1, events); in at91_rtc_interrupt()
296 struct sam9_rtc *rtc; in at91_rtc_probe() local
313 rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); in at91_rtc_probe()
314 if (!rtc) in at91_rtc_probe()
317 rtc->irq = irq; in at91_rtc_probe()
323 platform_set_drvdata(pdev, rtc); in at91_rtc_probe()
324 rtc->rtt = devm_ioremap(&pdev->dev, r->start, resource_size(r)); in at91_rtc_probe()
325 if (!rtc->rtt) { in at91_rtc_probe()
331 rtc->gpbr = devm_ioremap(&pdev->dev, r_gpbr->start, in at91_rtc_probe()
333 if (!rtc->gpbr) { in at91_rtc_probe()
339 mr = rtt_readl(rtc, MR); in at91_rtc_probe()
344 gpbr_writel(rtc, 0); in at91_rtc_probe()
349 rtt_writel(rtc, MR, mr); in at91_rtc_probe()
351 rtc->rtcdev = devm_rtc_device_register(&pdev->dev, pdev->name, in at91_rtc_probe()
353 if (IS_ERR(rtc->rtcdev)) { in at91_rtc_probe()
354 ret = PTR_ERR(rtc->rtcdev); in at91_rtc_probe()
359 ret = devm_request_irq(&pdev->dev, rtc->irq, at91_rtc_interrupt, in at91_rtc_probe()
360 IRQF_SHARED, dev_name(&rtc->rtcdev->dev), rtc); in at91_rtc_probe()
362 dev_dbg(&pdev->dev, "can't share IRQ %d?\n", rtc->irq); in at91_rtc_probe()
372 if (gpbr_readl(rtc) == 0) in at91_rtc_probe()
374 dev_name(&rtc->rtcdev->dev)); in at91_rtc_probe()
388 struct sam9_rtc *rtc = platform_get_drvdata(pdev); in at91_rtc_remove() local
389 u32 mr = rtt_readl(rtc, MR); in at91_rtc_remove()
392 rtt_writel(rtc, MR, mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN)); in at91_rtc_remove()
400 struct sam9_rtc *rtc = platform_get_drvdata(pdev); in at91_rtc_shutdown() local
401 u32 mr = rtt_readl(rtc, MR); in at91_rtc_shutdown()
403 rtc->imr = mr & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); in at91_rtc_shutdown()
404 rtt_writel(rtc, MR, mr & ~rtc->imr); in at91_rtc_shutdown()
413 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_suspend() local
414 u32 mr = rtt_readl(rtc, MR); in at91_rtc_suspend()
420 rtc->imr = mr & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); in at91_rtc_suspend()
421 if (rtc->imr) { in at91_rtc_suspend()
423 enable_irq_wake(rtc->irq); in at91_rtc_suspend()
426 rtt_writel(rtc, MR, mr & ~AT91_RTT_RTTINCIEN); in at91_rtc_suspend()
428 rtt_writel(rtc, MR, mr & ~rtc->imr); in at91_rtc_suspend()
436 struct sam9_rtc *rtc = dev_get_drvdata(dev); in at91_rtc_resume() local
439 if (rtc->imr) { in at91_rtc_resume()
441 disable_irq_wake(rtc->irq); in at91_rtc_resume()
442 mr = rtt_readl(rtc, MR); in at91_rtc_resume()
443 rtt_writel(rtc, MR, mr | rtc->imr); in at91_rtc_resume()