]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
i2c: exynos5: rework HSI2C_MASTER_ST_LOSE state handling
authorAndrzej Hajda <a.hajda@samsung.com>
Tue, 27 Feb 2018 07:19:00 +0000 (08:19 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Tue, 27 Feb 2018 12:47:28 +0000 (13:47 +0100)
commit939c5a46e5cac7524b327d43ae826fd6941fa2aa
tree706ab3e1949cb7a35f9ebf098e3afa7db309536f
parent41b1d4de96323e84c0a902e7e4b2c0f367e77f92
i2c: exynos5: rework HSI2C_MASTER_ST_LOSE state handling

HSI2C_MASTER_ST_LOSE state is not documented properly, extensive tests
show that hardware is usually able to recover from this state without
interrupting the transfer. Moreover documentation says that
such state can be caused by slave clock stretching, and should not be
treated as an error during transaction. The only place it indicates
an error is just before starting transaction. In such case bus recovery
procedure should be performed - master should pulse SCL line nine times
and then send STOP condition, it can be repeated until SDA goes high.
The procedure can be performed using manual commands HSI2C_CMD_READ_DATA
and HSI2C_CMD_SEND_STOP.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-exynos5.c