Lines Matching refs:pcf2127
93 struct pcf2127 { struct
105 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_read_time() local
113 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_CTRL3, in pcf2127_rtc_read_time()
164 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_set_time() local
188 err = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_SC, buf, i); in pcf2127_rtc_set_time()
201 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_ioctl() local
207 ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL3, &val); in pcf2127_rtc_ioctl()
220 return regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL3, in pcf2127_rtc_ioctl()
237 struct pcf2127 *pcf2127 = priv; in pcf2127_nvmem_read() local
241 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_ADDR_MSB, in pcf2127_nvmem_read()
246 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_RAM_RD_CMD, in pcf2127_nvmem_read()
255 struct pcf2127 *pcf2127 = priv; in pcf2127_nvmem_write() local
259 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_ADDR_MSB, in pcf2127_nvmem_write()
264 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_WRT_CMD, in pcf2127_nvmem_write()
274 struct pcf2127 *pcf2127 = watchdog_get_drvdata(wdd); in pcf2127_wdt_ping() local
276 return regmap_write(pcf2127->regmap, PCF2127_REG_WD_VAL, wdd->timeout); in pcf2127_wdt_ping()
308 struct pcf2127 *pcf2127 = watchdog_get_drvdata(wdd); in pcf2127_wdt_stop() local
310 return regmap_write(pcf2127->regmap, PCF2127_REG_WD_VAL, in pcf2127_wdt_stop()
341 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_read_alarm() local
345 ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL2, &ctrl2); in pcf2127_rtc_read_alarm()
349 ret = pcf2127_wdt_active_ping(&pcf2127->wdd); in pcf2127_rtc_read_alarm()
353 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_ALARM_SC, buf, in pcf2127_rtc_read_alarm()
371 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_alarm_irq_enable() local
374 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2, in pcf2127_rtc_alarm_irq_enable()
380 return pcf2127_wdt_active_ping(&pcf2127->wdd); in pcf2127_rtc_alarm_irq_enable()
385 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_set_alarm() local
389 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2, in pcf2127_rtc_set_alarm()
394 ret = pcf2127_wdt_active_ping(&pcf2127->wdd); in pcf2127_rtc_set_alarm()
404 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_ALARM_SC, buf, in pcf2127_rtc_set_alarm()
414 struct pcf2127 *pcf2127 = dev_get_drvdata(dev); in pcf2127_rtc_irq() local
418 ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL2, &ctrl2); in pcf2127_rtc_irq()
425 regmap_write(pcf2127->regmap, PCF2127_REG_CTRL2, in pcf2127_rtc_irq()
428 rtc_update_irq(pcf2127->rtc, 1, RTC_IRQF | RTC_AF); in pcf2127_rtc_irq()
430 pcf2127_wdt_active_ping(&pcf2127->wdd); in pcf2127_rtc_irq()
450 struct pcf2127 *pcf2127 = dev_get_drvdata(dev->parent); in timestamp0_store() local
453 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL1, in timestamp0_store()
460 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2, in timestamp0_store()
467 ret = pcf2127_wdt_active_ping(&pcf2127->wdd); in timestamp0_store()
477 struct pcf2127 *pcf2127 = dev_get_drvdata(dev->parent); in timestamp0_show() local
482 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_CTRL1, data, in timestamp0_show()
498 ret = pcf2127_wdt_active_ping(&pcf2127->wdd); in timestamp0_show()
538 struct pcf2127 *pcf2127; in pcf2127_probe() local
544 pcf2127 = devm_kzalloc(dev, sizeof(*pcf2127), GFP_KERNEL); in pcf2127_probe()
545 if (!pcf2127) in pcf2127_probe()
548 pcf2127->regmap = regmap; in pcf2127_probe()
550 dev_set_drvdata(dev, pcf2127); in pcf2127_probe()
552 pcf2127->rtc = devm_rtc_allocate_device(dev); in pcf2127_probe()
553 if (IS_ERR(pcf2127->rtc)) in pcf2127_probe()
554 return PTR_ERR(pcf2127->rtc); in pcf2127_probe()
556 pcf2127->rtc->ops = &pcf2127_rtc_ops; in pcf2127_probe()
557 pcf2127->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; in pcf2127_probe()
558 pcf2127->rtc->range_max = RTC_TIMESTAMP_END_2099; in pcf2127_probe()
559 pcf2127->rtc->set_start_time = true; /* Sets actual start to 1970 */ in pcf2127_probe()
560 pcf2127->rtc->uie_unsupported = 1; in pcf2127_probe()
575 pcf2127->rtc->ops = &pcf2127_rtc_alrm_ops; in pcf2127_probe()
578 pcf2127->wdd.parent = dev; in pcf2127_probe()
579 pcf2127->wdd.info = &pcf2127_wdt_info; in pcf2127_probe()
580 pcf2127->wdd.ops = &pcf2127_watchdog_ops; in pcf2127_probe()
581 pcf2127->wdd.min_timeout = PCF2127_WD_VAL_MIN; in pcf2127_probe()
582 pcf2127->wdd.max_timeout = PCF2127_WD_VAL_MAX; in pcf2127_probe()
583 pcf2127->wdd.timeout = PCF2127_WD_VAL_DEFAULT; in pcf2127_probe()
584 pcf2127->wdd.min_hw_heartbeat_ms = 500; in pcf2127_probe()
585 pcf2127->wdd.status = WATCHDOG_NOWAYOUT_INIT_STATUS; in pcf2127_probe()
587 watchdog_set_drvdata(&pcf2127->wdd, pcf2127); in pcf2127_probe()
591 .priv = pcf2127, in pcf2127_probe()
597 ret = rtc_nvmem_register(pcf2127->rtc, &nvmem_cfg); in pcf2127_probe()
605 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_WD_CTL, in pcf2127_probe()
619 ret = regmap_read(pcf2127->regmap, PCF2127_REG_WD_VAL, &wdd_timeout); in pcf2127_probe()
624 set_bit(WDOG_HW_RUNNING, &pcf2127->wdd.status); in pcf2127_probe()
627 ret = devm_watchdog_register_device(dev, &pcf2127->wdd); in pcf2127_probe()
638 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL3, in pcf2127_probe()
652 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_TS_CTRL, in pcf2127_probe()
667 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2, in pcf2127_probe()
676 ret = rtc_add_group(pcf2127->rtc, &pcf2127_attr_group); in pcf2127_probe()
683 return rtc_register_device(pcf2127->rtc); in pcf2127_probe()