I solved the problem. It's a driver-related issue, but it's something that exists in all drivers including the latest one. Probably this problem have ignored since nobody paid attention to the 64-second delay. However, for fast-opening devices it is important.
There is a section in the driver where it searches for the configuration file. If the configuration file is not found, it continues, but the part where the file is searched creates a time delay. In goodix.c file;
static int goodix_ts_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct goodix_ts_data *ts;
int error;
......
......
if (ts->gpiod_int && ts->gpiod_rst) {
/* update device config */
ts->cfg_name = devm_kasprintf(&client->dev, GFP_KERNEL,
"goodix_%d_cfg.bin", ts->id);
if (!ts->cfg_name)
return -ENOMEM;
error = request_firmware_nowait(THIS_MODULE, true, ts->cfg_name,
&client->dev, GFP_KERNEL, ts,
goodix_config_cb);
if (error) {
dev_err(&client->dev,
"Failed to invoke firmware loader: %d\n",
error);
return error;
}
return 0;
}
else {
error = goodix_configure_dev(ts);
if (error)
return error;
}
return 0;
}
I just changed here..
//if (ts->gpiod_int && ts->gpiod_rst) {
if(0){
And the result;
[ 1.490665] Goodix-TS 0-005d: probe
[ 1.504725] Goodix-TS 0-005d: 0-005d supply AVDD28 not found, using dummy regulator
[ 1.516019] Goodix-TS 0-005d: 0-005d supply VDDIO not found, using dummy regulator
[ 1.651437] Goodix-TS 0-005d: ID 911, version: 1060
[ 1.687225] input: Goodix Capacitive TouchScreen as /devices/soc0/soc/30800000.aips-bus/30a20000.i2c/i2c-0/0-005d/input/input0
[ 1.702867] i2c-core: driver [Goodix-TS] registered
It finishes the job in 2 seconds..