summaryrefslogtreecommitdiff
path: root/drivers/rtc/rtc-mpc5121.c
diff options
context:
space:
mode:
authorAlexandre Belloni <alexandre.belloni@bootlin.com>2020-03-06 08:44:01 +0100
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2020-03-16 11:12:10 +0100
commitfffbe10e2fd3a92a401cbcbb77da7f67fe900eeb (patch)
treea6e56d945215b27e15eab11c43fc3ef92b31fb70 /drivers/rtc/rtc-mpc5121.c
parentd53d4ae981d065a63423b0fe64d18827ed540349 (diff)
rtc: mpc5121: convert to devm_rtc_allocate_device
This simplifies the path for the rtc_ops selection. Link: https://lore.kernel.org/r/20200306074404.58909-2-alexandre.belloni@bootlin.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers/rtc/rtc-mpc5121.c')
-rw-r--r--drivers/rtc/rtc-mpc5121.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c
index 9e4454d35352..845212fd1e33 100644
--- a/drivers/rtc/rtc-mpc5121.c
+++ b/drivers/rtc/rtc-mpc5121.c
@@ -344,6 +344,15 @@ static int mpc5121_rtc_probe(struct platform_device *op)
goto out_dispose2;
}
+ rtc->rtc = devm_rtc_allocate_device(&op->dev);
+ if (IS_ERR(rtc->rtc)) {
+ err = PTR_ERR(rtc->rtc);
+ goto out_dispose2;
+ }
+
+ rtc->rtc->ops = &mpc5200_rtc_ops;
+ rtc->rtc->uie_unsupported = 1;
+
if (of_device_is_compatible(op->dev.of_node, "fsl,mpc5121-rtc")) {
u32 ka;
ka = in_be32(&rtc->regs->keep_alive);
@@ -352,19 +361,12 @@ static int mpc5121_rtc_probe(struct platform_device *op)
"mpc5121-rtc: Battery or oscillator failure!\n");
out_be32(&rtc->regs->keep_alive, ka);
}
-
- rtc->rtc = devm_rtc_device_register(&op->dev, "mpc5121-rtc",
- &mpc5121_rtc_ops, THIS_MODULE);
- } else {
- rtc->rtc = devm_rtc_device_register(&op->dev, "mpc5200-rtc",
- &mpc5200_rtc_ops, THIS_MODULE);
+ rtc->rtc->ops = &mpc5121_rtc_ops;
}
- if (IS_ERR(rtc->rtc)) {
- err = PTR_ERR(rtc->rtc);
+ err = rtc_register_device(rtc->rtc);
+ if (err)
goto out_dispose2;
- }
- rtc->rtc->uie_unsupported = 1;
return 0;