spi: omap-uwire: Fix build error
[firefly-linux-kernel-4.4.55.git] / drivers / spi / spi-omap-uwire.c
index 0f5a0aa3b871d3c725edc489a03e97d838b3d6a9..8bca90a19dd1ed2308c75259eeb40aacefb53ddb 100644 (file)
 #include <linux/err.h>
 #include <linux/clk.h>
 #include <linux/slab.h>
+#include <linux/device.h>
 
 #include <linux/spi/spi.h>
 #include <linux/spi/spi_bitbang.h>
 #include <linux/module.h>
+#include <linux/io.h>
 
 #include <asm/irq.h>
 #include <mach/hardware.h>
-#include <asm/io.h>
 #include <asm/mach-types.h>
 
 #include <mach/mux.h>
@@ -447,7 +448,6 @@ static void uwire_off(struct uwire_spi *uwire)
 {
        uwire_write_reg(UWIRE_SR3, 0);
        clk_disable(uwire->ck);
-       clk_put(uwire->ck);
        spi_master_put(uwire->bitbang.master);
 }
 
@@ -463,7 +463,7 @@ static int uwire_probe(struct platform_device *pdev)
 
        uwire = spi_master_get_devdata(master);
 
-       uwire_base = ioremap(UWIRE_BASE_PHYS, UWIRE_IO_SIZE);
+       uwire_base = devm_ioremap(&pdev->dev, UWIRE_BASE_PHYS, UWIRE_IO_SIZE);
        if (!uwire_base) {
                dev_dbg(&pdev->dev, "can't ioremap UWIRE\n");
                spi_master_put(master);
@@ -472,12 +472,11 @@ static int uwire_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, uwire);
 
-       uwire->ck = clk_get(&pdev->dev, "fck");
+       uwire->ck = devm_clk_get(&pdev->dev, "fck");
        if (IS_ERR(uwire->ck)) {
                status = PTR_ERR(uwire->ck);
                dev_dbg(&pdev->dev, "no functional clock?\n");
                spi_master_put(master);
-               iounmap(uwire_base);
                return status;
        }
        clk_enable(uwire->ck);
@@ -507,7 +506,6 @@ static int uwire_probe(struct platform_device *pdev)
        status = spi_bitbang_start(&uwire->bitbang);
        if (status < 0) {
                uwire_off(uwire);
-               iounmap(uwire_base);
        }
        return status;
 }
@@ -520,7 +518,6 @@ static int uwire_remove(struct platform_device *pdev)
 
        spi_bitbang_stop(&uwire->bitbang);
        uwire_off(uwire);
-       iounmap(uwire_base);
        return 0;
 }