Lines Matching refs:rtc_data
92 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_wdt_set_timeout() local
95 writel(timeout, rtc_data->io + STMP3XXX_RTC_WATCHDOG); in stmp3xxx_wdt_set_timeout()
97 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_SET); in stmp3xxx_wdt_set_timeout()
99 rtc_data->io + STMP3XXX_RTC_PERSISTENT1 + STMP_OFFSET_REG_SET); in stmp3xxx_wdt_set_timeout()
102 rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); in stmp3xxx_wdt_set_timeout()
104 rtc_data->io + STMP3XXX_RTC_PERSISTENT1 + STMP_OFFSET_REG_CLR); in stmp3xxx_wdt_set_timeout()
129 static int stmp3xxx_wait_time(struct stmp3xxx_rtc_data *rtc_data) in stmp3xxx_wait_time() argument
143 if (!(readl(rtc_data->io + STMP3XXX_RTC_STAT) & in stmp3xxx_wait_time()
148 return (readl(rtc_data->io + STMP3XXX_RTC_STAT) & in stmp3xxx_wait_time()
156 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_gettime() local
158 ret = stmp3xxx_wait_time(rtc_data); in stmp3xxx_rtc_gettime()
162 rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm); in stmp3xxx_rtc_gettime()
168 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_set_mmss() local
170 writel(t, rtc_data->io + STMP3XXX_RTC_SECONDS); in stmp3xxx_rtc_set_mmss()
171 return stmp3xxx_wait_time(rtc_data); in stmp3xxx_rtc_set_mmss()
177 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev_id); in stmp3xxx_rtc_interrupt() local
178 u32 status = readl(rtc_data->io + STMP3XXX_RTC_CTRL); in stmp3xxx_rtc_interrupt()
182 rtc_data->io + STMP3XXX_RTC_CTRL_CLR); in stmp3xxx_rtc_interrupt()
183 rtc_update_irq(rtc_data->rtc, 1, RTC_AF | RTC_IRQF); in stmp3xxx_rtc_interrupt()
192 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_alarm_irq_enable() local
197 rtc_data->io + STMP3XXX_RTC_PERSISTENT0_SET); in stmp3xxx_alarm_irq_enable()
199 rtc_data->io + STMP3XXX_RTC_CTRL_SET); in stmp3xxx_alarm_irq_enable()
203 rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); in stmp3xxx_alarm_irq_enable()
205 rtc_data->io + STMP3XXX_RTC_CTRL_CLR); in stmp3xxx_alarm_irq_enable()
212 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_read_alarm() local
214 rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time); in stmp3xxx_rtc_read_alarm()
221 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_set_alarm() local
224 writel(t, rtc_data->io + STMP3XXX_RTC_ALARM); in stmp3xxx_rtc_set_alarm()
242 struct stmp3xxx_rtc_data *rtc_data = platform_get_drvdata(pdev); in stmp3xxx_rtc_remove() local
244 if (!rtc_data) in stmp3xxx_rtc_remove()
248 rtc_data->io + STMP3XXX_RTC_CTRL_CLR); in stmp3xxx_rtc_remove()
255 struct stmp3xxx_rtc_data *rtc_data; in stmp3xxx_rtc_probe() local
262 rtc_data = devm_kzalloc(&pdev->dev, sizeof(*rtc_data), GFP_KERNEL); in stmp3xxx_rtc_probe()
263 if (!rtc_data) in stmp3xxx_rtc_probe()
272 rtc_data->io = devm_ioremap(&pdev->dev, r->start, resource_size(r)); in stmp3xxx_rtc_probe()
273 if (!rtc_data->io) { in stmp3xxx_rtc_probe()
278 rtc_data->irq_alarm = platform_get_irq(pdev, 0); in stmp3xxx_rtc_probe()
280 rtc_stat = readl(rtc_data->io + STMP3XXX_RTC_STAT); in stmp3xxx_rtc_probe()
286 platform_set_drvdata(pdev, rtc_data); in stmp3xxx_rtc_probe()
288 err = stmp_reset_block(rtc_data->io); in stmp3xxx_rtc_probe()
337 writel(pers0_set, rtc_data->io + STMP3XXX_RTC_PERSISTENT0_SET); in stmp3xxx_rtc_probe()
342 rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); in stmp3xxx_rtc_probe()
346 rtc_data->io + STMP3XXX_RTC_CTRL_CLR); in stmp3xxx_rtc_probe()
348 rtc_data->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, in stmp3xxx_rtc_probe()
350 if (IS_ERR(rtc_data->rtc)) in stmp3xxx_rtc_probe()
351 return PTR_ERR(rtc_data->rtc); in stmp3xxx_rtc_probe()
353 err = devm_request_irq(&pdev->dev, rtc_data->irq_alarm, in stmp3xxx_rtc_probe()
357 rtc_data->irq_alarm); in stmp3xxx_rtc_probe()
373 struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); in stmp3xxx_rtc_resume() local
375 stmp_reset_block(rtc_data->io); in stmp3xxx_rtc_resume()
379 rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); in stmp3xxx_rtc_resume()