<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Goodix Touch driver problem in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1800093#M219533</link>
    <description>&lt;P&gt;Hi.&lt;/P&gt;&lt;P&gt;I am attempting to integrate a Goodix touchscreen into my imx7dsabresd system. It works fine but after about 1 minutes from the opening. I have monitored the touch interrupt and i2c signals using an osciloscope. The chip generates the interrupt signal upon power-on, but I observe i2c signals after 1 minutes.&lt;/P&gt;&lt;P&gt;How can I fix this delay problem?&lt;/P&gt;&lt;P&gt;Kernel version is;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Linux imx7dsabresd 5.4.70-2.3.11+gb34a9c9644c1 #1 SMP PREEMPT Thu Jan 18 17:23:50 UTC 2024 armv7l armv7l armv7l GNU/Linux&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;Related part of my dts file is like that;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;amp;i2c1 {
pinctrl-names = "default";
pinctrl-0 = &amp;lt;&amp;amp;pinctrl_i2c1&amp;gt;;
status = "okay";
clock-frequency = &amp;lt;100000&amp;gt;;
gt911@5d {
compatible = "goodix,gt911";
reg = &amp;lt;0x5d&amp;gt;;
interrupt-parent = &amp;lt;&amp;amp;gpio2&amp;gt;;
interrupts = &amp;lt;30 IRQ_TYPE_EDGE_FALLING&amp;gt;;    
        irq-gpios = &amp;lt;&amp;amp;gpio2 30 GPIO_ACTIVE_HIGH&amp;gt;;
        reset-gpios = &amp;lt;&amp;amp;gpio1 12 GPIO_ACTIVE_LOW&amp;gt;;
touchscreen-size-x = &amp;lt;1024&amp;gt;;
touchscreen-size-y = &amp;lt;600&amp;gt;;
touchscreen-inverted-x = &amp;lt;0&amp;gt;;
touchscreen-inverted-y = &amp;lt;0&amp;gt;;
};
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Dmesg is like that;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[1.521610] Goodix-TS 0-005d: probe
[1.521647] Goodix-TS 0-005d: 0-005d supply AVDD28 not found, using dummy regulator
[1.529432] Goodix-TS 0-005d: 0-005d supply VDDIO not found, using dummy regulator
[1.655325] Goodix-TS 0-005d: ID 911, version: 1060
[1.660320] Goodix-TS 0-005d: Direct firmware load for goodix_911_cfg.bin failed with error -2
[1.669108] i2c-core: driver [Goodix-TS] registered
[1.669410] Goodix-TS 0-005d: Falling back to sysfs fallback for: goodix_911_cfg.bin
[64.509368] input: Goodix Capacitive TouchScreen as /devices/soc0/soc/30800000.aips-bus/30a20000.i2c/i2c-0/0-005d/input/input1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance..&lt;/P&gt;</description>
    <pubDate>Thu, 01 Feb 2024 16:03:30 GMT</pubDate>
    <dc:creator>Ahmet_Cihan_AKINCA</dc:creator>
    <dc:date>2024-02-01T16:03:30Z</dc:date>
    <item>
      <title>Goodix Touch driver problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1800093#M219533</link>
      <description>&lt;P&gt;Hi.&lt;/P&gt;&lt;P&gt;I am attempting to integrate a Goodix touchscreen into my imx7dsabresd system. It works fine but after about 1 minutes from the opening. I have monitored the touch interrupt and i2c signals using an osciloscope. The chip generates the interrupt signal upon power-on, but I observe i2c signals after 1 minutes.&lt;/P&gt;&lt;P&gt;How can I fix this delay problem?&lt;/P&gt;&lt;P&gt;Kernel version is;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Linux imx7dsabresd 5.4.70-2.3.11+gb34a9c9644c1 #1 SMP PREEMPT Thu Jan 18 17:23:50 UTC 2024 armv7l armv7l armv7l GNU/Linux&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;Related part of my dts file is like that;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;amp;i2c1 {
pinctrl-names = "default";
pinctrl-0 = &amp;lt;&amp;amp;pinctrl_i2c1&amp;gt;;
status = "okay";
clock-frequency = &amp;lt;100000&amp;gt;;
gt911@5d {
compatible = "goodix,gt911";
reg = &amp;lt;0x5d&amp;gt;;
interrupt-parent = &amp;lt;&amp;amp;gpio2&amp;gt;;
interrupts = &amp;lt;30 IRQ_TYPE_EDGE_FALLING&amp;gt;;    
        irq-gpios = &amp;lt;&amp;amp;gpio2 30 GPIO_ACTIVE_HIGH&amp;gt;;
        reset-gpios = &amp;lt;&amp;amp;gpio1 12 GPIO_ACTIVE_LOW&amp;gt;;
touchscreen-size-x = &amp;lt;1024&amp;gt;;
touchscreen-size-y = &amp;lt;600&amp;gt;;
touchscreen-inverted-x = &amp;lt;0&amp;gt;;
touchscreen-inverted-y = &amp;lt;0&amp;gt;;
};
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Dmesg is like that;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[1.521610] Goodix-TS 0-005d: probe
[1.521647] Goodix-TS 0-005d: 0-005d supply AVDD28 not found, using dummy regulator
[1.529432] Goodix-TS 0-005d: 0-005d supply VDDIO not found, using dummy regulator
[1.655325] Goodix-TS 0-005d: ID 911, version: 1060
[1.660320] Goodix-TS 0-005d: Direct firmware load for goodix_911_cfg.bin failed with error -2
[1.669108] i2c-core: driver [Goodix-TS] registered
[1.669410] Goodix-TS 0-005d: Falling back to sysfs fallback for: goodix_911_cfg.bin
[64.509368] input: Goodix Capacitive TouchScreen as /devices/soc0/soc/30800000.aips-bus/30a20000.i2c/i2c-0/0-005d/input/input1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance..&lt;/P&gt;</description>
      <pubDate>Thu, 01 Feb 2024 16:03:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1800093#M219533</guid>
      <dc:creator>Ahmet_Cihan_AKINCA</dc:creator>
      <dc:date>2024-02-01T16:03:30Z</dc:date>
    </item>
    <item>
      <title>Re: Goodix Touch driver problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1801410#M219614</link>
      <description>&lt;P&gt;Any suggestions? I don't have goodix_911_cfg.bin.. Is it necessary? If necessary how can I create this file?&lt;/P&gt;</description>
      <pubDate>Sun, 04 Feb 2024 10:45:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1801410#M219614</guid>
      <dc:creator>Ahmet_Cihan_AKINCA</dc:creator>
      <dc:date>2024-02-04T10:45:43Z</dc:date>
    </item>
    <item>
      <title>Re: Goodix Touch driver problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1802200#M219676</link>
      <description>&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;From the logs I see no error, when it fails loading the firmware It's a non-issue. It appears that the driver looks for a board-specific firmware blob (which doesn't exist). Also, if it was really needed it won't work later on.&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;Does it start working after it has fully booted?&lt;BR /&gt;Also, on the goodix driver I found the following:&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/commit/68caf85881cd842b59d5e2124a236ecce0389a73" target="_blank"&gt;https://github.com/nxp-imx/linux-imx/commit/68caf85881cd842b59d5e2124a236ecce0389a73&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Feb 2024 00:52:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1802200#M219676</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2024-02-06T00:52:24Z</dc:date>
    </item>
    <item>
      <title>Re: Goodix Touch driver problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1802487#M219703</link>
      <description>&lt;P&gt;Thank you for you response AldoG..&lt;/P&gt;&lt;P&gt;Total boot duration is about 9 seconds. After boot, my application starts and it is seen on the screen immediately. Thus, it is a big problem for me since touch does not work for almost 40 seconds. Users of my device won't like such a delay.&lt;/P&gt;&lt;P&gt;My goodix.c file is not the same file that you addressed but I have inspected carefully line-by-line and I'm sure that there is no significant differences. My goodix.c file is attached, too.&lt;/P&gt;&lt;P&gt;However, I'm suspicious about reset-pin;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;   	 reset-gpios = &amp;lt;&amp;amp;gpio1 12 GPIO_ACTIVE_HIGH&amp;gt;;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I change this pin to ACTIVE_LOW, nothing changes on hardware. I check the reset pin via an oscilloscope and it still works as ACTIVE_HIGH. On the other hand, the touch does not work when I delete this line completely and this makes sense. Why can't I switch this pin as active low/high to check the situation?&lt;/P&gt;&lt;P&gt;I have also attached my device tree file. I would appreciate it if you check the my dts file.&lt;/P&gt;&lt;P&gt;Thank you AldoG..&lt;/P&gt;</description>
      <pubDate>Tue, 06 Feb 2024 09:53:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1802487#M219703</guid>
      <dc:creator>Ahmet_Cihan_AKINCA</dc:creator>
      <dc:date>2024-02-06T09:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Goodix Touch driver problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1803207#M219744</link>
      <description>&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;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;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;static int goodix_ts_probe(struct i2c_client *client,
   			const struct i2c_device_id *id)
{
    struct goodix_ts_data *ts;
    int error;
......
......
    if (ts-&amp;gt;gpiod_int &amp;amp;&amp;amp; ts-&amp;gt;gpiod_rst) {
   	 /* update device config */
   	 ts-&amp;gt;cfg_name = devm_kasprintf(&amp;amp;client-&amp;gt;dev, GFP_KERNEL,
   				   	"goodix_%d_cfg.bin", ts-&amp;gt;id);
   	 if (!ts-&amp;gt;cfg_name)
   		 return -ENOMEM;
   	 error = request_firmware_nowait(THIS_MODULE, true, ts-&amp;gt;cfg_name,
   					 &amp;amp;client-&amp;gt;dev, GFP_KERNEL, ts,
   					 goodix_config_cb);
  	 if (error) {
   		 dev_err(&amp;amp;client-&amp;gt;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;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just changed here..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt; //if (ts-&amp;gt;gpiod_int &amp;amp;&amp;amp; ts-&amp;gt;gpiod_rst) {
 if(0){&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And the result;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[    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&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It finishes the job in 2 seconds..&lt;/P&gt;</description>
      <pubDate>Wed, 07 Feb 2024 08:08:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Goodix-Touch-driver-problem/m-p/1803207#M219744</guid>
      <dc:creator>Ahmet_Cihan_AKINCA</dc:creator>
      <dc:date>2024-02-07T08:08:11Z</dc:date>
    </item>
  </channel>
</rss>

