fix(gdeq031t10): reset the panel at the start of a full init (#603)

This commit is contained in:
Crazypedia 2026-07-30 17:07:25 -04:00 committed by GitHub
parent f13c18f398
commit 94deee8875
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -132,6 +132,11 @@ static void hardware_reset(Gdeq031t10Internal* internal) {
} }
static bool init_full(Gdeq031t10Internal* internal, bool mirror_180) { 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); bool ok = write_command(internal, CMD_PANEL_SETTING);
ok = ok && write_data_byte(internal, mirror_180 ? 0x13 : 0x1F); ok = ok && write_data_byte(internal, mirror_180 ? 0x13 : 0x1F);
ok = ok && write_command(internal, CMD_POWER_ON); ok = ok && write_command(internal, CMD_POWER_ON);