aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJingchang Lu <b35083@freescale.com>2013-08-07 05:05:37 -0400
committerWolfram Sang <wsa@the-dreams.de>2013-08-15 10:11:41 -0400
commit46f2832b9f66b008fb813fe153f27794412fbc4f (patch)
tree02d4ff2b6d55bc720ac041223ae5171736d91ac0
parentd533f0492b6371025a4f88506c7f1828a7a48e81 (diff)
i2c: imx: enable clk before write to registers
The module clk should be enabled before write to its register in probe(), and the clk can be disabled after. Signed-off-by: Jingchang Lu <b35083@freescale.com> Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
-rw-r--r--drivers/i2c/busses/i2c-imx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 9167d4332d77..7adb35115d95 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -543,6 +543,11 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
543 return PTR_ERR(i2c_imx->clk); 543 return PTR_ERR(i2c_imx->clk);
544 } 544 }
545 545
546 ret = clk_prepare_enable(i2c_imx->clk);
547 if (ret) {
548 dev_err(&pdev->dev, "can't enable I2C clock\n");
549 return ret;
550 }
546 /* Request IRQ */ 551 /* Request IRQ */
547 ret = devm_request_irq(&pdev->dev, irq, i2c_imx_isr, 0, 552 ret = devm_request_irq(&pdev->dev, irq, i2c_imx_isr, 0,
548 pdev->name, i2c_imx); 553 pdev->name, i2c_imx);
@@ -580,6 +585,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
580 585
581 /* Set up platform driver data */ 586 /* Set up platform driver data */
582 platform_set_drvdata(pdev, i2c_imx); 587 platform_set_drvdata(pdev, i2c_imx);
588 clk_disable_unprepare(i2c_imx->clk);
583 589
584 dev_dbg(&i2c_imx->adapter.dev, "claimed irq %d\n", irq); 590 dev_dbg(&i2c_imx->adapter.dev, "claimed irq %d\n", irq);
585 dev_dbg(&i2c_imx->adapter.dev, "device resources from 0x%x to 0x%x\n", 591 dev_dbg(&i2c_imx->adapter.dev, "device resources from 0x%x to 0x%x\n",