src.nth.io/

summaryrefslogtreecommitdiff
path: root/main/local_screens.h
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-06-14 19:58:45 -0500
committerLuke Hoersten <[email protected]>2026-06-14 19:58:45 -0500
commit8e2de89efb540fd6a3dce2086216d3afc49e6831 (patch)
tree81f7245fdcadb441aab6bdc83db3ba466600910b /main/local_screens.h
parent5bed2f0ccc9ca3bab80e1d2ed2a9dddc621428c6 (diff)
touch: wake on boot — FT5426 only reports while LCD is streaming + lit
Symptom: after a few cleanup cycles + power cycles, fresh boots left touch dead — the FT5426 ack'd, polling read TD_STATUS=0x00 cleanly, but taps never registered. Curl-waking the screen made touch work again instantly; tapping the dark backlight-off panel did nothing. Root cause: on this panel the FT5426 firmware only reports contact points while the DSI link is actively streaming with the backlight on. Booting straight into ASLEEP per the spec leaves taps silently unread, and there's no built-in way to wake without touch (no hardware button on this board — see prior commit). The fix is to wake on boot; the idle timer cuts back to sleep after idle_timeout_ms if nothing happens. Also defensively write DEV_MODE=0x00 (Working Mode) at touch_init, and add a runtime self-heal: if the polling loop sees stuck TD_STATUS above the 5-touch ceiling for ~3 s, pulse PC_RST_TP_N via the panel MCU and retry. Combined with display_touch_reset_pulse() the chip recovers from cold-boot wedges without manual intervention.
Diffstat (limited to 'main/local_screens.h')
0 files changed, 0 insertions, 0 deletions