Lines Matching refs:rtc_data

80 	struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev);  in stmp3xxx_wdt_set_timeout()  local
83 writel(timeout, rtc_data->io + STMP3XXX_RTC_WATCHDOG); in stmp3xxx_wdt_set_timeout()
85 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_SET); in stmp3xxx_wdt_set_timeout()
87 rtc_data->io + STMP3XXX_RTC_PERSISTENT1 + STMP_OFFSET_REG_SET); in stmp3xxx_wdt_set_timeout()
90 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); in stmp3xxx_wdt_set_timeout()
92 rtc_data->io + STMP3XXX_RTC_PERSISTENT1 + STMP_OFFSET_REG_CLR); in stmp3xxx_wdt_set_timeout()
122 static int stmp3xxx_wait_time(struct stmp3xxx_rtc_data *rtc_data) in stmp3xxx_wait_time() argument
136 if (!(readl(rtc_data->io + STMP3XXX_RTC_STAT) & in stmp3xxx_wait_time()
141 return (readl(rtc_data->io + STMP3XXX_RTC_STAT) & in stmp3xxx_wait_time()
149 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_gettime() local
151 ret = stmp3xxx_wait_time(rtc_data); in stmp3xxx_rtc_gettime()
155 rtc_time64_to_tm(readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm); in stmp3xxx_rtc_gettime()
161 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_settime() local
163 writel(rtc_tm_to_time64(rtc_tm), rtc_data->io + STMP3XXX_RTC_SECONDS); in stmp3xxx_rtc_settime()
164 return stmp3xxx_wait_time(rtc_data); in stmp3xxx_rtc_settime()
170 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev_id); in stmp3xxx_rtc_interrupt() local
171 u32 status = readl(rtc_data->io + STMP3XXX_RTC_CTRL); in stmp3xxx_rtc_interrupt()
175 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); in stmp3xxx_rtc_interrupt()
176 rtc_update_irq(rtc_data->rtc, 1, RTC_AF | RTC_IRQF); in stmp3xxx_rtc_interrupt()
185 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_alarm_irq_enable() local
190 rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + in stmp3xxx_alarm_irq_enable()
193 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_SET); in stmp3xxx_alarm_irq_enable()
197 rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + in stmp3xxx_alarm_irq_enable()
200 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); in stmp3xxx_alarm_irq_enable()
207 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_read_alarm() local
209 rtc_time64_to_tm(readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time); in stmp3xxx_rtc_read_alarm()
215 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_set_alarm() local
217 writel(rtc_tm_to_time64(&alm->time), rtc_data->io + STMP3XXX_RTC_ALARM); in stmp3xxx_rtc_set_alarm()
235 struct stmp3xxx_rtc_data *rtc_data = platform_get_drvdata(pdev); in stmp3xxx_rtc_remove() local
237 if (!rtc_data) in stmp3xxx_rtc_remove()
241 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); in stmp3xxx_rtc_remove()
248 struct stmp3xxx_rtc_data *rtc_data; in stmp3xxx_rtc_probe() local
255 rtc_data = devm_kzalloc(&pdev->dev, sizeof(*rtc_data), GFP_KERNEL); in stmp3xxx_rtc_probe()
256 if (!rtc_data) in stmp3xxx_rtc_probe()
265 rtc_data->io = devm_ioremap(&pdev->dev, r->start, resource_size(r)); in stmp3xxx_rtc_probe()
266 if (!rtc_data->io) { in stmp3xxx_rtc_probe()
271 rtc_data->irq_alarm = platform_get_irq(pdev, 0); in stmp3xxx_rtc_probe()
273 rtc_stat = readl(rtc_data->io + STMP3XXX_RTC_STAT); in stmp3xxx_rtc_probe()
279 platform_set_drvdata(pdev, rtc_data); in stmp3xxx_rtc_probe()
286 if (readl(rtc_data->io + STMP3XXX_RTC_CTRL) & in stmp3xxx_rtc_probe()
291 err = stmp_reset_block(rtc_data->io); in stmp3xxx_rtc_probe()
342 writel(pers0_set, rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + in stmp3xxx_rtc_probe()
348 rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + STMP_OFFSET_REG_CLR); in stmp3xxx_rtc_probe()
352 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); in stmp3xxx_rtc_probe()
354 rtc_data->rtc = devm_rtc_allocate_device(&pdev->dev); in stmp3xxx_rtc_probe()
355 if (IS_ERR(rtc_data->rtc)) in stmp3xxx_rtc_probe()
356 return PTR_ERR(rtc_data->rtc); in stmp3xxx_rtc_probe()
358 err = devm_request_irq(&pdev->dev, rtc_data->irq_alarm, in stmp3xxx_rtc_probe()
362 rtc_data->irq_alarm); in stmp3xxx_rtc_probe()
366 rtc_data->rtc->ops = &stmp3xxx_rtc_ops; in stmp3xxx_rtc_probe()
367 rtc_data->rtc->range_max = U32_MAX; in stmp3xxx_rtc_probe()
369 err = rtc_register_device(rtc_data->rtc); in stmp3xxx_rtc_probe()
385 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_resume() local
387 stmp_reset_block(rtc_data->io); in stmp3xxx_rtc_resume()
391 rtc_data->io + STMP3XXX_RTC_PERSISTENT0 + STMP_OFFSET_REG_CLR); in stmp3xxx_rtc_resume()