Lines Matching refs:info

119 static inline int max8997_rtc_set_update_reg(struct max8997_rtc_info *info)  in max8997_rtc_set_update_reg()  argument
123 ret = max8997_write_reg(info->rtc, MAX8997_RTC_UPDATE1, in max8997_rtc_set_update_reg()
126 dev_err(info->dev, "%s: fail to write update reg(%d)\n", in max8997_rtc_set_update_reg()
140 struct max8997_rtc_info *info = dev_get_drvdata(dev); in max8997_rtc_read_time() local
144 mutex_lock(&info->lock); in max8997_rtc_read_time()
145 ret = max8997_bulk_read(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data); in max8997_rtc_read_time()
146 mutex_unlock(&info->lock); in max8997_rtc_read_time()
149 dev_err(info->dev, "%s: fail to read time reg(%d)\n", __func__, in max8997_rtc_read_time()
154 max8997_rtc_data_to_tm(data, tm, info->rtc_24hr_mode); in max8997_rtc_read_time()
161 struct max8997_rtc_info *info = dev_get_drvdata(dev); in max8997_rtc_set_time() local
169 mutex_lock(&info->lock); in max8997_rtc_set_time()
171 ret = max8997_bulk_write(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data); in max8997_rtc_set_time()
173 dev_err(info->dev, "%s: fail to write time reg(%d)\n", __func__, in max8997_rtc_set_time()
178 ret = max8997_rtc_set_update_reg(info); in max8997_rtc_set_time()
180 mutex_unlock(&info->lock); in max8997_rtc_set_time()
186 struct max8997_rtc_info *info = dev_get_drvdata(dev); in max8997_rtc_read_alarm() local
191 mutex_lock(&info->lock); in max8997_rtc_read_alarm()
193 ret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, in max8997_rtc_read_alarm()
196 dev_err(info->dev, "%s:%d fail to read alarm reg(%d)\n", in max8997_rtc_read_alarm()
201 max8997_rtc_data_to_tm(data, &alrm->time, info->rtc_24hr_mode); in max8997_rtc_read_alarm()
212 ret = max8997_read_reg(info->max8997->i2c, MAX8997_REG_STATUS1, &val); in max8997_rtc_read_alarm()
214 dev_err(info->dev, "%s:%d fail to read status1 reg(%d)\n", in max8997_rtc_read_alarm()
223 mutex_unlock(&info->lock); in max8997_rtc_read_alarm()
227 static int max8997_rtc_stop_alarm(struct max8997_rtc_info *info) in max8997_rtc_stop_alarm() argument
232 if (!mutex_is_locked(&info->lock)) in max8997_rtc_stop_alarm()
233 dev_warn(info->dev, "%s: should have mutex locked\n", __func__); in max8997_rtc_stop_alarm()
235 ret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, in max8997_rtc_stop_alarm()
238 dev_err(info->dev, "%s: fail to read alarm reg(%d)\n", in max8997_rtc_stop_alarm()
246 ret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, in max8997_rtc_stop_alarm()
249 dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", in max8997_rtc_stop_alarm()
254 ret = max8997_rtc_set_update_reg(info); in max8997_rtc_stop_alarm()
259 static int max8997_rtc_start_alarm(struct max8997_rtc_info *info) in max8997_rtc_start_alarm() argument
264 if (!mutex_is_locked(&info->lock)) in max8997_rtc_start_alarm()
265 dev_warn(info->dev, "%s: should have mutex locked\n", __func__); in max8997_rtc_start_alarm()
267 ret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, in max8997_rtc_start_alarm()
270 dev_err(info->dev, "%s: fail to read alarm reg(%d)\n", in max8997_rtc_start_alarm()
286 ret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, in max8997_rtc_start_alarm()
289 dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", in max8997_rtc_start_alarm()
294 ret = max8997_rtc_set_update_reg(info); in max8997_rtc_start_alarm()
300 struct max8997_rtc_info *info = dev_get_drvdata(dev); in max8997_rtc_set_alarm() local
308 dev_info(info->dev, "%s: %d-%02d-%02d %02d:%02d:%02d\n", __func__, in max8997_rtc_set_alarm()
312 mutex_lock(&info->lock); in max8997_rtc_set_alarm()
314 ret = max8997_rtc_stop_alarm(info); in max8997_rtc_set_alarm()
318 ret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, in max8997_rtc_set_alarm()
321 dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", in max8997_rtc_set_alarm()
326 ret = max8997_rtc_set_update_reg(info); in max8997_rtc_set_alarm()
331 ret = max8997_rtc_start_alarm(info); in max8997_rtc_set_alarm()
333 mutex_unlock(&info->lock); in max8997_rtc_set_alarm()
340 struct max8997_rtc_info *info = dev_get_drvdata(dev); in max8997_rtc_alarm_irq_enable() local
343 mutex_lock(&info->lock); in max8997_rtc_alarm_irq_enable()
345 ret = max8997_rtc_start_alarm(info); in max8997_rtc_alarm_irq_enable()
347 ret = max8997_rtc_stop_alarm(info); in max8997_rtc_alarm_irq_enable()
348 mutex_unlock(&info->lock); in max8997_rtc_alarm_irq_enable()
355 struct max8997_rtc_info *info = data; in max8997_rtc_alarm_irq() local
357 dev_info(info->dev, "%s:irq(%d)\n", __func__, irq); in max8997_rtc_alarm_irq()
359 rtc_update_irq(info->rtc_dev, 1, RTC_IRQF | RTC_AF); in max8997_rtc_alarm_irq()
372 static void max8997_rtc_enable_wtsr(struct max8997_rtc_info *info, bool enable) in max8997_rtc_enable_wtsr() argument
387 dev_info(info->dev, "%s: %s WTSR\n", __func__, in max8997_rtc_enable_wtsr()
390 ret = max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask); in max8997_rtc_enable_wtsr()
392 dev_err(info->dev, "%s: fail to update WTSR reg(%d)\n", in max8997_rtc_enable_wtsr()
397 max8997_rtc_set_update_reg(info); in max8997_rtc_enable_wtsr()
400 static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable) in max8997_rtc_enable_smpl() argument
415 dev_info(info->dev, "%s: %s SMPL\n", __func__, in max8997_rtc_enable_smpl()
418 ret = max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask); in max8997_rtc_enable_smpl()
420 dev_err(info->dev, "%s: fail to update SMPL reg(%d)\n", in max8997_rtc_enable_smpl()
425 max8997_rtc_set_update_reg(info); in max8997_rtc_enable_smpl()
428 max8997_read_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, &val); in max8997_rtc_enable_smpl()
432 static int max8997_rtc_init_reg(struct max8997_rtc_info *info) in max8997_rtc_init_reg() argument
441 info->rtc_24hr_mode = 1; in max8997_rtc_init_reg()
443 ret = max8997_bulk_write(info->rtc, MAX8997_RTC_CTRLMASK, 2, data); in max8997_rtc_init_reg()
445 dev_err(info->dev, "%s: fail to write controlm reg(%d)\n", in max8997_rtc_init_reg()
450 ret = max8997_rtc_set_update_reg(info); in max8997_rtc_init_reg()
457 struct max8997_rtc_info *info; in max8997_rtc_probe() local
460 info = devm_kzalloc(&pdev->dev, sizeof(struct max8997_rtc_info), in max8997_rtc_probe()
462 if (!info) in max8997_rtc_probe()
465 mutex_init(&info->lock); in max8997_rtc_probe()
466 info->dev = &pdev->dev; in max8997_rtc_probe()
467 info->max8997 = max8997; in max8997_rtc_probe()
468 info->rtc = max8997->rtc; in max8997_rtc_probe()
470 platform_set_drvdata(pdev, info); in max8997_rtc_probe()
472 ret = max8997_rtc_init_reg(info); in max8997_rtc_probe()
479 max8997_rtc_enable_wtsr(info, true); in max8997_rtc_probe()
480 max8997_rtc_enable_smpl(info, true); in max8997_rtc_probe()
484 info->rtc_dev = devm_rtc_device_register(&pdev->dev, "max8997-rtc", in max8997_rtc_probe()
487 if (IS_ERR(info->rtc_dev)) { in max8997_rtc_probe()
488 ret = PTR_ERR(info->rtc_dev); in max8997_rtc_probe()
499 info->virq = virq; in max8997_rtc_probe()
503 "rtc-alarm0", info); in max8997_rtc_probe()
506 info->virq, ret); in max8997_rtc_probe()
514 struct max8997_rtc_info *info = platform_get_drvdata(pdev); in max8997_rtc_shutdown() local
516 max8997_rtc_enable_wtsr(info, false); in max8997_rtc_shutdown()
517 max8997_rtc_enable_smpl(info, false); in max8997_rtc_shutdown()