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]

Reply via email to