Lines Matching defs:pcf85363
3 * drivers/rtc/rtc-pcf85363.c
113 struct pcf85363 {
123 static int pcf85363_load_capacitance(struct pcf85363 *pcf85363, struct device_node *node)
132 dev_warn(&pcf85363->rtc->dev, "Unknown quartz-load-femtofarads value: %d. Assuming 7000",
145 return regmap_update_bits(pcf85363->regmap, CTRL_OSCILLATOR,
151 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
156 ret = regmap_bulk_read(pcf85363->regmap, DT_100THS, buf, len);
180 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
197 ret = regmap_bulk_write(pcf85363->regmap, CTRL_STOP_EN,
202 ret = regmap_bulk_write(pcf85363->regmap, DT_100THS,
207 return regmap_write(pcf85363->regmap, CTRL_STOP_EN, 0);
212 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
217 ret = regmap_bulk_read(pcf85363->regmap, DT_SECOND_ALM1, buf,
228 ret = regmap_read(pcf85363->regmap, CTRL_INTA_EN, &val);
237 static int _pcf85363_rtc_alarm_irq_enable(struct pcf85363 *pcf85363, unsigned
244 ret = regmap_update_bits(pcf85363->regmap, DT_ALARM_EN, alarm_flags,
249 ret = regmap_update_bits(pcf85363->regmap, CTRL_INTA_EN,
256 return regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0);
262 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
264 return _pcf85363_rtc_alarm_irq_enable(pcf85363, enabled);
269 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
283 ret = _pcf85363_rtc_alarm_irq_enable(pcf85363, 0);
287 ret = regmap_bulk_write(pcf85363->regmap, DT_SECOND_ALM1, buf,
292 return _pcf85363_rtc_alarm_irq_enable(pcf85363, alrm->enabled);
297 struct pcf85363 *pcf85363 = i2c_get_clientdata(dev_id);
301 err = regmap_read(pcf85363->regmap, CTRL_FLAGS, &flags);
306 rtc_update_irq(pcf85363->rtc, 1, RTC_IRQF | RTC_AF);
307 regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0);
325 struct pcf85363 *pcf85363 = priv;
327 return regmap_bulk_read(pcf85363->regmap, CTRL_RAM + offset,
334 struct pcf85363 *pcf85363 = priv;
336 return regmap_bulk_write(pcf85363->regmap, CTRL_RAM + offset,
343 struct pcf85363 *pcf85363 = priv;
347 ret = regmap_read(pcf85363->regmap, CTRL_RAMBYTE, &tmp_val);
356 struct pcf85363 *pcf85363 = priv;
360 return regmap_write(pcf85363->regmap, CTRL_RAMBYTE,
384 struct pcf85363 *pcf85363;
396 .name = "pcf85363-",
410 pcf85363 = devm_kzalloc(&client->dev, sizeof(struct pcf85363),
412 if (!pcf85363)
415 pcf85363->regmap = devm_regmap_init_i2c(client, &config->regmap);
416 if (IS_ERR(pcf85363->regmap)) {
418 return PTR_ERR(pcf85363->regmap);
421 i2c_set_clientdata(client, pcf85363);
423 pcf85363->rtc = devm_rtc_allocate_device(&client->dev);
424 if (IS_ERR(pcf85363->rtc))
425 return PTR_ERR(pcf85363->rtc);
427 err = pcf85363_load_capacitance(pcf85363, client->dev.of_node);
432 pcf85363->rtc->ops = &rtc_ops;
433 pcf85363->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
434 pcf85363->rtc->range_max = RTC_TIMESTAMP_END_2099;
439 regmap_write(pcf85363->regmap, CTRL_FLAGS, 0);
440 regmap_update_bits(pcf85363->regmap, CTRL_PIN_IO,
452 "pcf85363", client);
462 set_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features);
464 clear_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features);
467 ret = devm_rtc_register_device(pcf85363->rtc);
470 nvmem_cfg[i].priv = pcf85363;
471 devm_rtc_nvmem_register(pcf85363->rtc, &nvmem_cfg[i]);
479 { .compatible = "nxp,pcf85363", .data = &pcf_85363_config },
486 .name = "pcf85363",
495 MODULE_DESCRIPTION("pcf85263/pcf85363 I2C RTC driver");