From 1bfffc54d429517c96f1dd6ce2afc107a62ec3cd Mon Sep 17 00:00:00 2001 From: suda-morris <362953310@qq.com> Date: Mon, 8 Sep 2025 22:48:03 +0800 Subject: [PATCH] fix(sh8601): work again with idf v6.0 --- .../display/lcd/esp_lcd_sh8601/idf_component.yml | 2 +- .../lcd/esp_lcd_sh8601/include/esp_lcd_sh8601.h | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/components/display/lcd/esp_lcd_sh8601/idf_component.yml b/components/display/lcd/esp_lcd_sh8601/idf_component.yml index 1a52c35f1b..13c4e2cc06 100644 --- a/components/display/lcd/esp_lcd_sh8601/idf_component.yml +++ b/components/display/lcd/esp_lcd_sh8601/idf_component.yml @@ -1,4 +1,4 @@ -version: "1.0.0" +version: "1.0.1" description: ESP LCD SH8601(SPI & QSPI) url: https://github.com/espressif/esp-iot-solution/tree/master/components/display/lcd/esp_lcd_sh8601 repository: https://github.com/espressif/esp-iot-solution.git diff --git a/components/display/lcd/esp_lcd_sh8601/include/esp_lcd_sh8601.h b/components/display/lcd/esp_lcd_sh8601/include/esp_lcd_sh8601.h index 4073ccd617..a352273eec 100644 --- a/components/display/lcd/esp_lcd_sh8601/include/esp_lcd_sh8601.h +++ b/components/display/lcd/esp_lcd_sh8601/include/esp_lcd_sh8601.h @@ -7,7 +7,7 @@ #pragma once #include - +#include "esp_idf_version.h" #include "esp_lcd_panel_vendor.h" #ifdef __cplusplus @@ -76,6 +76,7 @@ esp_err_t esp_lcd_new_panel_sh8601(const esp_lcd_panel_io_handle_t io, const esp .data2_io_num = d2, \ .data3_io_num = d3, \ .max_transfer_sz = max_trans_sz, \ + .flags = SPICOMMON_BUSFLAG_MASTER | SPICOMMON_BUSFLAG_QUAD, \ } /** @@ -105,11 +106,18 @@ esp_err_t esp_lcd_new_panel_sh8601(const esp_lcd_panel_io_handle_t io, const esp .user_ctx = cb_ctx, \ .lcd_cmd_bits = 32, \ .lcd_param_bits = 8, \ - .flags = { \ - .quad_mode = true, \ - }, \ + /* Only set flags.quad_mode for ESP-IDF < v6.0.0 */ \ + _IF_IDF_LESS_THAN_6(.flags = { .quad_mode = true },) \ } +#ifndef _IF_IDF_LESS_THAN_6 +#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0) +#define _IF_IDF_LESS_THAN_6(...) __VA_ARGS__ +#else +#define _IF_IDF_LESS_THAN_6(...) +#endif +#endif + #ifdef __cplusplus } #endif