Lines Matching refs:viortc_class

25 struct viortc_class {  struct
42 static struct viortc_class *viortc_class_get_locked(struct device *dev) in viortc_class_get_locked() argument
44 struct viortc_class *viortc_class; in viortc_class_get_locked() local
46 viortc_class = viortc_class_from_dev(dev); in viortc_class_get_locked()
47 if (IS_ERR(viortc_class)) in viortc_class_get_locked()
48 return viortc_class; in viortc_class_get_locked()
50 if (viortc_class->stopped) in viortc_class_get_locked()
53 return viortc_class; in viortc_class_get_locked()
66 struct viortc_class *viortc_class; in viortc_class_read_time() local
71 viortc_class = viortc_class_get_locked(dev); in viortc_class_read_time()
72 if (IS_ERR(viortc_class)) in viortc_class_read_time()
73 return PTR_ERR(viortc_class); in viortc_class_read_time()
75 ret = viortc_read(viortc_class->viortc, viortc_class->vio_clk_id, &ns); in viortc_class_read_time()
96 struct viortc_class *viortc_class; in viortc_class_read_alarm() local
102 viortc_class = viortc_class_get_locked(dev); in viortc_class_read_alarm()
103 if (IS_ERR(viortc_class)) in viortc_class_read_alarm()
104 return PTR_ERR(viortc_class); in viortc_class_read_alarm()
106 ret = viortc_read_alarm(viortc_class->viortc, viortc_class->vio_clk_id, in viortc_class_read_alarm()
129 struct viortc_class *viortc_class; in viortc_class_set_alarm() local
133 viortc_class = viortc_class_get_locked(dev); in viortc_class_set_alarm()
134 if (IS_ERR(viortc_class)) in viortc_class_set_alarm()
135 return PTR_ERR(viortc_class); in viortc_class_set_alarm()
146 return viortc_set_alarm(viortc_class->viortc, viortc_class->vio_clk_id, in viortc_class_set_alarm()
161 struct viortc_class *viortc_class; in viortc_class_alarm_irq_enable() local
163 viortc_class = viortc_class_get_locked(dev); in viortc_class_alarm_irq_enable()
164 if (IS_ERR(viortc_class)) in viortc_class_alarm_irq_enable()
165 return PTR_ERR(viortc_class); in viortc_class_alarm_irq_enable()
167 return viortc_set_alarm_enabled(viortc_class->viortc, in viortc_class_alarm_irq_enable()
168 viortc_class->vio_clk_id, enabled); in viortc_class_alarm_irq_enable()
185 void viortc_class_alarm(struct viortc_class *viortc_class, u16 vio_clk_id) in viortc_class_alarm() argument
187 if (vio_clk_id != viortc_class->vio_clk_id) { in viortc_class_alarm()
188 dev_warn_ratelimited(&viortc_class->rtc->dev, in viortc_class_alarm()
190 vio_clk_id, viortc_class->vio_clk_id); in viortc_class_alarm()
194 rtc_update_irq(viortc_class->rtc, 1, RTC_AF | RTC_IRQF); in viortc_class_alarm()
203 void viortc_class_stop(struct viortc_class *viortc_class) in viortc_class_stop() argument
205 rtc_lock(viortc_class->rtc); in viortc_class_stop()
207 viortc_class->stopped = true; in viortc_class_stop()
209 rtc_unlock(viortc_class->rtc); in viortc_class_stop()
219 int viortc_class_register(struct viortc_class *viortc_class) in viortc_class_register() argument
221 return devm_rtc_register_device(viortc_class->rtc); in viortc_class_register()
234 struct viortc_class *viortc_class_init(struct viortc_dev *viortc, in viortc_class_init()
238 struct viortc_class *viortc_class; in viortc_class_init() local
241 viortc_class = in viortc_class_init()
242 devm_kzalloc(parent_dev, sizeof(*viortc_class), GFP_KERNEL); in viortc_class_init()
243 if (!viortc_class) in viortc_class_init()
250 viortc_class->viortc = viortc; in viortc_class_init()
251 viortc_class->rtc = rtc; in viortc_class_init()
252 viortc_class->vio_clk_id = vio_clk_id; in viortc_class_init()
261 return viortc_class; in viortc_class_init()