(spi->max_speed_hz + 500) / 1000);
/* Finalize the initialization */
- rtc = devm_rtc_device_register(&spi->dev, pcf2123_driver.driver.name,
- &pcf2123_rtc_ops, THIS_MODULE);
-
- if (IS_ERR(rtc)) {
- dev_err(&spi->dev, "failed to register.\n");
+ rtc = devm_rtc_allocate_device(&spi->dev);
+ if (IS_ERR(rtc))
return PTR_ERR(rtc);
- }
pcf2123->rtc = rtc;
-
/* Register alarm irq */
if (spi->irq > 0) {
ret = devm_request_threaded_irq(&spi->dev, spi->irq, NULL,
* support to this driver to generate interrupts more than once
* per minute.
*/
- pcf2123->rtc->uie_unsupported = 1;
+ rtc->uie_unsupported = 1;
+ rtc->ops = &pcf2123_rtc_ops;
+
+ ret = rtc_register_device(rtc);
+ if (ret)
+ return ret;
return 0;
}