Lines Matching defs:pcf85363
3 * drivers/rtc/rtc-pcf85363.c
110 struct pcf85363 {
122 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
127 ret = regmap_bulk_read(pcf85363->regmap, DT_100THS, buf, len);
151 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
168 ret = regmap_bulk_write(pcf85363->regmap, CTRL_STOP_EN,
173 ret = regmap_bulk_write(pcf85363->regmap, DT_100THS,
178 return regmap_write(pcf85363->regmap, CTRL_STOP_EN, 0);
183 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
188 ret = regmap_bulk_read(pcf85363->regmap, DT_SECOND_ALM1, buf,
199 ret = regmap_read(pcf85363->regmap, CTRL_INTA_EN, &val);
208 static int _pcf85363_rtc_alarm_irq_enable(struct pcf85363 *pcf85363, unsigned
215 ret = regmap_update_bits(pcf85363->regmap, DT_ALARM_EN, alarm_flags,
220 ret = regmap_update_bits(pcf85363->regmap, CTRL_INTA_EN,
227 return regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0);
233 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
235 return _pcf85363_rtc_alarm_irq_enable(pcf85363, enabled);
240 struct pcf85363 *pcf85363 = dev_get_drvdata(dev);
254 ret = _pcf85363_rtc_alarm_irq_enable(pcf85363, 0);
258 ret = regmap_bulk_write(pcf85363->regmap, DT_SECOND_ALM1, buf,
263 return _pcf85363_rtc_alarm_irq_enable(pcf85363, alrm->enabled);
268 struct pcf85363 *pcf85363 = i2c_get_clientdata(dev_id);
272 err = regmap_read(pcf85363->regmap, CTRL_FLAGS, &flags);
277 rtc_update_irq(pcf85363->rtc, 1, RTC_IRQF | RTC_AF);
278 regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0);
301 struct pcf85363 *pcf85363 = priv;
303 return regmap_bulk_read(pcf85363->regmap, CTRL_RAM + offset,
310 struct pcf85363 *pcf85363 = priv;
312 return regmap_bulk_write(pcf85363->regmap, CTRL_RAM + offset,
319 struct pcf85363 *pcf85363 = priv;
323 ret = regmap_read(pcf85363->regmap, CTRL_RAMBYTE, &tmp_val);
332 struct pcf85363 *pcf85363 = priv;
336 return regmap_write(pcf85363->regmap, CTRL_RAMBYTE,
361 struct pcf85363 *pcf85363;
373 .name = "pcf85363-",
386 pcf85363 = devm_kzalloc(&client->dev, sizeof(struct pcf85363),
388 if (!pcf85363)
391 pcf85363->regmap = devm_regmap_init_i2c(client, &config->regmap);
392 if (IS_ERR(pcf85363->regmap)) {
394 return PTR_ERR(pcf85363->regmap);
397 i2c_set_clientdata(client, pcf85363);
399 pcf85363->rtc = devm_rtc_allocate_device(&client->dev);
400 if (IS_ERR(pcf85363->rtc))
401 return PTR_ERR(pcf85363->rtc);
403 pcf85363->rtc->ops = &rtc_ops;
404 pcf85363->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
405 pcf85363->rtc->range_max = RTC_TIMESTAMP_END_2099;
408 regmap_write(pcf85363->regmap, CTRL_FLAGS, 0);
409 regmap_update_bits(pcf85363->regmap, CTRL_PIN_IO,
414 "pcf85363", client);
418 pcf85363->rtc->ops = &rtc_ops_alarm;
421 ret = rtc_register_device(pcf85363->rtc);
424 nvmem_cfg[i].priv = pcf85363;
425 rtc_nvmem_register(pcf85363->rtc, &nvmem_cfg[i]);
433 { .compatible = "nxp,pcf85363", .data = &pcf_85363_config },
440 .name = "pcf85363",
449 MODULE_DESCRIPTION("pcf85263/pcf85363 I2C RTC driver");