We have a board with an FT5446, which is close enough to a FT5506 (i.e. it also supports up to 10 touch points and has similar register layout) for this driver to work. However, on our board the iovcc and vcc regulators are indeed controllable (so not always-on), but there is no reset or wakeup gpio hooked up. Without a large enough delay between the regulator_enable() calls and edt_ft5x06_ts_identify(), the first edt_ft5x06_ts_readwrite() call fails with -ENXIO and thus the device fails to probe. So unconditionally do an mdelay(300) instead of only when a reset-gpio is present. Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> --- drivers/input/touchscreen/edt-ft5x06.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c index 9ac1378610bc..8bafa123083c 100644 --- a/drivers/input/touchscreen/edt-ft5x06.c +++ b/drivers/input/touchscreen/edt-ft5x06.c @@ -1239,8 +1239,8 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client, if (tsdata->reset_gpio) { usleep_range(5000, 6000); gpiod_set_value_cansleep(tsdata->reset_gpio, 0); - msleep(300); } + msleep(300); input = devm_input_allocate_device(&client->dev); if (!input) { -- 2.37.2