Skip to content

Commit a8721c8

Browse files
committed
feat:support xiao_esp32c5
1 parent 7d07ffa commit a8721c8

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

Processors/TFT_eSPI_ESP32_C3.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
259259
while (*_spi_cmd&SPI_USR);
260260
for (i=0; i < rem; i+=2) *spi_w++ = color32;
261261
*_spi_mosi_dlen = (rem << 4) - 1;
262-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
262+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
263263
*_spi_cmd = SPI_UPDATE;
264264
while (*_spi_cmd & SPI_UPDATE);
265265
#endif
@@ -276,7 +276,7 @@ void TFT_eSPI::pushBlock(uint16_t color, uint32_t len){
276276
while(len)
277277
{
278278
while (*_spi_cmd&SPI_USR);
279-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
279+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
280280
*_spi_cmd = SPI_UPDATE;
281281
while (*_spi_cmd & SPI_UPDATE);
282282
#endif
@@ -325,7 +325,7 @@ void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
325325
WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), color[13]);
326326
WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), color[14]);
327327
WRITE_PERI_REG(SPI_W15_REG(SPI_PORT), color[15]);
328-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
328+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
329329
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
330330
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
331331
#endif
@@ -352,7 +352,7 @@ void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
352352
WRITE_PERI_REG(SPI_W5_REG(SPI_PORT), color[5]);
353353
WRITE_PERI_REG(SPI_W6_REG(SPI_PORT), color[6]);
354354
WRITE_PERI_REG(SPI_W7_REG(SPI_PORT), color[7]);
355-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
355+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
356356
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
357357
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
358358
#endif
@@ -367,7 +367,7 @@ void TFT_eSPI::pushSwapBytePixels(const void* data_in, uint32_t len){
367367
for (uint32_t i=0; i <= (len<<1); i+=4) {
368368
WRITE_PERI_REG(SPI_W0_REG(SPI_PORT)+i, DAT8TO32(data)); data+=4;
369369
}
370-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
370+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
371371
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
372372
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
373373
#endif
@@ -412,7 +412,7 @@ void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
412412
WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), *data++);
413413
WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), *data++);
414414
WRITE_PERI_REG(SPI_W15_REG(SPI_PORT), *data++);
415-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
415+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
416416
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
417417
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
418418
#endif
@@ -426,7 +426,7 @@ void TFT_eSPI::pushPixels(const void* data_in, uint32_t len){
426426
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_USR);
427427
WRITE_PERI_REG(SPI_MOSI_DLEN_REG(SPI_PORT), (len << 4) - 1);
428428
for (uint32_t i=0; i <= (len<<1); i+=4) WRITE_PERI_REG((SPI_W0_REG(SPI_PORT) + i), *data++);
429-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
429+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
430430
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
431431
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
432432
#endif
@@ -476,7 +476,7 @@ void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
476476
WRITE_PERI_REG(SPI_W12_REG(SPI_PORT), r0);
477477
WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), r1);
478478
WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), r2);
479-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
479+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
480480
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
481481
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
482482
#endif
@@ -507,7 +507,7 @@ void TFT_eSPI::pushBlock(uint16_t color, uint32_t len)
507507
WRITE_PERI_REG(SPI_W13_REG(SPI_PORT), r1);
508508
WRITE_PERI_REG(SPI_W14_REG(SPI_PORT), r2);
509509
}
510-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
510+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
511511
SET_PERI_REG_MASK(SPI_CMD_REG(SPI_PORT), SPI_UPDATE);
512512
while (READ_PERI_REG(SPI_CMD_REG(SPI_PORT))&SPI_UPDATE);
513513
#endif

Processors/TFT_eSPI_ESP32_C3.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include "driver/spi_master.h"
2020
#include "hal/gpio_ll.h"
2121

22-
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32)
22+
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32)
2323
#define CONFIG_IDF_TARGET_ESP32
2424
#endif
2525

@@ -28,7 +28,7 @@
2828
#endif
2929

3030
// Fix IDF problems with ESP32C3
31-
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
31+
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C5
3232
// Fix ESP32C3 IDF bug for missing definition (VSPI/FSPI only tested at the moment)
3333
#ifndef REG_SPI_BASE
3434
#define REG_SPI_BASE(i) DR_REG_SPI2_BASE
@@ -317,7 +317,7 @@ SPI3_HOST = 2
317317
#define TFT_SCLK 18
318318
#endif
319319

320-
#if defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C6)
320+
#if defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5)
321321
#if (TFT_MISO == -1)
322322
#undef TFT_MISO
323323
#define TFT_MISO TFT_MOSI
@@ -536,7 +536,7 @@ SPI3_HOST = 2
536536
#define tft_Write_32D(C) TFT_WRITE_BITS((uint16_t)((C)<<8 | (C)>>8)<<16 | (uint16_t)((C)<<8 | (C)>>8), 32)
537537
//*/
538538
//* Replacement slimmer macros
539-
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
539+
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5)
540540
#define TFT_WRITE_BITS(D, B) *_spi_mosi_dlen = B-1; \
541541
*_spi_w = D; \
542542
*_spi_cmd = SPI_USR; \
@@ -556,7 +556,7 @@ SPI3_HOST = 2
556556
#define tft_Write_16(C) TFT_WRITE_BITS((C)<<8 | (C)>>8, 16)
557557

558558
// Future option for transfer without wait
559-
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
559+
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5)
560560
#define tft_Write_16N(C) *_spi_mosi_dlen = 16-1; \
561561
*_spi_w = ((C)<<8 | (C)>>8); \
562562
*_spi_cmd = SPI_USR;

TFT_eSPI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#if defined (ESP32)
1919
#if defined(CONFIG_IDF_TARGET_ESP32S3)
2020
#include "Processors/TFT_eSPI_ESP32_S3.c" // Tested with SPI and 8-bit parallel
21-
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6)
21+
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5)
2222
#include "Processors/TFT_eSPI_ESP32_C3.c" // Tested with SPI (8-bit parallel will probably work too!)
2323
#else
2424
#include "Processors/TFT_eSPI_ESP32.c"

TFT_eSPI.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
// Include the processor specific drivers
9696
#if defined(CONFIG_IDF_TARGET_ESP32S3)
9797
#include "Processors/TFT_eSPI_ESP32_S3.h"
98-
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6)
98+
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C5)
9999
#include "Processors/TFT_eSPI_ESP32_C3.h"
100100
#elif defined(ESP32)
101101
#include "Processors/TFT_eSPI_ESP32.h"

0 commit comments

Comments
 (0)