Lines Matching refs:vt8500_rtc
80 struct vt8500_rtc { struct
89 struct vt8500_rtc *vt8500_rtc = dev_id; in vt8500_rtc_irq() local
93 spin_lock(&vt8500_rtc->lock); in vt8500_rtc_irq()
96 isr = readl(vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_irq()
97 writel(isr, vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_irq()
99 spin_unlock(&vt8500_rtc->lock); in vt8500_rtc_irq()
104 rtc_update_irq(vt8500_rtc->rtc, 1, events); in vt8500_rtc_irq()
111 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_read_time() local
114 date = readl(vt8500_rtc->regbase + VT8500_RTC_DR); in vt8500_rtc_read_time()
115 time = readl(vt8500_rtc->regbase + VT8500_RTC_TR); in vt8500_rtc_read_time()
131 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_set_time() local
143 vt8500_rtc->regbase + VT8500_RTC_DS); in vt8500_rtc_set_time()
148 vt8500_rtc->regbase + VT8500_RTC_TS); in vt8500_rtc_set_time()
155 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_read_alarm() local
158 alarm = readl(vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_rtc_read_alarm()
159 isr = readl(vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_read_alarm()
174 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_set_alarm() local
181 vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_rtc_set_alarm()
188 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_alarm_irq_enable() local
189 unsigned long tmp = readl(vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_alarm_irq_enable()
196 writel(tmp, vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_alarm_irq_enable()
210 struct vt8500_rtc *vt8500_rtc; in vt8500_rtc_probe() local
214 vt8500_rtc = devm_kzalloc(&pdev->dev, in vt8500_rtc_probe()
215 sizeof(struct vt8500_rtc), GFP_KERNEL); in vt8500_rtc_probe()
216 if (!vt8500_rtc) in vt8500_rtc_probe()
219 spin_lock_init(&vt8500_rtc->lock); in vt8500_rtc_probe()
220 platform_set_drvdata(pdev, vt8500_rtc); in vt8500_rtc_probe()
222 vt8500_rtc->irq_alarm = platform_get_irq(pdev, 0); in vt8500_rtc_probe()
223 if (vt8500_rtc->irq_alarm < 0) { in vt8500_rtc_probe()
225 return vt8500_rtc->irq_alarm; in vt8500_rtc_probe()
229 vt8500_rtc->regbase = devm_ioremap_resource(&pdev->dev, res); in vt8500_rtc_probe()
230 if (IS_ERR(vt8500_rtc->regbase)) in vt8500_rtc_probe()
231 return PTR_ERR(vt8500_rtc->regbase); in vt8500_rtc_probe()
235 vt8500_rtc->regbase + VT8500_RTC_CR); in vt8500_rtc_probe()
237 vt8500_rtc->rtc = devm_rtc_device_register(&pdev->dev, "vt8500-rtc", in vt8500_rtc_probe()
239 if (IS_ERR(vt8500_rtc->rtc)) { in vt8500_rtc_probe()
240 ret = PTR_ERR(vt8500_rtc->rtc); in vt8500_rtc_probe()
246 ret = devm_request_irq(&pdev->dev, vt8500_rtc->irq_alarm, in vt8500_rtc_probe()
247 vt8500_rtc_irq, 0, "rtc alarm", vt8500_rtc); in vt8500_rtc_probe()
250 vt8500_rtc->irq_alarm, ret); in vt8500_rtc_probe()
262 struct vt8500_rtc *vt8500_rtc = platform_get_drvdata(pdev); in vt8500_rtc_remove() local
265 writel(0, vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_remove()