Lines Matching refs:priv

106 		return regmap_write(priv->map, DS1343_TRICKLE_REG, val);  in ds1343_ioctl()
118 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_glitchfilter() local
121 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_show_glitchfilter()
135 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_store_glitchfilter() local
138 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_store_glitchfilter()
149 regmap_write(priv->map, DS1343_CONTROL_REG, data); in ds1343_store_glitchfilter()
164 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_nvram_write() local
168 ret = regmap_bulk_write(priv->map, address, buf, count); in ds1343_nvram_write()
170 dev_err(&priv->spi->dev, "Error in nvram write %d", ret); in ds1343_nvram_write()
183 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_nvram_read() local
187 ret = regmap_bulk_read(priv->map, address, buf, count); in ds1343_nvram_read()
189 dev_err(&priv->spi->dev, "Error in nvram read %d\n", ret); in ds1343_nvram_read()
206 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_alarmstatus() local
209 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_show_alarmstatus()
224 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_alarmmode() local
228 regmap_read(priv->map, DS1343_ALM0_SEC_REG, &data); in ds1343_show_alarmmode()
231 regmap_read(priv->map, DS1343_ALM0_MIN_REG, &data); in ds1343_show_alarmmode()
234 regmap_read(priv->map, DS1343_ALM0_HOUR_REG, &data); in ds1343_show_alarmmode()
237 regmap_read(priv->map, DS1343_ALM0_DAY_REG, &data); in ds1343_show_alarmmode()
274 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_tricklecharger() local
278 regmap_read(priv->map, DS1343_TRICKLE_REG, &data); in ds1343_show_tricklecharger()
317 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_sysfs_register() local
332 if (priv->irq <= 0) in ds1343_sysfs_register()
359 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_sysfs_unregister() local
365 if (priv->irq <= 0) in ds1343_sysfs_unregister()
374 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_read_time() local
378 res = regmap_bulk_read(priv->map, DS1343_SECONDS_REG, buf, 7); in ds1343_read_time()
395 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_set_time() local
398 res = regmap_write(priv->map, DS1343_SECONDS_REG, in ds1343_set_time()
403 res = regmap_write(priv->map, DS1343_MINUTES_REG, in ds1343_set_time()
408 res = regmap_write(priv->map, DS1343_HOURS_REG, in ds1343_set_time()
413 res = regmap_write(priv->map, DS1343_DAY_REG, in ds1343_set_time()
418 res = regmap_write(priv->map, DS1343_DATE_REG, in ds1343_set_time()
423 res = regmap_write(priv->map, DS1343_MONTH_REG, in ds1343_set_time()
430 res = regmap_write(priv->map, DS1343_YEAR_REG, in ds1343_set_time()
440 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_update_alarm() local
445 res = regmap_read(priv->map, DS1343_CONTROL_REG, &control); in ds1343_update_alarm()
449 res = regmap_read(priv->map, DS1343_STATUS_REG, &stat); in ds1343_update_alarm()
456 res = regmap_write(priv->map, DS1343_CONTROL_REG, control); in ds1343_update_alarm()
460 res = regmap_write(priv->map, DS1343_STATUS_REG, stat); in ds1343_update_alarm()
464 buf[0] = priv->alarm_sec < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
465 0x80 : bin2bcd(priv->alarm_sec) & 0x7F; in ds1343_update_alarm()
466 buf[1] = priv->alarm_min < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
467 0x80 : bin2bcd(priv->alarm_min) & 0x7F; in ds1343_update_alarm()
468 buf[2] = priv->alarm_hour < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
469 0x80 : bin2bcd(priv->alarm_hour) & 0x3F; in ds1343_update_alarm()
470 buf[3] = priv->alarm_mday < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
471 0x80 : bin2bcd(priv->alarm_mday) & 0x7F; in ds1343_update_alarm()
473 res = regmap_bulk_write(priv->map, DS1343_ALM0_SEC_REG, buf, 4); in ds1343_update_alarm()
477 if (priv->irqen) { in ds1343_update_alarm()
479 res = regmap_write(priv->map, DS1343_CONTROL_REG, control); in ds1343_update_alarm()
487 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_read_alarm() local
491 if (priv->irq <= 0) in ds1343_read_alarm()
494 mutex_lock(&priv->mutex); in ds1343_read_alarm()
496 res = regmap_read(priv->map, DS1343_STATUS_REG, &stat); in ds1343_read_alarm()
500 alarm->enabled = !!(priv->irqen & RTC_AF); in ds1343_read_alarm()
503 alarm->time.tm_sec = priv->alarm_sec < 0 ? 0 : priv->alarm_sec; in ds1343_read_alarm()
504 alarm->time.tm_min = priv->alarm_min < 0 ? 0 : priv->alarm_min; in ds1343_read_alarm()
505 alarm->time.tm_hour = priv->alarm_hour < 0 ? 0 : priv->alarm_hour; in ds1343_read_alarm()
506 alarm->time.tm_mday = priv->alarm_mday < 0 ? 0 : priv->alarm_mday; in ds1343_read_alarm()
515 mutex_unlock(&priv->mutex); in ds1343_read_alarm()
521 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_set_alarm() local
524 if (priv->irq <= 0) in ds1343_set_alarm()
527 mutex_lock(&priv->mutex); in ds1343_set_alarm()
529 priv->alarm_sec = alarm->time.tm_sec; in ds1343_set_alarm()
530 priv->alarm_min = alarm->time.tm_min; in ds1343_set_alarm()
531 priv->alarm_hour = alarm->time.tm_hour; in ds1343_set_alarm()
532 priv->alarm_mday = alarm->time.tm_mday; in ds1343_set_alarm()
535 priv->irqen |= RTC_AF; in ds1343_set_alarm()
539 mutex_unlock(&priv->mutex); in ds1343_set_alarm()
546 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_alarm_irq_enable() local
549 if (priv->irq <= 0) in ds1343_alarm_irq_enable()
552 mutex_lock(&priv->mutex); in ds1343_alarm_irq_enable()
555 priv->irqen |= RTC_AF; in ds1343_alarm_irq_enable()
557 priv->irqen &= ~RTC_AF; in ds1343_alarm_irq_enable()
561 mutex_unlock(&priv->mutex); in ds1343_alarm_irq_enable()
568 struct ds1343_priv *priv = dev_id; in ds1343_thread() local
572 mutex_lock(&priv->mutex); in ds1343_thread()
574 res = regmap_read(priv->map, DS1343_STATUS_REG, &stat); in ds1343_thread()
580 regmap_write(priv->map, DS1343_STATUS_REG, stat); in ds1343_thread()
582 res = regmap_read(priv->map, DS1343_CONTROL_REG, &control); in ds1343_thread()
587 regmap_write(priv->map, DS1343_CONTROL_REG, control); in ds1343_thread()
589 rtc_update_irq(priv->rtc, 1, RTC_AF | RTC_IRQF); in ds1343_thread()
593 mutex_unlock(&priv->mutex); in ds1343_thread()
608 struct ds1343_priv *priv; in ds1343_probe() local
618 priv = devm_kzalloc(&spi->dev, sizeof(struct ds1343_priv), GFP_KERNEL); in ds1343_probe()
619 if (!priv) in ds1343_probe()
622 priv->spi = spi; in ds1343_probe()
623 mutex_init(&priv->mutex); in ds1343_probe()
634 spi_set_drvdata(spi, priv); in ds1343_probe()
636 priv->map = devm_regmap_init_spi(spi, &config); in ds1343_probe()
638 if (IS_ERR(priv->map)) { in ds1343_probe()
640 return PTR_ERR(priv->map); in ds1343_probe()
643 res = regmap_read(priv->map, DS1343_SECONDS_REG, &data); in ds1343_probe()
647 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_probe()
650 regmap_write(priv->map, DS1343_CONTROL_REG, data); in ds1343_probe()
652 regmap_read(priv->map, DS1343_STATUS_REG, &data); in ds1343_probe()
654 regmap_write(priv->map, DS1343_STATUS_REG, data); in ds1343_probe()
656 priv->rtc = devm_rtc_device_register(&spi->dev, "ds1343", in ds1343_probe()
658 if (IS_ERR(priv->rtc)) { in ds1343_probe()
660 return PTR_ERR(priv->rtc); in ds1343_probe()
663 priv->irq = spi->irq; in ds1343_probe()
665 if (priv->irq >= 0) { in ds1343_probe()
668 "ds1343", priv); in ds1343_probe()
670 priv->irq = -1; in ds1343_probe()
689 struct ds1343_priv *priv = spi_get_drvdata(spi); in ds1343_remove() local
692 mutex_lock(&priv->mutex); in ds1343_remove()
693 priv->irqen &= ~RTC_AF; in ds1343_remove()
694 mutex_unlock(&priv->mutex); in ds1343_remove()
698 devm_free_irq(&spi->dev, spi->irq, priv); in ds1343_remove()