Lines Matching refs:rtc
31 struct rtc_device *rtc = to_rtc_device(dev); in rtc_device_release() local
32 ida_simple_remove(&rtc_ida, rtc->id); in rtc_device_release()
33 kfree(rtc); in rtc_device_release()
52 struct rtc_device *rtc = to_rtc_device(dev); in rtc_suspend() local
59 if (strcmp(dev_name(&rtc->dev), CONFIG_RTC_HCTOSYS_DEVICE) != 0) in rtc_suspend()
63 rtc_read_time(rtc, &tm); in rtc_suspend()
92 struct rtc_device *rtc = to_rtc_device(dev); in rtc_resume() local
101 if (strcmp(dev_name(&rtc->dev), CONFIG_RTC_HCTOSYS_DEVICE) != 0) in rtc_resume()
106 rtc_read_time(rtc, &tm); in rtc_resume()
108 pr_debug("%s: bogus resume time\n", dev_name(&rtc->dev)); in rtc_resume()
115 pr_debug("%s: time travel!\n", dev_name(&rtc->dev)); in rtc_resume()
157 struct rtc_device *rtc; in rtc_device_register() local
167 rtc = kzalloc(sizeof(struct rtc_device), GFP_KERNEL); in rtc_device_register()
168 if (rtc == NULL) { in rtc_device_register()
173 rtc->id = id; in rtc_device_register()
174 rtc->ops = ops; in rtc_device_register()
175 rtc->owner = owner; in rtc_device_register()
176 rtc->irq_freq = 1; in rtc_device_register()
177 rtc->max_user_freq = 64; in rtc_device_register()
178 rtc->dev.parent = dev; in rtc_device_register()
179 rtc->dev.class = rtc_class; in rtc_device_register()
180 rtc->dev.release = rtc_device_release; in rtc_device_register()
182 mutex_init(&rtc->ops_lock); in rtc_device_register()
183 spin_lock_init(&rtc->irq_lock); in rtc_device_register()
184 spin_lock_init(&rtc->irq_task_lock); in rtc_device_register()
185 init_waitqueue_head(&rtc->irq_queue); in rtc_device_register()
188 timerqueue_init_head(&rtc->timerqueue); in rtc_device_register()
189 INIT_WORK(&rtc->irqwork, rtc_timer_do_work); in rtc_device_register()
191 rtc_timer_init(&rtc->aie_timer, rtc_aie_update_irq, (void *)rtc); in rtc_device_register()
193 rtc_timer_init(&rtc->uie_rtctimer, rtc_uie_update_irq, (void *)rtc); in rtc_device_register()
195 hrtimer_init(&rtc->pie_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in rtc_device_register()
196 rtc->pie_timer.function = rtc_pie_update_irq; in rtc_device_register()
197 rtc->pie_enabled = 0; in rtc_device_register()
200 err = __rtc_read_alarm(rtc, &alrm); in rtc_device_register()
203 rtc_initialize_alarm(rtc, &alrm); in rtc_device_register()
205 strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE); in rtc_device_register()
206 dev_set_name(&rtc->dev, "rtc%d", id); in rtc_device_register()
208 rtc_dev_prepare(rtc); in rtc_device_register()
210 err = device_register(&rtc->dev); in rtc_device_register()
212 put_device(&rtc->dev); in rtc_device_register()
216 rtc_dev_add_device(rtc); in rtc_device_register()
217 rtc_sysfs_add_device(rtc); in rtc_device_register()
218 rtc_proc_add_device(rtc); in rtc_device_register()
221 rtc->name, dev_name(&rtc->dev)); in rtc_device_register()
223 return rtc; in rtc_device_register()
226 kfree(rtc); in rtc_device_register()
244 void rtc_device_unregister(struct rtc_device *rtc) in rtc_device_unregister() argument
246 if (get_device(&rtc->dev) != NULL) { in rtc_device_unregister()
247 mutex_lock(&rtc->ops_lock); in rtc_device_unregister()
251 rtc_sysfs_del_device(rtc); in rtc_device_unregister()
252 rtc_dev_del_device(rtc); in rtc_device_unregister()
253 rtc_proc_del_device(rtc); in rtc_device_unregister()
254 device_unregister(&rtc->dev); in rtc_device_unregister()
255 rtc->ops = NULL; in rtc_device_unregister()
256 mutex_unlock(&rtc->ops_lock); in rtc_device_unregister()
257 put_device(&rtc->dev); in rtc_device_unregister()
264 struct rtc_device *rtc = *(struct rtc_device **)res; in devm_rtc_device_release() local
266 rtc_device_unregister(rtc); in devm_rtc_device_release()
271 struct rtc **r = res; in devm_rtc_device_match()
295 struct rtc_device **ptr, *rtc; in devm_rtc_device_register() local
301 rtc = rtc_device_register(name, dev, ops, owner); in devm_rtc_device_register()
302 if (!IS_ERR(rtc)) { in devm_rtc_device_register()
303 *ptr = rtc; in devm_rtc_device_register()
309 return rtc; in devm_rtc_device_register()
322 void devm_rtc_device_unregister(struct device *dev, struct rtc_device *rtc) in devm_rtc_device_unregister() argument
327 devm_rtc_device_match, rtc); in devm_rtc_device_unregister()