i2c: tegra: Create i2c_writesl_vi() to use with VI I2C for filling TX FIFO
authorSowjanya Komatineni <skomatineni@nvidia.com>
Tue, 12 Jan 2021 19:02:41 +0000 (11:02 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Feb 2021 14:37:15 +0000 (15:37 +0100)
commit40545c4dd90c96f8f4ecd7eac7b107e14f467619
treecd44f340c2fc527c1c89c843cfb46a2b9d31845c
parent6826f0b4a1591291e0a52d4138bfec8c1fc5e083
i2c: tegra: Create i2c_writesl_vi() to use with VI I2C for filling TX FIFO

[ Upstream commit 2f3a0828d46166d4e7df227479ed31766ee67e4a ]

VI I2C controller has known hardware bug where immediate multiple
writes to TX_FIFO register gets stuck.

Recommended software work around is to read I2C register after
each write to TX_FIFO register to flush out the data.

This patch implements this work around for VI I2C controller.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-tegra.c