On 2/28/19 3:52 PM, Gareth Williams wrote:
From: Phil Edworthy <phil.edworthy@xxxxxxxxxxx> The Synopsys I2C Controller has an interface clock, but most SoCs hide this away. However, on some SoCs you need to explicitly enable the interface clock in order to access the registers. Therefore, add support for an optional interface clock. Signed-off-by: Phil Edworthy <phil.edworthy@xxxxxxxxxxx> Signed-off-by: Gareth Williams <gareth.williams.jx@xxxxxxxxxxx> Acked-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> --- v5: - Updated comments to reference "interface clock" instead of "peripheral clock". - Corrected spelling in commit message, changing "explicity" to "explicitly". v4: - Updated comments to reference "peripheral clock" instead of "bus clock". - Added Wolfram's Acked-by v3: - busclk renamed to pclk. - Added comment with dw_i2c_dev struct definition describing pclk. - Added enable rollback of first clock if second fails to enable. v2: - Use new devm_clk_get_optional() function as it simplifies handling when the optional clock is not present. --- drivers/i2c/busses/i2c-designware-common.c | 18 ++++++++++++++++-- drivers/i2c/busses/i2c-designware-core.h | 2 ++ drivers/i2c/busses/i2c-designware-platdrv.c | 5 +++++ 3 files changed, 23 insertions(+), 2 deletions(-)
Build & boot tested on linux-next that has the required commit 60b8f0ddf1a9 ("clk: Add (devm_)clk_get_optional() functions"). Acked-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> Tested-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>