vrmay23 opened a new pull request, #18301: URL: https://github.com/apache/nuttx/pull/18301
Add support for ST7796 TFT LCD controller (320x480). The driver implements the NuttX framebuffer interface for SPI-connected displays. Features: - SPI interface with CONFIG_SPI_CMDDATA for D/C pin control - RGB565 (16-bit) and RGB666 (18-bit) color formats - Runtime rotation support (0, 90, 180, 270 degrees) via MADCTL - Board-provided configuration via st7796_config_s structure - Partial screen update via updatearea for efficient rendering - Persistent swap buffer to avoid per-frame allocations - Proper ST7796S initialization sequence with documented timing The driver uses a board-provided configuration structure allowing flexible setup of resolution, SPI frequency, color depth, and initial MADCTL value without requiring Kconfig options in the generic driver. Tested with LVGL graphics library on STM32H7 nucleo0h753zi platform. *Note: Please adhere to [Contributing Guidelines](https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md).* ## Summary Add ST7796 TFT LCD framebuffer driver for 320x480 SPI-connected displays. The ST7796 is a popular TFT controller used in 3.5" IPS LCD modules. This driver implements the NuttX framebuffer interface (fb_vtable_s) allowing integration with graphics libraries like LVGL. Key features: SPI interface using CONFIG_SPI_CMDDATA for D/C pin control RGB565 (16-bit) and RGB666 (18-bit) color formats Runtime rotation support (0, 90, 180, 270 degrees) via MADCTL register Board-provided configuration via st7796_config_s structure Partial screen update via updatearea for efficient rendering Persistent swap buffer to avoid per-frame memory allocations The driver follows the same pattern as existing LCD drivers (ST7789, GC9A01) and does not introduce board-specific dependencies in the generic driver code. ## Impact New driver: drivers/lcd/st7796.c New header: include/nuttx/lcd/st7796.h Updated: drivers/lcd/Kconfig, Make.defs, CMakeLists.txt No breaking changes to existing code Requires CONFIG_SPI_CMDDATA enabled for D/C pin control ## Testing Hardware: STM32H753ZI Nucleo + 3.5" ST7796 IPS LCD (SPI) NuttX version: 12.12 Tested with: fb example (framebuffer color test) LVGL graphics library (animations, widgets) Runtime rotation via FBIOSET_ROTATION ioctl Build configurations: nsh, fb, lvgl **_PRs without testing information will not be accepted. We will request test logs._** -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
