According to datasheet, mXT1386 chip has a WAKE line, it is used
to wake the chip up from deep sleep mode before communicating with
it via the I2C-compatible interface.
if the WAKE line is connected to a GPIO line, the line must be
asserted 25 ms before the host attempts to communicate with the
mXT1386.
If the WAKE line is connected to the SCL pin, the mXT1386 will send
a NACK on the first attempt to address it, the host must then retry
25 ms later.
This patch adds compatible string "atmel,mXT1386" for mXT1386 controller,
when I2C transfer on mXT1386 fails, retry the transfer once after a
25 ms sleep.
Jiada Wang (3):
dt-bindings: input: atmel: add compatible for mXT1386
Input: atmel_mxt_ts - implement I2C retries for mXT1368
ARM: tegra: add mXT1386 compatible
---
v3:
change compatible string to lowercase
v2:
add bool retry_i2c_transfers to struct mxt_data,
to indicate whether retry is needed when i2c transfer fails
v1: initial version
---
.../bindings/input/atmel,maxtouch.txt | 1 +
.../boot/dts/tegra20-acer-a500-picasso.dts | 2 +-
drivers/input/touchscreen/atmel_mxt_ts.c | 62 +++++++++++++++----
3 files changed, 52 insertions(+), 13 deletions(-)