ASoC: rt5514: Unconfuse the rt5514 at probe / resume time
authorDouglas Anderson <dianders@chromium.org>
Fri, 14 Apr 2017 16:40:32 +0000 (09:40 -0700)
committerMark Brown <broonie@kernel.org>
Fri, 14 Apr 2017 17:11:37 +0000 (18:11 +0100)
The rt5514 can get confused and incorrectly detect a start bit if the
SCL/SDA lines happen to both go low and then high again.  This
situation has been seen to happen at reboot time and is also
theoretically possible during suspend/resume if the rt5514 keeps power
but we shut down the i2c connection.

When this happens the rt5514 is confused about the state of the i2c
bus and won't recognize its own address.  That will lead to the rt5514
incorrectly NAKing the first transfer.

A single i2c transfer to any address should be enough to get the
rt5514 out of this funky state.

It is currently believed that this problem should be fixed in the
rt5514 driver itself because it seems that the i2c controller in the
rt5514 is easily confused.  Most i2c devices wouldn't detect a start
bit in this case.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>

No differences found