According to the Goodix datasheet, the reset sequence will leave the reset line set to output high. To end the selection of the I2C address, we just need to set the input line to low for at least 50 ms and then set it to input floating (already implemented by goodix_int_sync). Remove setting the reset line to input from the reset sequence, since that is not reflected in the datasheet. This is based on Goodix datasheets for GT911 and GT9271 and on Goodix driver gt9xx.c for Android (publicly available in Android kernel trees for various devices). Suggested-by: Troy Kisky <troy.kisky@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Irina Tirdea <irina.tirdea@xxxxxxxxx> --- drivers/input/touchscreen/goodix.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c index 182ff9c..6fba804 100644 --- a/drivers/input/touchscreen/goodix.c +++ b/drivers/input/touchscreen/goodix.c @@ -454,10 +454,6 @@ static int goodix_reset(struct goodix_ts_data *ts) usleep_range(6000, 10000); /* T4: > 5ms */ /* end select I2C slave addr */ - error = gpiod_direction_input(ts->gpiod_rst); - if (error) - return error; - error = goodix_int_sync(ts); if (error) return error; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html