Migrate devices, create drivers, other improvements & fixes (#574)

Migrated devices to kernel drivers:

- guition-jc3248w535c
- m5stack-core2
- m5stack-cores3
- m5stack-papers3

New drivers:

- axp192-module
- axp2101-module

Fixes:

- Fix SD card LDO for P4 devices
- Updated PowerOff app to work with kernel displays
- Fix for `lvgl_try_lock()` timing
- Fix for touch events with slow updating displays

Improvements:

- `GuiService` now keeps trying to lock to prevent silent failures caused by drivers.
- `GuiService` now uses lvgl-module calls for locking/unlocking
- display driver now has capability `DISPLAY_CAPABILITY_SLOW_REFRESH`
This commit is contained in:
Ken Van Hoeylandt
2026-07-19 00:39:26 +02:00
committed by GitHub
parent 5f54f7ca3d
commit f9453d8956
119 changed files with 3327 additions and 3994 deletions
@@ -14,20 +14,16 @@ extern "C" {
* @brief Optional capabilities of the display.
*/
enum DisplayCapability {
DISPLAY_CAPABILITY_CAP_MIRROR = 1 << 0,
DISPLAY_CAPABILITY_CAP_SWAP_XY = 1 << 1,
DISPLAY_CAPABILITY_CAP_SET_GAP = 1 << 2,
DISPLAY_CAPABILITY_INVERT_COLOR = 1 << 3,
DISPLAY_CAPABILITY_ON_OFF = 1 << 4,
DISPLAY_CAPABILITY_BACKLIGHT = 1 << 5,
DISPLAY_CAPABILITY_SLEEP = 1 << 6,
/**
* Panel can only be written a full frame at a time (e.g. no row-address command, relying on
* an internal auto-increment counter reset by writing the whole frame from the top every
* time) - draw_bitmap() must always be called with the full resolution, never a sub-region.
* LVGL-facing callers (see lvgl_display.c) must use LV_DISPLAY_RENDER_MODE_FULL for such panels.
*/
DISPLAY_CAPABILITY_REQUIRES_FULL_FRAME = 1 << 7
DISPLAY_CAPABILITY_CAP_MIRROR = 1 << 0,
DISPLAY_CAPABILITY_CAP_SWAP_XY = 1 << 1,
DISPLAY_CAPABILITY_CAP_SET_GAP = 1 << 2,
DISPLAY_CAPABILITY_INVERT_COLOR = 1 << 3,
DISPLAY_CAPABILITY_ON_OFF = 1 << 4,
DISPLAY_CAPABILITY_BACKLIGHT = 1 << 5,
DISPLAY_CAPABILITY_SLEEP = 1 << 6,
DISPLAY_CAPABILITY_REQUIRES_FULL_FRAME = 1 << 7,
/** Can be used by e-paper with pointer devices for long click timing changes. */
DISPLAY_CAPABILITY_SLOW_REFRESH = 1 << 8
};
/**