Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 308222
b: refs/heads/master
c: aa29d84
h: refs/heads/master
v: v3
  • Loading branch information
Sascha Hauer committed Apr 25, 2012
1 parent 277f194 commit 3ccb466
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7560e3f3581ed415828d3f431b8622fa38c2d133
refs/heads/master: aa29d840e3138fdf9459cc1e0101d6f25f8a48f4
30 changes: 19 additions & 11 deletions trunk/drivers/spi/spi-imx.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ struct spi_imx_data {
struct completion xfer_done;
void __iomem *base;
int irq;
struct clk *clk;
struct clk *clk_per;
struct clk *clk_ipg;
unsigned long spi_clk;

unsigned int count;
Expand Down Expand Up @@ -845,15 +846,22 @@ static int __devinit spi_imx_probe(struct platform_device *pdev)
goto out_iounmap;
}

spi_imx->clk = clk_get(&pdev->dev, NULL);
if (IS_ERR(spi_imx->clk)) {
dev_err(&pdev->dev, "unable to get clock\n");
ret = PTR_ERR(spi_imx->clk);
spi_imx->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
if (IS_ERR(spi_imx->clk_ipg)) {
ret = PTR_ERR(spi_imx->clk_ipg);
goto out_free_irq;
}

clk_enable(spi_imx->clk);
spi_imx->spi_clk = clk_get_rate(spi_imx->clk);
spi_imx->clk_per = devm_clk_get(&pdev->dev, "per");
if (IS_ERR(spi_imx->clk_per)) {
ret = PTR_ERR(spi_imx->clk_per);
goto out_free_irq;
}

clk_prepare_enable(spi_imx->clk_per);
clk_prepare_enable(spi_imx->clk_ipg);

spi_imx->spi_clk = clk_get_rate(spi_imx->clk_per);

spi_imx->devtype_data->reset(spi_imx);

Expand All @@ -871,8 +879,8 @@ static int __devinit spi_imx_probe(struct platform_device *pdev)
return ret;

out_clk_put:
clk_disable(spi_imx->clk);
clk_put(spi_imx->clk);
clk_disable_unprepare(spi_imx->clk_per);
clk_disable_unprepare(spi_imx->clk_ipg);
out_free_irq:
free_irq(spi_imx->irq, spi_imx);
out_iounmap:
Expand Down Expand Up @@ -900,8 +908,8 @@ static int __devexit spi_imx_remove(struct platform_device *pdev)
spi_bitbang_stop(&spi_imx->bitbang);

writel(0, spi_imx->base + MXC_CSPICTRL);
clk_disable(spi_imx->clk);
clk_put(spi_imx->clk);
clk_disable_unprepare(spi_imx->clk_per);
clk_disable_unprepare(spi_imx->clk_ipg);
free_irq(spi_imx->irq, spi_imx);
iounmap(spi_imx->base);

Expand Down

0 comments on commit 3ccb466

Please sign in to comment.