From 94deee88751aeeaa9d41668bfc0946d75cb0301d Mon Sep 17 00:00:00 2001 From: Crazypedia Date: Thu, 30 Jul 2026 17:07:25 -0400 Subject: [PATCH] fix(gdeq031t10): reset the panel at the start of a full init (#603) --- Drivers/gdeq031t10-module/source/gdeq031t10.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Drivers/gdeq031t10-module/source/gdeq031t10.cpp b/Drivers/gdeq031t10-module/source/gdeq031t10.cpp index e797cbf11..77757726b 100644 --- a/Drivers/gdeq031t10-module/source/gdeq031t10.cpp +++ b/Drivers/gdeq031t10-module/source/gdeq031t10.cpp @@ -132,6 +132,11 @@ static void hardware_reset(Gdeq031t10Internal* internal) { } static bool init_full(Gdeq031t10Internal* internal, bool mirror_180) { + // The reset pulse restores register defaults, which the init sequence below assumes: + // a cold-booted controller never drives BUSY ready after CMD_POWER_ON without it, a + // mode change needs partial mode's lingering VCOM/data-interval setting cleared, and + // waking from deep sleep is only possible by toggling RST. + hardware_reset(internal); bool ok = write_command(internal, CMD_PANEL_SETTING); ok = ok && write_data_byte(internal, mirror_180 ? 0x13 : 0x1F); ok = ok && write_command(internal, CMD_POWER_ON);