aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Griffin <peter.griffin@linaro.org>2015-09-28 00:35:28 +0100
committerPeter Griffin <peter.griffin@linaro.org>2015-09-28 00:37:36 +0100
commitf46b898290f65df8be34355b947ff8584b6cd504 (patch)
tree7a7d8941e712b7c4830fed803978e1f5154d2ae8
parent54fe9a7de0472bc47727099463bdc3ab3021afab (diff)
i2c: st: take an additional reference on i2c clockv4.2-rc3-c8sectpfe-fixes-v5
Due to the I2C clock being a critical clock on stih407 based platforms, we take an additional reference so that the clock is never disabled in the i2c_xfer function. Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
-rw-r--r--drivers/i2c/busses/i2c-st.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-st.c b/drivers/i2c/busses/i2c-st.c
index ea72dca32fdf..3a54164ed1aa 100644
--- a/drivers/i2c/busses/i2c-st.c
+++ b/drivers/i2c/busses/i2c-st.c
@@ -797,6 +797,13 @@ static int st_i2c_probe(struct platform_device *pdev)
return PTR_ERR(i2c_dev->clk);
}
+ /* HACK take an extra reference */
+ ret = clk_prepare_enable(i2c_dev->clk);
+ if (ret) {
+ dev_err(i2c_dev->dev, "Failed to prepare_enable clock\n");
+ return ret;
+ }
+
i2c_dev->mode = I2C_MODE_STANDARD;
ret = of_property_read_u32(np, "clock-frequency", &clk_rate);
if ((!ret) && (clk_rate == 400000))