diff options
author | Peter Griffin <peter.griffin@linaro.org> | 2015-09-28 00:35:28 +0100 |
---|---|---|
committer | Peter Griffin <peter.griffin@linaro.org> | 2015-09-28 00:37:36 +0100 |
commit | f46b898290f65df8be34355b947ff8584b6cd504 (patch) | |
tree | 7a7d8941e712b7c4830fed803978e1f5154d2ae8 | |
parent | 54fe9a7de0472bc47727099463bdc3ab3021afab (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.c | 7 |
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)) |