Lines Matching refs:info

115 static int max77686_rtc_update(struct max77686_rtc_info *info,  in max77686_rtc_update()  argument
126 ret = regmap_update_bits(info->max77686->rtc_regmap, in max77686_rtc_update()
129 dev_err(info->dev, "%s: fail to write update reg(ret=%d, data=0x%x)\n", in max77686_rtc_update()
141 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_read_time() local
145 mutex_lock(&info->lock); in max77686_rtc_read_time()
147 ret = max77686_rtc_update(info, MAX77686_RTC_READ); in max77686_rtc_read_time()
151 ret = regmap_bulk_read(info->max77686->rtc_regmap, in max77686_rtc_read_time()
154 dev_err(info->dev, "%s: fail to read time reg(%d)\n", __func__, ret); in max77686_rtc_read_time()
158 max77686_rtc_data_to_tm(data, tm, info->rtc_24hr_mode); in max77686_rtc_read_time()
163 mutex_unlock(&info->lock); in max77686_rtc_read_time()
169 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_set_time() local
177 mutex_lock(&info->lock); in max77686_rtc_set_time()
179 ret = regmap_bulk_write(info->max77686->rtc_regmap, in max77686_rtc_set_time()
182 dev_err(info->dev, "%s: fail to write time reg(%d)\n", __func__, in max77686_rtc_set_time()
187 ret = max77686_rtc_update(info, MAX77686_RTC_WRITE); in max77686_rtc_set_time()
190 mutex_unlock(&info->lock); in max77686_rtc_set_time()
196 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_read_alarm() local
201 mutex_lock(&info->lock); in max77686_rtc_read_alarm()
203 ret = max77686_rtc_update(info, MAX77686_RTC_READ); in max77686_rtc_read_alarm()
207 ret = regmap_bulk_read(info->max77686->rtc_regmap, in max77686_rtc_read_alarm()
210 dev_err(info->dev, "%s:%d fail to read alarm reg(%d)\n", in max77686_rtc_read_alarm()
215 max77686_rtc_data_to_tm(data, &alrm->time, info->rtc_24hr_mode); in max77686_rtc_read_alarm()
226 ret = regmap_read(info->max77686->regmap, MAX77686_REG_STATUS2, &val); in max77686_rtc_read_alarm()
228 dev_err(info->dev, "%s:%d fail to read status2 reg(%d)\n", in max77686_rtc_read_alarm()
237 mutex_unlock(&info->lock); in max77686_rtc_read_alarm()
241 static int max77686_rtc_stop_alarm(struct max77686_rtc_info *info) in max77686_rtc_stop_alarm() argument
247 if (!mutex_is_locked(&info->lock)) in max77686_rtc_stop_alarm()
248 dev_warn(info->dev, "%s: should have mutex locked\n", __func__); in max77686_rtc_stop_alarm()
250 ret = max77686_rtc_update(info, MAX77686_RTC_READ); in max77686_rtc_stop_alarm()
254 ret = regmap_bulk_read(info->max77686->rtc_regmap, in max77686_rtc_stop_alarm()
257 dev_err(info->dev, "%s: fail to read alarm reg(%d)\n", in max77686_rtc_stop_alarm()
262 max77686_rtc_data_to_tm(data, &tm, info->rtc_24hr_mode); in max77686_rtc_stop_alarm()
267 ret = regmap_bulk_write(info->max77686->rtc_regmap, in max77686_rtc_stop_alarm()
270 dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", in max77686_rtc_stop_alarm()
275 ret = max77686_rtc_update(info, MAX77686_RTC_WRITE); in max77686_rtc_stop_alarm()
280 static int max77686_rtc_start_alarm(struct max77686_rtc_info *info) in max77686_rtc_start_alarm() argument
286 if (!mutex_is_locked(&info->lock)) in max77686_rtc_start_alarm()
287 dev_warn(info->dev, "%s: should have mutex locked\n", __func__); in max77686_rtc_start_alarm()
289 ret = max77686_rtc_update(info, MAX77686_RTC_READ); in max77686_rtc_start_alarm()
293 ret = regmap_bulk_read(info->max77686->rtc_regmap, in max77686_rtc_start_alarm()
296 dev_err(info->dev, "%s: fail to read alarm reg(%d)\n", in max77686_rtc_start_alarm()
301 max77686_rtc_data_to_tm(data, &tm, info->rtc_24hr_mode); in max77686_rtc_start_alarm()
314 ret = regmap_bulk_write(info->max77686->rtc_regmap, in max77686_rtc_start_alarm()
317 dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", in max77686_rtc_start_alarm()
322 ret = max77686_rtc_update(info, MAX77686_RTC_WRITE); in max77686_rtc_start_alarm()
329 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_set_alarm() local
337 mutex_lock(&info->lock); in max77686_rtc_set_alarm()
339 ret = max77686_rtc_stop_alarm(info); in max77686_rtc_set_alarm()
343 ret = regmap_bulk_write(info->max77686->rtc_regmap, in max77686_rtc_set_alarm()
347 dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", in max77686_rtc_set_alarm()
352 ret = max77686_rtc_update(info, MAX77686_RTC_WRITE); in max77686_rtc_set_alarm()
357 ret = max77686_rtc_start_alarm(info); in max77686_rtc_set_alarm()
359 mutex_unlock(&info->lock); in max77686_rtc_set_alarm()
366 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_alarm_irq_enable() local
369 mutex_lock(&info->lock); in max77686_rtc_alarm_irq_enable()
371 ret = max77686_rtc_start_alarm(info); in max77686_rtc_alarm_irq_enable()
373 ret = max77686_rtc_stop_alarm(info); in max77686_rtc_alarm_irq_enable()
374 mutex_unlock(&info->lock); in max77686_rtc_alarm_irq_enable()
381 struct max77686_rtc_info *info = data; in max77686_rtc_alarm_irq() local
383 dev_info(info->dev, "%s:irq(%d)\n", __func__, irq); in max77686_rtc_alarm_irq()
385 rtc_update_irq(info->rtc_dev, 1, RTC_IRQF | RTC_AF); in max77686_rtc_alarm_irq()
398 static int max77686_rtc_init_reg(struct max77686_rtc_info *info) in max77686_rtc_init_reg() argument
407 info->rtc_24hr_mode = 1; in max77686_rtc_init_reg()
409 ret = regmap_bulk_write(info->max77686->rtc_regmap, MAX77686_RTC_CONTROLM, data, 2); in max77686_rtc_init_reg()
411 dev_err(info->dev, "%s: fail to write controlm reg(%d)\n", in max77686_rtc_init_reg()
416 ret = max77686_rtc_update(info, MAX77686_RTC_WRITE); in max77686_rtc_init_reg()
423 struct max77686_rtc_info *info; in max77686_rtc_probe() local
428 info = devm_kzalloc(&pdev->dev, sizeof(struct max77686_rtc_info), in max77686_rtc_probe()
430 if (!info) in max77686_rtc_probe()
433 mutex_init(&info->lock); in max77686_rtc_probe()
434 info->dev = &pdev->dev; in max77686_rtc_probe()
435 info->max77686 = max77686; in max77686_rtc_probe()
436 info->rtc = max77686->rtc; in max77686_rtc_probe()
438 platform_set_drvdata(pdev, info); in max77686_rtc_probe()
440 ret = max77686_rtc_init_reg(info); in max77686_rtc_probe()
449 info->rtc_dev = devm_rtc_device_register(&pdev->dev, "max77686-rtc", in max77686_rtc_probe()
452 if (IS_ERR(info->rtc_dev)) { in max77686_rtc_probe()
453 ret = PTR_ERR(info->rtc_dev); in max77686_rtc_probe()
466 info->virq = regmap_irq_get_virq(max77686->rtc_irq_data, in max77686_rtc_probe()
468 if (info->virq <= 0) { in max77686_rtc_probe()
473 ret = devm_request_threaded_irq(&pdev->dev, info->virq, NULL, in max77686_rtc_probe()
474 max77686_rtc_alarm_irq, 0, "rtc-alarm1", info); in max77686_rtc_probe()
477 info->virq, ret); in max77686_rtc_probe()
487 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_suspend() local
489 return enable_irq_wake(info->virq); in max77686_rtc_suspend()
498 struct max77686_rtc_info *info = dev_get_drvdata(dev); in max77686_rtc_resume() local
500 return disable_irq_wake(info->virq); in max77686_rtc_resume()