Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions drivers/input/touchscreen/goodix.c
Original file line number Diff line number Diff line change
Expand Up @@ -1378,6 +1378,17 @@ static int goodix_ts_probe(struct i2c_client *client)
ts->reset_controller_at_probe = true;
goto reset;
}
/*
* Without reset/irq GPIOs the controller reset is sequenced
* externally (e.g. by the display MCU on the Raspberry Pi
* Touch Display 2) and the controller may simply not be out
* of reset yet. Defer probing so it is retried once the rest

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The GT911 should be out of reset before goodix_i2c_test completes as the overlay includes

startup-delay-us = <50000>;

on the regulator, so that's at least 50ms, and then goodix_i2c_test includes a retry with 20ms timeout.

* of the display stack has been brought up.
*/
if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE)
return dev_err_probe(&client->dev, -EPROBE_DEFER,
"I2C communication failure: %d\n",
error);
dev_err(&client->dev, "I2C communication failure: %d\n", error);
return error;
}
Expand Down
Loading