rtc: ds1685: use devm_platform_ioremap_resource helper
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Fri, 11 Oct 2019 15:05:44 +0000 (17:05 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 14 Oct 2019 15:49:22 +0000 (17:49 +0200)
Simplify ioremapping of registers by using devm_platform_ioremap_resource.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Acked-by: Joshua Kinard <kumba@gentoo.org>
Link: https://lore.kernel.org/r/20191011150546.9186-2-tbogendoerfer@suse.de
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-ds1685.c
include/linux/rtc/ds1685.h

index 51f5684..349a8d1 100644 (file)
@@ -1040,7 +1040,6 @@ static int
 ds1685_rtc_probe(struct platform_device *pdev)
 {
        struct rtc_device *rtc_dev;
-       struct resource *res;
        struct ds1685_priv *rtc;
        struct ds1685_rtc_platform_data *pdata;
        u8 ctrla, ctrlb, hours;
@@ -1070,25 +1069,9 @@ ds1685_rtc_probe(struct platform_device *pdev)
         * that sits behind the IOC3 PCI metadevice.
         */
        if (pdata->alloc_io_resources) {
-               /* Get the platform resources. */
-               res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-               if (!res)
-                       return -ENXIO;
-               rtc->size = resource_size(res);
-
-               /* Request a memory region. */
-               /* XXX: mmio-only for now. */
-               if (!devm_request_mem_region(&pdev->dev, res->start, rtc->size,
-                                            pdev->name))
-                       return -EBUSY;
-
-               /*
-                * Set the base address for the rtc, and ioremap its
-                * registers.
-                */
-               rtc->regs = devm_ioremap(&pdev->dev, res->start, rtc->size);
-               if (!rtc->regs)
-                       return -ENOMEM;
+               rtc->regs = devm_platform_ioremap_resource(pdev, 0);
+               if (IS_ERR(rtc->regs))
+                       return PTR_ERR(rtc->regs);
        }
 
        /* Get the register step size. */
index b9671d0..101c7ad 100644 (file)
@@ -43,7 +43,6 @@ struct ds1685_priv {
        struct rtc_device *dev;
        void __iomem *regs;
        u32 regstep;
-       size_t size;
        int irq_num;
        bool bcd_mode;
        bool no_irq;