Lines Matching defs:rtc
15 #include <linux/rtc.h>
160 { .compatible = "dlg,da9063-rtc", .data = &da9063_bb_regs },
161 { .compatible = "dlg,da9062-rtc", .data = &da9062_aa_regs },
167 struct da9063_compatible_rtc *rtc)
169 const struct da9063_compatible_rtc_regmap *config = rtc->config;
182 struct da9063_compatible_rtc *rtc)
184 const struct da9063_compatible_rtc_regmap *config = rtc->config;
198 struct da9063_compatible_rtc *rtc = dev_get_drvdata(dev);
199 const struct da9063_compatible_rtc_regmap *config = rtc->config;
201 return regmap_update_bits(rtc->regmap,
209 struct da9063_compatible_rtc *rtc = dev_get_drvdata(dev);
210 const struct da9063_compatible_rtc_regmap *config = rtc->config;
212 return regmap_update_bits(rtc->regmap,
220 struct da9063_compatible_rtc *rtc = dev_get_drvdata(dev);
221 const struct da9063_compatible_rtc_regmap *config = rtc->config;
227 ret = regmap_bulk_read(rtc->regmap,
240 da9063_data_to_tm(data, tm, rtc);
243 al_secs = rtc_tm_to_time64(&rtc->alarm_time);
245 /* handle the rtc synchronisation delay */
246 if (rtc->rtc_sync == true && al_secs - tm_secs == 1)
247 memcpy(tm, &rtc->alarm_time, sizeof(struct rtc_time));
249 rtc->rtc_sync = false;
256 struct da9063_compatible_rtc *rtc = dev_get_drvdata(dev);
257 const struct da9063_compatible_rtc_regmap *config = rtc->config;
261 da9063_tm_to_data(tm, data, rtc);
262 ret = regmap_bulk_write(rtc->regmap,
273 struct da9063_compatible_rtc *rtc = dev_get_drvdata(dev);
274 const struct da9063_compatible_rtc_regmap *config = rtc->config;
280 ret = regmap_bulk_read(rtc->regmap,
287 da9063_data_to_tm(data, &alrm->time, rtc);
291 ret = regmap_read(rtc->regmap,
307 struct da9063_compatible_rtc *rtc = dev_get_drvdata(dev);
308 const struct da9063_compatible_rtc_regmap *config = rtc->config;
312 da9063_tm_to_data(&alrm->time, data, rtc);
320 ret = regmap_bulk_write(rtc->regmap,
329 da9063_data_to_tm(data, &rtc->alarm_time, rtc);
353 struct da9063_compatible_rtc *rtc = data;
354 const struct da9063_compatible_rtc_regmap *config = rtc->config;
356 regmap_update_bits(rtc->regmap,
361 rtc->rtc_sync = true;
362 rtc_update_irq(rtc->rtc_dev, 1, RTC_IRQF | RTC_AF);
377 struct da9063_compatible_rtc *rtc;
390 rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL);
391 if (!rtc)
394 rtc->config = match->data;
395 if (of_device_is_compatible(pdev->dev.of_node, "dlg,da9063-rtc")) {
399 rtc->config = &da9063_ad_regs;
402 rtc->regmap = dev_get_regmap(pdev->dev.parent, NULL);
403 if (!rtc->regmap) {
408 config = rtc->config;
409 ret = regmap_update_bits(rtc->regmap,
418 ret = regmap_update_bits(rtc->regmap,
427 ret = regmap_update_bits(rtc->regmap,
436 ret = regmap_update_bits(rtc->regmap,
445 ret = regmap_update_bits(rtc->regmap,
455 ret = regmap_bulk_read(rtc->regmap,
465 platform_set_drvdata(pdev, rtc);
467 rtc->rtc_dev = devm_rtc_allocate_device(&pdev->dev);
468 if (IS_ERR(rtc->rtc_dev))
469 return PTR_ERR(rtc->rtc_dev);
471 rtc->rtc_dev->ops = &da9063_rtc_ops;
472 rtc->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000;
473 rtc->rtc_dev->range_max = RTC_TIMESTAMP_END_2063;
475 da9063_data_to_tm(data, &rtc->alarm_time, rtc);
476 rtc->rtc_sync = false;
483 rtc->rtc_dev->uie_unsupported = 1;
492 "ALARM", rtc);
497 return rtc_register_device(rtc->rtc_dev);