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(-) -- 2.17.1