Lines Matching refs:vt8500_rtc
72 struct vt8500_rtc { struct
81 struct vt8500_rtc *vt8500_rtc = dev_id; in vt8500_rtc_irq() local
85 spin_lock(&vt8500_rtc->lock); in vt8500_rtc_irq()
88 isr = readl(vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_irq()
89 writel(isr, vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_irq()
91 spin_unlock(&vt8500_rtc->lock); in vt8500_rtc_irq()
96 rtc_update_irq(vt8500_rtc->rtc, 1, events); in vt8500_rtc_irq()
103 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_read_time() local
106 date = readl(vt8500_rtc->regbase + VT8500_RTC_DR); in vt8500_rtc_read_time()
107 time = readl(vt8500_rtc->regbase + VT8500_RTC_TR); in vt8500_rtc_read_time()
123 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_set_time() local
135 vt8500_rtc->regbase + VT8500_RTC_DS); in vt8500_rtc_set_time()
140 vt8500_rtc->regbase + VT8500_RTC_TS); in vt8500_rtc_set_time()
147 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_read_alarm() local
150 alarm = readl(vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_rtc_read_alarm()
151 isr = readl(vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_read_alarm()
166 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_rtc_set_alarm() local
173 vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_rtc_set_alarm()
180 struct vt8500_rtc *vt8500_rtc = dev_get_drvdata(dev); in vt8500_alarm_irq_enable() local
181 unsigned long tmp = readl(vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_alarm_irq_enable()
188 writel(tmp, vt8500_rtc->regbase + VT8500_RTC_AS); in vt8500_alarm_irq_enable()
202 struct vt8500_rtc *vt8500_rtc; in vt8500_rtc_probe() local
206 vt8500_rtc = devm_kzalloc(&pdev->dev, in vt8500_rtc_probe()
207 sizeof(struct vt8500_rtc), GFP_KERNEL); in vt8500_rtc_probe()
208 if (!vt8500_rtc) in vt8500_rtc_probe()
211 spin_lock_init(&vt8500_rtc->lock); in vt8500_rtc_probe()
212 platform_set_drvdata(pdev, vt8500_rtc); in vt8500_rtc_probe()
214 vt8500_rtc->irq_alarm = platform_get_irq(pdev, 0); in vt8500_rtc_probe()
215 if (vt8500_rtc->irq_alarm < 0) in vt8500_rtc_probe()
216 return vt8500_rtc->irq_alarm; in vt8500_rtc_probe()
219 vt8500_rtc->regbase = devm_ioremap_resource(&pdev->dev, res); in vt8500_rtc_probe()
220 if (IS_ERR(vt8500_rtc->regbase)) in vt8500_rtc_probe()
221 return PTR_ERR(vt8500_rtc->regbase); in vt8500_rtc_probe()
225 vt8500_rtc->regbase + VT8500_RTC_CR); in vt8500_rtc_probe()
227 vt8500_rtc->rtc = devm_rtc_device_register(&pdev->dev, "vt8500-rtc", in vt8500_rtc_probe()
229 if (IS_ERR(vt8500_rtc->rtc)) { in vt8500_rtc_probe()
230 ret = PTR_ERR(vt8500_rtc->rtc); in vt8500_rtc_probe()
236 ret = devm_request_irq(&pdev->dev, vt8500_rtc->irq_alarm, in vt8500_rtc_probe()
237 vt8500_rtc_irq, 0, "rtc alarm", vt8500_rtc); in vt8500_rtc_probe()
240 vt8500_rtc->irq_alarm, ret); in vt8500_rtc_probe()
252 struct vt8500_rtc *vt8500_rtc = platform_get_drvdata(pdev); in vt8500_rtc_remove() local
255 writel(0, vt8500_rtc->regbase + VT8500_RTC_IS); in vt8500_rtc_remove()