Lines Matching defs:pcf2127

93 struct pcf2127 {
100 * In the routines that deal directly with the pcf2127 hardware, we use
105 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
113 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_CTRL3,
164 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
188 err = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_SC, buf, i);
201 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
207 ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL3, &val);
220 return regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL3,
237 struct pcf2127 *pcf2127 = priv;
241 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_ADDR_MSB,
246 return regmap_bulk_read(pcf2127->regmap, PCF2127_REG_RAM_RD_CMD,
253 struct pcf2127 *pcf2127 = priv;
257 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_ADDR_MSB,
262 return regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_WRT_CMD,
270 struct pcf2127 *pcf2127 = watchdog_get_drvdata(wdd);
272 return regmap_write(pcf2127->regmap, PCF2127_REG_WD_VAL, wdd->timeout);
304 struct pcf2127 *pcf2127 = watchdog_get_drvdata(wdd);
306 return regmap_write(pcf2127->regmap, PCF2127_REG_WD_VAL,
334 static int pcf2127_watchdog_init(struct device *dev, struct pcf2127 *pcf2127)
343 pcf2127->wdd.parent = dev;
344 pcf2127->wdd.info = &pcf2127_wdt_info;
345 pcf2127->wdd.ops = &pcf2127_watchdog_ops;
346 pcf2127->wdd.min_timeout = PCF2127_WD_VAL_MIN;
347 pcf2127->wdd.max_timeout = PCF2127_WD_VAL_MAX;
348 pcf2127->wdd.timeout = PCF2127_WD_VAL_DEFAULT;
349 pcf2127->wdd.min_hw_heartbeat_ms = 500;
350 pcf2127->wdd.status = WATCHDOG_NOWAYOUT_INIT_STATUS;
352 watchdog_set_drvdata(&pcf2127->wdd, pcf2127);
355 ret = regmap_read(pcf2127->regmap, PCF2127_REG_WD_VAL, &wdd_timeout);
360 set_bit(WDOG_HW_RUNNING, &pcf2127->wdd.status);
362 return devm_watchdog_register_device(dev, &pcf2127->wdd);
368 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
373 ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL2, &ctrl2);
377 ret = pcf2127_wdt_active_ping(&pcf2127->wdd);
381 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_ALARM_SC, buf,
399 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
402 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2,
408 return pcf2127_wdt_active_ping(&pcf2127->wdd);
413 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
417 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2,
422 ret = pcf2127_wdt_active_ping(&pcf2127->wdd);
432 ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_ALARM_SC, buf,
442 struct pcf2127 *pcf2127 = dev_get_drvdata(dev);
446 ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL2, &ctrl2);
453 regmap_write(pcf2127->regmap, PCF2127_REG_CTRL2,
456 rtc_update_irq(pcf2127->rtc, 1, RTC_IRQF | RTC_AF);
458 pcf2127_wdt_active_ping(&pcf2127->wdd);
478 struct pcf2127 *pcf2127 = dev_get_drvdata(dev->parent);
481 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL1,
488 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2,
495 ret = pcf2127_wdt_active_ping(&pcf2127->wdd);
505 struct pcf2127 *pcf2127 = dev_get_drvdata(dev->parent);
510 ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_CTRL1, data,
526 ret = pcf2127_wdt_active_ping(&pcf2127->wdd);
566 struct pcf2127 *pcf2127;
571 pcf2127 = devm_kzalloc(dev, sizeof(*pcf2127), GFP_KERNEL);
572 if (!pcf2127)
575 pcf2127->regmap = regmap;
577 dev_set_drvdata(dev, pcf2127);
579 pcf2127->rtc = devm_rtc_allocate_device(dev);
580 if (IS_ERR(pcf2127->rtc))
581 return PTR_ERR(pcf2127->rtc);
583 pcf2127->rtc->ops = &pcf2127_rtc_ops;
584 pcf2127->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
585 pcf2127->rtc->range_max = RTC_TIMESTAMP_END_2099;
586 pcf2127->rtc->set_start_time = true; /* Sets actual start to 1970 */
587 pcf2127->rtc->uie_unsupported = 1;
602 pcf2127->rtc->ops = &pcf2127_rtc_alrm_ops;
607 .priv = pcf2127,
613 ret = rtc_nvmem_register(pcf2127->rtc, &nvmem_cfg);
621 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_WD_CTL,
634 pcf2127_watchdog_init(dev, pcf2127);
642 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL3,
656 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_TS_CTRL,
671 ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2,
680 ret = rtc_add_group(pcf2127->rtc, &pcf2127_attr_group);
687 return rtc_register_device(pcf2127->rtc);
692 { .compatible = "nxp,pcf2127" },
804 { "pcf2127", 1 },
813 .name = "rtc-pcf2127-i2c",
871 { "pcf2127", 1 },
880 .name = "rtc-pcf2127-spi",
916 pr_err("Failed to register pcf2127 i2c driver: %d\n", ret);
922 pr_err("Failed to register pcf2127 spi driver: %d\n", ret);