Lines Matching refs:pcf85363
110 struct pcf85363 { struct
122 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_read_time() argument
127 ret = regmap_bulk_read(pcf85363->regmap, DT_100THS, buf, len); in pcf85363_rtc_read_time()
151 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_set_time() local
168 ret = regmap_bulk_write(pcf85363->regmap, CTRL_STOP_EN, in pcf85363_rtc_set_time()
173 ret = regmap_bulk_write(pcf85363->regmap, DT_100THS, in pcf85363_rtc_set_time()
178 return regmap_write(pcf85363->regmap, CTRL_STOP_EN, 0); in pcf85363_rtc_set_time()
183 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_read_alarm() local
188 ret = regmap_bulk_read(pcf85363->regmap, DT_SECOND_ALM1, buf, in pcf85363_rtc_read_alarm()
199 ret = regmap_read(pcf85363->regmap, CTRL_INTA_EN, &val); in pcf85363_rtc_read_alarm()
208 static int _pcf85363_rtc_alarm_irq_enable(struct pcf85363 *pcf85363, unsigned in _pcf85363_rtc_alarm_irq_enable() argument
215 ret = regmap_update_bits(pcf85363->regmap, DT_ALARM_EN, alarm_flags, in _pcf85363_rtc_alarm_irq_enable()
220 ret = regmap_update_bits(pcf85363->regmap, CTRL_INTA_EN, in _pcf85363_rtc_alarm_irq_enable()
227 return regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0); in _pcf85363_rtc_alarm_irq_enable()
233 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_alarm_irq_enable() local
235 return _pcf85363_rtc_alarm_irq_enable(pcf85363, enabled); in pcf85363_rtc_alarm_irq_enable()
240 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_set_alarm() local
254 ret = _pcf85363_rtc_alarm_irq_enable(pcf85363, 0); in pcf85363_rtc_set_alarm()
258 ret = regmap_bulk_write(pcf85363->regmap, DT_SECOND_ALM1, buf, in pcf85363_rtc_set_alarm()
263 return _pcf85363_rtc_alarm_irq_enable(pcf85363, alrm->enabled); in pcf85363_rtc_set_alarm()
268 struct pcf85363 *pcf85363 = i2c_get_clientdata(dev_id); in pcf85363_rtc_handle_irq() local
272 err = regmap_read(pcf85363->regmap, CTRL_FLAGS, &flags); in pcf85363_rtc_handle_irq()
277 rtc_update_irq(pcf85363->rtc, 1, RTC_IRQF | RTC_AF); in pcf85363_rtc_handle_irq()
278 regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0); in pcf85363_rtc_handle_irq()
296 struct pcf85363 *pcf85363 = priv; in pcf85363_nvram_read() local
298 return regmap_bulk_read(pcf85363->regmap, CTRL_RAM + offset, in pcf85363_nvram_read()
305 struct pcf85363 *pcf85363 = priv; in pcf85363_nvram_write() local
307 return regmap_bulk_write(pcf85363->regmap, CTRL_RAM + offset, in pcf85363_nvram_write()
314 struct pcf85363 *pcf85363 = priv; in pcf85x63_nvram_read() local
318 ret = regmap_read(pcf85363->regmap, CTRL_RAMBYTE, &tmp_val); in pcf85x63_nvram_read()
327 struct pcf85363 *pcf85363 = priv; in pcf85x63_nvram_write() local
331 return regmap_write(pcf85363->regmap, CTRL_RAMBYTE, in pcf85x63_nvram_write()
355 struct pcf85363 *pcf85363; in pcf85363_probe() local
380 pcf85363 = devm_kzalloc(&client->dev, sizeof(struct pcf85363), in pcf85363_probe()
382 if (!pcf85363) in pcf85363_probe()
385 pcf85363->regmap = devm_regmap_init_i2c(client, &config->regmap); in pcf85363_probe()
386 if (IS_ERR(pcf85363->regmap)) { in pcf85363_probe()
388 return PTR_ERR(pcf85363->regmap); in pcf85363_probe()
391 i2c_set_clientdata(client, pcf85363); in pcf85363_probe()
393 pcf85363->rtc = devm_rtc_allocate_device(&client->dev); in pcf85363_probe()
394 if (IS_ERR(pcf85363->rtc)) in pcf85363_probe()
395 return PTR_ERR(pcf85363->rtc); in pcf85363_probe()
397 pcf85363->rtc->ops = &rtc_ops; in pcf85363_probe()
398 pcf85363->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; in pcf85363_probe()
399 pcf85363->rtc->range_max = RTC_TIMESTAMP_END_2099; in pcf85363_probe()
400 clear_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features); in pcf85363_probe()
403 regmap_write(pcf85363->regmap, CTRL_FLAGS, 0); in pcf85363_probe()
404 regmap_update_bits(pcf85363->regmap, CTRL_PIN_IO, in pcf85363_probe()
413 set_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features); in pcf85363_probe()
416 ret = devm_rtc_register_device(pcf85363->rtc); in pcf85363_probe()
419 nvmem_cfg[i].priv = pcf85363; in pcf85363_probe()
420 devm_rtc_nvmem_register(pcf85363->rtc, &nvmem_cfg[i]); in pcf85363_probe()