Refactored CYD-2432S028R board initialization, touch, and SD drivers (#314)

* feat(board): add support for CYD-2432S028R board and update XPT2046 driver

- Added CONFIG_TT_BOARD_CYD_2432S028R in Kconfig.
- Included support for CYD2432S028R in Boards.h and board.cmake.
- Updated Xpt2046Touch driver to use configuration->spiDevice instead of SPI2_HOST when creating the SPI handle.
- Note: SD card is not working on this board yet.

This commit introduces full support for the CYD-2432S028R board and improves the touchscreen driver flexibility by allowing dynamic SPI device configuration. SD card functionality still needs to be implemented.

* Added a new GitHub Actions job to build firmware for the cyd-2432s028r board
using the existing build-firmware action. This ensures continuous integration
coverage for the new board alongside other supported ESP32 variants.

* Removed unnecessary file

* Refactor CYD-2432S028R board initialization, touch, and SD drivers

- Updated board CMakeLists to use `XPT2046-Bitbang` instead of `XPT2046`.
- Added `YellowSdCard` support and initialized SD card in board configuration.
- Updated SPI pin assignments for touch and SD card to match hardware setup.
- Refactored touch driver to use bit-banged SPI with proper start/stop handling.
  - Touch adaptation was based on a merge of:
    - https://github.com/NellowTCS/Tactility/blob/main/Drivers/XPT2046-Bitbang/Source/XPT2046-Bitbang.cpp
    - https://github.com/ddxfish/XPT2046_Bitbang_Arduino_Library/blob/main/XPT2046_Bitbang.cpp
  - Calibration is currently static in code:
        Calibration cal = {
            .xMin = 100,
            .xMax = 1900,
            .yMin = 100,
            .yMax = 1900
        };
    This removes the need for manual touchscreen calibration, but code was adjusted to support dynamic calibration in the future.
- Added comments and constants for software SPI touch pins.
- Updated `YellowDisplay` to use new touch driver configuration.

* Refactor XPT2046 touch driver: replace Bitbang with SoftSPI implementation, update CMake and README files
This commit is contained in:
Rivair Sabino dos Santos
2025-09-02 17:28:37 -03:00
committed by GitHub
parent 0f8380e8fe
commit 1deaf4c426
10 changed files with 533 additions and 24 deletions
+7 -6
View File
@@ -1,6 +1,7 @@
#include "CYD2432S028R.h"
#include "hal/YellowDisplay.h"
#include "hal/YellowConstants.h"
#include "hal/YellowSdCard.h"
#include <Tactility/lvgl/LvglSync.h>
#include <PwmBacklight.h>
#include <Tactility/hal/Configuration.h>
@@ -24,7 +25,7 @@ bool initBoot() {
const Configuration cyd_2432s028r_config = {
.initBoot = initBoot,
.createDisplay = createDisplay,
.sdcard = nullptr,
.sdcard = createYellowSdCard(),
.power = nullptr,
.i2c = {},
.spi {
@@ -53,14 +54,14 @@ const Configuration cyd_2432s028r_config = {
.lock = tt::lvgl::getSyncLock()
},
// Touch
// SDCard
spi::Configuration {
.device = CYD2432S028R_TOUCH_SPI_HOST,
.device = CYD2432S028R_SDCARD_SPI_HOST,
.dma = SPI_DMA_CH_AUTO,
.config = {
.mosi_io_num = GPIO_NUM_32,
.miso_io_num = GPIO_NUM_39,
.sclk_io_num = GPIO_NUM_25,
.mosi_io_num = GPIO_NUM_23,
.miso_io_num = GPIO_NUM_19,
.sclk_io_num = GPIO_NUM_18,
.quadwp_io_num = GPIO_NUM_NC,
.quadhd_io_num = GPIO_NUM_NC,
.data4_io_num = GPIO_NUM_NC,