drivers: video: ilitek-ili9881c.c: add long delay panel reset
authorLu Hui <luhui@sipeed.com>
Mon, 25 Dec 2023 08:53:41 +0000 (16:53 +0800)
committerHan Gao/Revy/Rabenda <rabenda.cn@gmail.com>
Tue, 26 Dec 2023 09:08:20 +0000 (17:08 +0800)
drivers/video/ilitek-ili9881c.c

index 84c0dcd6571a2cfc1f12132481c97a9c57b24b6e..61ba4bae16883e9e273180fea38eeafd1a86485b 100644 (file)
@@ -368,12 +368,12 @@ static int ili9881c_panel_prepare(struct udevice *panel)
        ret = dm_gpio_set_value(&priv->reset, true);
        if (ret)
                return ret;
-       mdelay(1);
+       mdelay(500);
 
        ret = dm_gpio_set_value(&priv->reset, false);
        if (ret)
                return ret;
-       mdelay(10);
+       mdelay(100);
 
        return 0;
 }
@@ -464,6 +464,20 @@ static int ili9881c_panel_ofdata_to_platdata(struct udevice *dev)
                dev_err(dev, "Warning: cannot get reset GPIO\n");
                if (ret != -ENOENT)
                        return ret;
+       } else {
+               /* not a bug, but uboot's regulator is buggy,
+               I haven't more time to fix it, so put it here
+               */
+               /* reset panel */
+               ret = dm_gpio_set_value(&priv->reset, false);
+               if (ret)
+                       return ret;
+               mdelay(100);
+
+               ret = dm_gpio_set_value(&priv->reset, true);
+               if (ret)
+                       return ret;
+               mdelay(100);
        }
 
        /* power gpios */