Lines Matching refs:rk808_rtc
53 struct rk808_rtc {
99 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
100 struct rk808 *rk808 = rk808_rtc->rk808;
105 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->ctrl_reg,
119 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->ctrl_reg,
127 ret = regmap_bulk_read(rk808->regmap, rk808_rtc->creg->seconds_reg,
150 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
151 struct rk808 *rk808 = rk808_rtc->rk808;
166 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->ctrl_reg,
174 ret = regmap_bulk_write(rk808->regmap, rk808_rtc->creg->seconds_reg,
181 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->ctrl_reg,
193 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
194 struct rk808 *rk808 = rk808_rtc->rk808;
200 rk808_rtc->creg->alarm_seconds_reg,
215 ret = regmap_read(rk808->regmap, rk808_rtc->creg->int_reg, &int_reg);
229 static int rk808_rtc_stop_alarm(struct rk808_rtc *rk808_rtc)
231 struct rk808 *rk808 = rk808_rtc->rk808;
234 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->int_reg,
240 static int rk808_rtc_start_alarm(struct rk808_rtc *rk808_rtc)
242 struct rk808 *rk808 = rk808_rtc->rk808;
245 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->int_reg,
254 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
255 struct rk808 *rk808 = rk808_rtc->rk808;
259 ret = rk808_rtc_stop_alarm(rk808_rtc);
276 rk808_rtc->creg->alarm_seconds_reg,
283 ret = rk808_rtc_start_alarm(rk808_rtc);
295 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
298 return rk808_rtc_start_alarm(rk808_rtc);
300 return rk808_rtc_stop_alarm(rk808_rtc);
315 struct rk808_rtc *rk808_rtc = data;
316 struct rk808 *rk808 = rk808_rtc->rk808;
320 ret = regmap_write(rk808->regmap, rk808_rtc->creg->status_reg,
328 rtc_update_irq(rk808_rtc->rtc, 1, RTC_IRQF | RTC_AF);
346 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
349 enable_irq_wake(rk808_rtc->irq);
359 struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
362 disable_irq_wake(rk808_rtc->irq);
390 struct rk808_rtc *rk808_rtc;
393 rk808_rtc = devm_kzalloc(&pdev->dev, sizeof(*rk808_rtc), GFP_KERNEL);
394 if (rk808_rtc == NULL)
400 rk808_rtc->creg = &rk817_creg;
403 rk808_rtc->creg = &rk808_creg;
406 platform_set_drvdata(pdev, rk808_rtc);
407 rk808_rtc->rk808 = rk808;
410 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->ctrl_reg,
420 ret = regmap_write(rk808->regmap, rk808_rtc->creg->status_reg,
430 rk808_rtc->rtc = devm_rtc_allocate_device(&pdev->dev);
431 if (IS_ERR(rk808_rtc->rtc))
432 return PTR_ERR(rk808_rtc->rtc);
434 rk808_rtc->rtc->ops = &rk808_rtc_ops;
436 rk808_rtc->irq = platform_get_irq(pdev, 0);
437 if (rk808_rtc->irq < 0)
438 return rk808_rtc->irq;
441 ret = devm_request_threaded_irq(&pdev->dev, rk808_rtc->irq, NULL,
443 "RTC alarm", rk808_rtc);
446 rk808_rtc->irq, ret);
450 return rtc_register_device(rk808_rtc->rtc);