Lines Matching refs:pcf85363

117 struct pcf85363 {  struct
125 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_read_time() local
130 ret = regmap_bulk_read(pcf85363->regmap, DT_100THS, buf, len); in pcf85363_rtc_read_time()
154 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_set_time() local
171 ret = regmap_bulk_write(pcf85363->regmap, CTRL_STOP_EN, in pcf85363_rtc_set_time()
176 return regmap_write(pcf85363->regmap, CTRL_STOP_EN, 0); in pcf85363_rtc_set_time()
181 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_read_alarm() local
186 ret = regmap_bulk_read(pcf85363->regmap, DT_SECOND_ALM1, buf, in pcf85363_rtc_read_alarm()
197 ret = regmap_read(pcf85363->regmap, CTRL_INTA_EN, &val); in pcf85363_rtc_read_alarm()
206 static int _pcf85363_rtc_alarm_irq_enable(struct pcf85363 *pcf85363, unsigned in _pcf85363_rtc_alarm_irq_enable() argument
213 ret = regmap_update_bits(pcf85363->regmap, DT_ALARM_EN, alarm_flags, in _pcf85363_rtc_alarm_irq_enable()
218 ret = regmap_update_bits(pcf85363->regmap, CTRL_INTA_EN, in _pcf85363_rtc_alarm_irq_enable()
225 return regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0); in _pcf85363_rtc_alarm_irq_enable()
231 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_alarm_irq_enable() local
233 return _pcf85363_rtc_alarm_irq_enable(pcf85363, enabled); in pcf85363_rtc_alarm_irq_enable()
238 struct pcf85363 *pcf85363 = dev_get_drvdata(dev); in pcf85363_rtc_set_alarm() local
252 ret = _pcf85363_rtc_alarm_irq_enable(pcf85363, 0); in pcf85363_rtc_set_alarm()
256 ret = regmap_bulk_write(pcf85363->regmap, DT_SECOND_ALM1, buf, in pcf85363_rtc_set_alarm()
261 return _pcf85363_rtc_alarm_irq_enable(pcf85363, alrm->enabled); in pcf85363_rtc_set_alarm()
266 struct pcf85363 *pcf85363 = i2c_get_clientdata(dev_id); in pcf85363_rtc_handle_irq() local
270 err = regmap_read(pcf85363->regmap, CTRL_FLAGS, &flags); in pcf85363_rtc_handle_irq()
275 rtc_update_irq(pcf85363->rtc, 1, RTC_IRQF | RTC_AF); in pcf85363_rtc_handle_irq()
276 regmap_update_bits(pcf85363->regmap, CTRL_FLAGS, FLAGS_A1F, 0); in pcf85363_rtc_handle_irq()
299 struct pcf85363 *pcf85363 = priv; in pcf85363_nvram_read() local
301 return regmap_bulk_read(pcf85363->regmap, CTRL_RAM + offset, in pcf85363_nvram_read()
308 struct pcf85363 *pcf85363 = priv; in pcf85363_nvram_write() local
310 return regmap_bulk_write(pcf85363->regmap, CTRL_RAM + offset, in pcf85363_nvram_write()
323 struct pcf85363 *pcf85363; in pcf85363_probe() local
337 pcf85363 = devm_kzalloc(&client->dev, sizeof(struct pcf85363), in pcf85363_probe()
339 if (!pcf85363) in pcf85363_probe()
342 pcf85363->regmap = devm_regmap_init_i2c(client, &regmap_config); in pcf85363_probe()
343 if (IS_ERR(pcf85363->regmap)) { in pcf85363_probe()
345 return PTR_ERR(pcf85363->regmap); in pcf85363_probe()
348 pcf85363->dev = &client->dev; in pcf85363_probe()
349 i2c_set_clientdata(client, pcf85363); in pcf85363_probe()
351 pcf85363->rtc = devm_rtc_allocate_device(pcf85363->dev); in pcf85363_probe()
352 if (IS_ERR(pcf85363->rtc)) in pcf85363_probe()
353 return PTR_ERR(pcf85363->rtc); in pcf85363_probe()
355 pcf85363->rtc->ops = &rtc_ops; in pcf85363_probe()
358 regmap_write(pcf85363->regmap, CTRL_FLAGS, 0); in pcf85363_probe()
359 regmap_update_bits(pcf85363->regmap, CTRL_PIN_IO, in pcf85363_probe()
361 ret = devm_request_threaded_irq(pcf85363->dev, client->irq, in pcf85363_probe()
368 pcf85363->rtc->ops = &rtc_ops_alarm; in pcf85363_probe()
371 ret = rtc_register_device(pcf85363->rtc); in pcf85363_probe()
373 nvmem_cfg.priv = pcf85363; in pcf85363_probe()
374 rtc_nvmem_register(pcf85363->rtc, &nvmem_cfg); in pcf85363_probe()