Lines Matching refs:ds3232

52 struct ds3232 {  struct
194 struct ds3232 *ds3232 = i2c_get_clientdata(client); in ds3232_read_alarm() local
199 mutex_lock(&ds3232->mutex); in ds3232_read_alarm()
229 mutex_unlock(&ds3232->mutex); in ds3232_read_alarm()
240 struct ds3232 *ds3232 = i2c_get_clientdata(client); in ds3232_set_alarm() local
248 mutex_lock(&ds3232->mutex); in ds3232_set_alarm()
282 mutex_unlock(&ds3232->mutex); in ds3232_set_alarm()
288 struct ds3232 *ds3232 = i2c_get_clientdata(client); in ds3232_update_alarm() local
293 mutex_lock(&ds3232->mutex); in ds3232_update_alarm()
299 buf[0] = bcd2bin(buf[0]) < 0 || (ds3232->rtc->irq_data & RTC_UF) ? in ds3232_update_alarm()
301 buf[1] = bcd2bin(buf[1]) < 0 || (ds3232->rtc->irq_data & RTC_UF) ? in ds3232_update_alarm()
303 buf[2] = bcd2bin(buf[2]) < 0 || (ds3232->rtc->irq_data & RTC_UF) ? in ds3232_update_alarm()
305 buf[3] = bcd2bin(buf[3]) < 0 || (ds3232->rtc->irq_data & RTC_UF) ? in ds3232_update_alarm()
316 if (ds3232->rtc->irq_data & (RTC_AF | RTC_UF)) in ds3232_update_alarm()
325 mutex_unlock(&ds3232->mutex); in ds3232_update_alarm()
331 struct ds3232 *ds3232 = i2c_get_clientdata(client); in ds3232_alarm_irq_enable() local
337 ds3232->rtc->irq_data |= RTC_AF; in ds3232_alarm_irq_enable()
339 ds3232->rtc->irq_data &= ~RTC_AF; in ds3232_alarm_irq_enable()
348 struct ds3232 *ds3232 = i2c_get_clientdata(client); in ds3232_irq() local
357 if (!ds3232->suspended) in ds3232_irq()
358 schedule_work(&ds3232->work); in ds3232_irq()
365 struct ds3232 *ds3232 = container_of(work, struct ds3232, work); in ds3232_work() local
366 struct i2c_client *client = ds3232->client; in ds3232_work()
369 mutex_lock(&ds3232->mutex); in ds3232_work()
390 rtc_update_irq(ds3232->rtc, 1, RTC_AF | RTC_IRQF); in ds3232_work()
392 if (!ds3232->exiting) in ds3232_work()
398 mutex_unlock(&ds3232->mutex); in ds3232_work()
412 struct ds3232 *ds3232; in ds3232_probe() local
415 ds3232 = devm_kzalloc(&client->dev, sizeof(struct ds3232), GFP_KERNEL); in ds3232_probe()
416 if (!ds3232) in ds3232_probe()
419 ds3232->client = client; in ds3232_probe()
420 i2c_set_clientdata(client, ds3232); in ds3232_probe()
422 INIT_WORK(&ds3232->work, ds3232_work); in ds3232_probe()
423 mutex_init(&ds3232->mutex); in ds3232_probe()
437 ds3232->rtc = devm_rtc_device_register(&client->dev, client->name, in ds3232_probe()
439 return PTR_ERR_OR_ZERO(ds3232->rtc); in ds3232_probe()
444 struct ds3232 *ds3232 = i2c_get_clientdata(client); in ds3232_remove() local
447 mutex_lock(&ds3232->mutex); in ds3232_remove()
448 ds3232->exiting = 1; in ds3232_remove()
449 mutex_unlock(&ds3232->mutex); in ds3232_remove()
452 cancel_work_sync(&ds3232->work); in ds3232_remove()
461 struct ds3232 *ds3232 = dev_get_drvdata(dev); in ds3232_suspend() local
465 ds3232->suspended = true; in ds3232_suspend()
474 struct ds3232 *ds3232 = dev_get_drvdata(dev); in ds3232_resume() local
477 if (ds3232->suspended) { in ds3232_resume()
478 ds3232->suspended = false; in ds3232_resume()
481 schedule_work(&ds3232->work); in ds3232_resume()