aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-omap-uwire.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi-omap-uwire.c')
-rw-r--r--drivers/spi/spi-omap-uwire.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/spi/spi-omap-uwire.c b/drivers/spi/spi-omap-uwire.c
index 0f5a0aa3b871..8bca90a19dd1 100644
--- a/drivers/spi/spi-omap-uwire.c
+++ b/drivers/spi/spi-omap-uwire.c
@@ -41,14 +41,15 @@
41#include <linux/err.h> 41#include <linux/err.h>
42#include <linux/clk.h> 42#include <linux/clk.h>
43#include <linux/slab.h> 43#include <linux/slab.h>
44#include <linux/device.h>
44 45
45#include <linux/spi/spi.h> 46#include <linux/spi/spi.h>
46#include <linux/spi/spi_bitbang.h> 47#include <linux/spi/spi_bitbang.h>
47#include <linux/module.h> 48#include <linux/module.h>
49#include <linux/io.h>
48 50
49#include <asm/irq.h> 51#include <asm/irq.h>
50#include <mach/hardware.h> 52#include <mach/hardware.h>
51#include <asm/io.h>
52#include <asm/mach-types.h> 53#include <asm/mach-types.h>
53 54
54#include <mach/mux.h> 55#include <mach/mux.h>
@@ -447,7 +448,6 @@ static void uwire_off(struct uwire_spi *uwire)
447{ 448{
448 uwire_write_reg(UWIRE_SR3, 0); 449 uwire_write_reg(UWIRE_SR3, 0);
449 clk_disable(uwire->ck); 450 clk_disable(uwire->ck);
450 clk_put(uwire->ck);
451 spi_master_put(uwire->bitbang.master); 451 spi_master_put(uwire->bitbang.master);
452} 452}
453 453
@@ -463,7 +463,7 @@ static int uwire_probe(struct platform_device *pdev)
463 463
464 uwire = spi_master_get_devdata(master); 464 uwire = spi_master_get_devdata(master);
465 465
466 uwire_base = ioremap(UWIRE_BASE_PHYS, UWIRE_IO_SIZE); 466 uwire_base = devm_ioremap(&pdev->dev, UWIRE_BASE_PHYS, UWIRE_IO_SIZE);
467 if (!uwire_base) { 467 if (!uwire_base) {
468 dev_dbg(&pdev->dev, "can't ioremap UWIRE\n"); 468 dev_dbg(&pdev->dev, "can't ioremap UWIRE\n");
469 spi_master_put(master); 469 spi_master_put(master);
@@ -472,12 +472,11 @@ static int uwire_probe(struct platform_device *pdev)
472 472
473 platform_set_drvdata(pdev, uwire); 473 platform_set_drvdata(pdev, uwire);
474 474
475 uwire->ck = clk_get(&pdev->dev, "fck"); 475 uwire->ck = devm_clk_get(&pdev->dev, "fck");
476 if (IS_ERR(uwire->ck)) { 476 if (IS_ERR(uwire->ck)) {
477 status = PTR_ERR(uwire->ck); 477 status = PTR_ERR(uwire->ck);
478 dev_dbg(&pdev->dev, "no functional clock?\n"); 478 dev_dbg(&pdev->dev, "no functional clock?\n");
479 spi_master_put(master); 479 spi_master_put(master);
480 iounmap(uwire_base);
481 return status; 480 return status;
482 } 481 }
483 clk_enable(uwire->ck); 482 clk_enable(uwire->ck);
@@ -507,7 +506,6 @@ static int uwire_probe(struct platform_device *pdev)
507 status = spi_bitbang_start(&uwire->bitbang); 506 status = spi_bitbang_start(&uwire->bitbang);
508 if (status < 0) { 507 if (status < 0) {
509 uwire_off(uwire); 508 uwire_off(uwire);
510 iounmap(uwire_base);
511 } 509 }
512 return status; 510 return status;
513} 511}
@@ -520,7 +518,6 @@ static int uwire_remove(struct platform_device *pdev)
520 518
521 spi_bitbang_stop(&uwire->bitbang); 519 spi_bitbang_stop(&uwire->bitbang);
522 uwire_off(uwire); 520 uwire_off(uwire);
523 iounmap(uwire_base);
524 return 0; 521 return 0;
525} 522}
526 523