Lines Matching refs:rv8803
62 struct rv8803_data *rv8803 = i2c_get_clientdata(client); in rv8803_handle_irq() local
66 spin_lock(&rv8803->flags_lock); in rv8803_handle_irq()
70 spin_unlock(&rv8803->flags_lock); in rv8803_handle_irq()
82 rv8803->ctrl &= ~RV8803_CTRL_TIE; in rv8803_handle_irq()
88 rv8803->ctrl &= ~RV8803_CTRL_AIE; in rv8803_handle_irq()
94 rv8803->ctrl &= ~RV8803_CTRL_UIE; in rv8803_handle_irq()
99 rtc_update_irq(rv8803->rtc, 1, events); in rv8803_handle_irq()
101 i2c_smbus_write_byte_data(rv8803->client, RV8803_CTRL, in rv8803_handle_irq()
102 rv8803->ctrl); in rv8803_handle_irq()
105 spin_unlock(&rv8803->flags_lock); in rv8803_handle_irq()
112 struct rv8803_data *rv8803 = dev_get_drvdata(dev); in rv8803_get_time() local
118 flags = i2c_smbus_read_byte_data(rv8803->client, RV8803_FLAG); in rv8803_get_time()
127 ret = i2c_smbus_read_i2c_block_data(rv8803->client, RV8803_SEC, in rv8803_get_time()
133 ret = i2c_smbus_read_i2c_block_data(rv8803->client, RV8803_SEC, in rv8803_get_time()
155 struct rv8803_data *rv8803 = dev_get_drvdata(dev); in rv8803_set_time() local
171 ret = i2c_smbus_write_i2c_block_data(rv8803->client, RV8803_SEC, in rv8803_set_time()
176 spin_lock_irqsave(&rv8803->flags_lock, irqflags); in rv8803_set_time()
178 flags = i2c_smbus_read_byte_data(rv8803->client, RV8803_FLAG); in rv8803_set_time()
180 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_set_time()
184 ret = i2c_smbus_write_byte_data(rv8803->client, RV8803_FLAG, in rv8803_set_time()
187 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_set_time()
194 struct rv8803_data *rv8803 = dev_get_drvdata(dev); in rv8803_get_alarm() local
195 struct i2c_client *client = rv8803->client; in rv8803_get_alarm()
216 alrm->enabled = !!(rv8803->ctrl & RV8803_CTRL_AIE); in rv8803_get_alarm()
225 struct rv8803_data *rv8803 = dev_get_drvdata(dev); in rv8803_set_alarm() local
239 spin_lock_irqsave(&rv8803->flags_lock, irqflags); in rv8803_set_alarm()
243 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_set_alarm()
251 if (rv8803->ctrl & (RV8803_CTRL_AIE | RV8803_CTRL_UIE)) { in rv8803_set_alarm()
252 rv8803->ctrl &= ~(RV8803_CTRL_AIE | RV8803_CTRL_UIE); in rv8803_set_alarm()
253 err = i2c_smbus_write_byte_data(rv8803->client, RV8803_CTRL, in rv8803_set_alarm()
254 rv8803->ctrl); in rv8803_set_alarm()
256 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_set_alarm()
262 err = i2c_smbus_write_byte_data(rv8803->client, RV8803_FLAG, ctrl[1]); in rv8803_set_alarm()
263 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_set_alarm()
267 err = i2c_smbus_write_i2c_block_data(rv8803->client, RV8803_ALARM_MIN, in rv8803_set_alarm()
273 if (rv8803->rtc->uie_rtctimer.enabled) in rv8803_set_alarm()
274 rv8803->ctrl |= RV8803_CTRL_UIE; in rv8803_set_alarm()
275 if (rv8803->rtc->aie_timer.enabled) in rv8803_set_alarm()
276 rv8803->ctrl |= RV8803_CTRL_AIE; in rv8803_set_alarm()
278 err = i2c_smbus_write_byte_data(rv8803->client, RV8803_CTRL, in rv8803_set_alarm()
279 rv8803->ctrl); in rv8803_set_alarm()
290 struct rv8803_data *rv8803 = dev_get_drvdata(dev); in rv8803_alarm_irq_enable() local
294 ctrl = rv8803->ctrl; in rv8803_alarm_irq_enable()
297 if (rv8803->rtc->uie_rtctimer.enabled) in rv8803_alarm_irq_enable()
299 if (rv8803->rtc->aie_timer.enabled) in rv8803_alarm_irq_enable()
302 if (!rv8803->rtc->uie_rtctimer.enabled) in rv8803_alarm_irq_enable()
304 if (!rv8803->rtc->aie_timer.enabled) in rv8803_alarm_irq_enable()
308 spin_lock_irqsave(&rv8803->flags_lock, irqflags); in rv8803_alarm_irq_enable()
311 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_alarm_irq_enable()
316 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_alarm_irq_enable()
320 if (ctrl != rv8803->ctrl) { in rv8803_alarm_irq_enable()
321 rv8803->ctrl = ctrl; in rv8803_alarm_irq_enable()
323 rv8803->ctrl); in rv8803_alarm_irq_enable()
334 struct rv8803_data *rv8803 = dev_get_drvdata(dev); in rv8803_ioctl() local
358 spin_lock_irqsave(&rv8803->flags_lock, irqflags); in rv8803_ioctl()
361 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_ioctl()
367 spin_unlock_irqrestore(&rv8803->flags_lock, irqflags); in rv8803_ioctl()
430 struct rv8803_data *rv8803; in rv8803_probe() local
439 rv8803 = devm_kzalloc(&client->dev, sizeof(struct rv8803_data), in rv8803_probe()
441 if (!rv8803) in rv8803_probe()
444 rv8803->client = client; in rv8803_probe()
445 i2c_set_clientdata(client, rv8803); in rv8803_probe()
475 rv8803->rtc = devm_rtc_device_register(&client->dev, client->name, in rv8803_probe()
477 if (IS_ERR(rv8803->rtc)) { in rv8803_probe()
479 return PTR_ERR(rv8803->rtc); in rv8803_probe()
482 err = i2c_smbus_write_byte_data(rv8803->client, RV8803_EXT, in rv8803_probe()
491 rv8803->rtc->max_user_freq = 1; in rv8803_probe()