Lines Matching refs:priv
105 return regmap_write(priv->map, DS1343_TRICKLE_REG, val); in ds1343_ioctl()
117 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_glitchfilter() local
120 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_show_glitchfilter()
134 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_store_glitchfilter() local
137 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_store_glitchfilter()
148 regmap_write(priv->map, DS1343_CONTROL_REG, data); in ds1343_store_glitchfilter()
163 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_nvram_write() local
173 ret = regmap_bulk_write(priv->map, address, buf, count); in ds1343_nvram_write()
175 dev_err(&priv->spi->dev, "Error in nvram write %d", ret); in ds1343_nvram_write()
188 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_nvram_read() local
198 ret = regmap_bulk_read(priv->map, address, buf, count); in ds1343_nvram_read()
200 dev_err(&priv->spi->dev, "Error in nvram read %d\n", ret); in ds1343_nvram_read()
217 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_alarmstatus() local
220 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_show_alarmstatus()
235 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_alarmmode() local
239 regmap_read(priv->map, DS1343_ALM0_SEC_REG, &data); in ds1343_show_alarmmode()
242 regmap_read(priv->map, DS1343_ALM0_MIN_REG, &data); in ds1343_show_alarmmode()
245 regmap_read(priv->map, DS1343_ALM0_HOUR_REG, &data); in ds1343_show_alarmmode()
248 regmap_read(priv->map, DS1343_ALM0_DAY_REG, &data); in ds1343_show_alarmmode()
285 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_show_tricklecharger() local
289 regmap_read(priv->map, DS1343_TRICKLE_REG, &data); in ds1343_show_tricklecharger()
328 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_sysfs_register() local
343 if (priv->irq <= 0) in ds1343_sysfs_register()
370 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_sysfs_unregister() local
376 if (priv->irq <= 0) in ds1343_sysfs_unregister()
385 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_read_time() local
389 res = regmap_bulk_read(priv->map, DS1343_SECONDS_REG, buf, 7); in ds1343_read_time()
406 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_set_time() local
409 res = regmap_write(priv->map, DS1343_SECONDS_REG, in ds1343_set_time()
414 res = regmap_write(priv->map, DS1343_MINUTES_REG, in ds1343_set_time()
419 res = regmap_write(priv->map, DS1343_HOURS_REG, in ds1343_set_time()
424 res = regmap_write(priv->map, DS1343_DAY_REG, in ds1343_set_time()
429 res = regmap_write(priv->map, DS1343_DATE_REG, in ds1343_set_time()
434 res = regmap_write(priv->map, DS1343_MONTH_REG, in ds1343_set_time()
441 res = regmap_write(priv->map, DS1343_YEAR_REG, in ds1343_set_time()
451 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_update_alarm() local
456 res = regmap_read(priv->map, DS1343_CONTROL_REG, &control); in ds1343_update_alarm()
460 res = regmap_read(priv->map, DS1343_STATUS_REG, &stat); in ds1343_update_alarm()
467 res = regmap_write(priv->map, DS1343_CONTROL_REG, control); in ds1343_update_alarm()
471 res = regmap_write(priv->map, DS1343_STATUS_REG, stat); in ds1343_update_alarm()
475 buf[0] = priv->alarm_sec < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
476 0x80 : bin2bcd(priv->alarm_sec) & 0x7F; in ds1343_update_alarm()
477 buf[1] = priv->alarm_min < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
478 0x80 : bin2bcd(priv->alarm_min) & 0x7F; in ds1343_update_alarm()
479 buf[2] = priv->alarm_hour < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
480 0x80 : bin2bcd(priv->alarm_hour) & 0x3F; in ds1343_update_alarm()
481 buf[3] = priv->alarm_mday < 0 || (priv->irqen & RTC_UF) ? in ds1343_update_alarm()
482 0x80 : bin2bcd(priv->alarm_mday) & 0x7F; in ds1343_update_alarm()
484 res = regmap_bulk_write(priv->map, DS1343_ALM0_SEC_REG, buf, 4); in ds1343_update_alarm()
488 if (priv->irqen) { in ds1343_update_alarm()
490 res = regmap_write(priv->map, DS1343_CONTROL_REG, control); in ds1343_update_alarm()
498 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_read_alarm() local
502 if (priv->irq <= 0) in ds1343_read_alarm()
505 mutex_lock(&priv->mutex); in ds1343_read_alarm()
507 res = regmap_read(priv->map, DS1343_STATUS_REG, &stat); in ds1343_read_alarm()
511 alarm->enabled = !!(priv->irqen & RTC_AF); in ds1343_read_alarm()
514 alarm->time.tm_sec = priv->alarm_sec < 0 ? 0 : priv->alarm_sec; in ds1343_read_alarm()
515 alarm->time.tm_min = priv->alarm_min < 0 ? 0 : priv->alarm_min; in ds1343_read_alarm()
516 alarm->time.tm_hour = priv->alarm_hour < 0 ? 0 : priv->alarm_hour; in ds1343_read_alarm()
517 alarm->time.tm_mday = priv->alarm_mday < 0 ? 0 : priv->alarm_mday; in ds1343_read_alarm()
526 mutex_unlock(&priv->mutex); in ds1343_read_alarm()
532 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_set_alarm() local
535 if (priv->irq <= 0) in ds1343_set_alarm()
538 mutex_lock(&priv->mutex); in ds1343_set_alarm()
540 priv->alarm_sec = alarm->time.tm_sec; in ds1343_set_alarm()
541 priv->alarm_min = alarm->time.tm_min; in ds1343_set_alarm()
542 priv->alarm_hour = alarm->time.tm_hour; in ds1343_set_alarm()
543 priv->alarm_mday = alarm->time.tm_mday; in ds1343_set_alarm()
546 priv->irqen |= RTC_AF; in ds1343_set_alarm()
550 mutex_unlock(&priv->mutex); in ds1343_set_alarm()
557 struct ds1343_priv *priv = dev_get_drvdata(dev); in ds1343_alarm_irq_enable() local
560 if (priv->irq <= 0) in ds1343_alarm_irq_enable()
563 mutex_lock(&priv->mutex); in ds1343_alarm_irq_enable()
566 priv->irqen |= RTC_AF; in ds1343_alarm_irq_enable()
568 priv->irqen &= ~RTC_AF; in ds1343_alarm_irq_enable()
572 mutex_unlock(&priv->mutex); in ds1343_alarm_irq_enable()
579 struct ds1343_priv *priv = dev_id; in ds1343_thread() local
583 mutex_lock(&priv->mutex); in ds1343_thread()
585 res = regmap_read(priv->map, DS1343_STATUS_REG, &stat); in ds1343_thread()
591 regmap_write(priv->map, DS1343_STATUS_REG, stat); in ds1343_thread()
593 res = regmap_read(priv->map, DS1343_CONTROL_REG, &control); in ds1343_thread()
598 regmap_write(priv->map, DS1343_CONTROL_REG, control); in ds1343_thread()
600 rtc_update_irq(priv->rtc, 1, RTC_AF | RTC_IRQF); in ds1343_thread()
604 mutex_unlock(&priv->mutex); in ds1343_thread()
619 struct ds1343_priv *priv; in ds1343_probe() local
629 priv = devm_kzalloc(&spi->dev, sizeof(struct ds1343_priv), GFP_KERNEL); in ds1343_probe()
630 if (!priv) in ds1343_probe()
633 priv->spi = spi; in ds1343_probe()
634 mutex_init(&priv->mutex); in ds1343_probe()
645 spi_set_drvdata(spi, priv); in ds1343_probe()
647 priv->map = devm_regmap_init_spi(spi, &config); in ds1343_probe()
649 if (IS_ERR(priv->map)) { in ds1343_probe()
651 return PTR_ERR(priv->map); in ds1343_probe()
654 res = regmap_read(priv->map, DS1343_SECONDS_REG, &data); in ds1343_probe()
658 regmap_read(priv->map, DS1343_CONTROL_REG, &data); in ds1343_probe()
661 regmap_write(priv->map, DS1343_CONTROL_REG, data); in ds1343_probe()
663 regmap_read(priv->map, DS1343_STATUS_REG, &data); in ds1343_probe()
665 regmap_write(priv->map, DS1343_STATUS_REG, data); in ds1343_probe()
667 priv->rtc = devm_rtc_device_register(&spi->dev, "ds1343", in ds1343_probe()
669 if (IS_ERR(priv->rtc)) { in ds1343_probe()
671 return PTR_ERR(priv->rtc); in ds1343_probe()
674 priv->irq = spi->irq; in ds1343_probe()
676 if (priv->irq >= 0) { in ds1343_probe()
680 "ds1343", priv); in ds1343_probe()
682 priv->irq = -1; in ds1343_probe()
700 struct ds1343_priv *priv = spi_get_drvdata(spi); in ds1343_remove() local
703 mutex_lock(&priv->mutex); in ds1343_remove()
704 priv->irqen &= ~RTC_AF; in ds1343_remove()
705 mutex_unlock(&priv->mutex); in ds1343_remove()
707 devm_free_irq(&spi->dev, spi->irq, priv); in ds1343_remove()