aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-07-28 09:38:06 -0400
committerMark Brown <broonie@linaro.org>2013-07-29 07:41:01 -0400
commit1729ce3441ad849e63403fa4347fa86e052559a5 (patch)
treed1da14aba35bed8dea1adfe5f60097dfd642dd99
parent3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b (diff)
spi/orion: Convert to devm_ioremap_resource()
Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Andrew Lunn <andrew@lunn.ch>
-rw-r--r--drivers/spi/spi-orion.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/spi/spi-orion.c b/drivers/spi/spi-orion.c
index 5d90bebaa0fa..551bea774fd8 100644
--- a/drivers/spi/spi-orion.c
+++ b/drivers/spi/spi-orion.c
@@ -446,30 +446,22 @@ static int orion_spi_probe(struct platform_device *pdev)
446 spi->min_speed = DIV_ROUND_UP(tclk_hz, 30); 446 spi->min_speed = DIV_ROUND_UP(tclk_hz, 30);
447 447
448 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 448 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
449 if (r == NULL) { 449 spi->base = devm_ioremap_resource(&pdev->dev, r);
450 status = -ENODEV; 450 if (IS_ERR(spi->base)) {
451 status = PTR_ERR(spi->base);
451 goto out_rel_clk; 452 goto out_rel_clk;
452 } 453 }
453 454
454 if (!request_mem_region(r->start, resource_size(r),
455 dev_name(&pdev->dev))) {
456 status = -EBUSY;
457 goto out_rel_clk;
458 }
459 spi->base = ioremap(r->start, SZ_1K);
460
461 if (orion_spi_reset(spi) < 0) 455 if (orion_spi_reset(spi) < 0)
462 goto out_rel_mem; 456 goto out_rel_clk;
463 457
464 master->dev.of_node = pdev->dev.of_node; 458 master->dev.of_node = pdev->dev.of_node;
465 status = spi_register_master(master); 459 status = spi_register_master(master);
466 if (status < 0) 460 if (status < 0)
467 goto out_rel_mem; 461 goto out_rel_clk;
468 462
469 return status; 463 return status;
470 464
471out_rel_mem:
472 release_mem_region(r->start, resource_size(r));
473out_rel_clk: 465out_rel_clk:
474 clk_disable_unprepare(spi->clk); 466 clk_disable_unprepare(spi->clk);
475 clk_put(spi->clk); 467 clk_put(spi->clk);
@@ -482,7 +474,6 @@ out:
482static int orion_spi_remove(struct platform_device *pdev) 474static int orion_spi_remove(struct platform_device *pdev)
483{ 475{
484 struct spi_master *master; 476 struct spi_master *master;
485 struct resource *r;
486 struct orion_spi *spi; 477 struct orion_spi *spi;
487 478
488 master = platform_get_drvdata(pdev); 479 master = platform_get_drvdata(pdev);
@@ -491,9 +482,6 @@ static int orion_spi_remove(struct platform_device *pdev)
491 clk_disable_unprepare(spi->clk); 482 clk_disable_unprepare(spi->clk);
492 clk_put(spi->clk); 483 clk_put(spi->clk);
493 484
494 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
495 release_mem_region(r->start, resource_size(r));
496
497 spi_unregister_master(master); 485 spi_unregister_master(master);
498 486
499 return 0; 487 return 0;