diff options
Diffstat (limited to 'drivers/spi/spi-omap-uwire.c')
-rw-r--r-- | drivers/spi/spi-omap-uwire.c | 11 |
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 | ||