diff --git a/bsp/esp32_p4_function_ev_board/README.md b/bsp/esp32_p4_function_ev_board/README.md
index eca5f6068..79de7a07b 100644
--- a/bsp/esp32_p4_function_ev_board/README.md
+++ b/bsp/esp32_p4_function_ev_board/README.md
@@ -58,18 +58,18 @@ This BSP supports HDMI converter Lontium LT8912B. Follow these rules for using i
-| Available | Capability | Controller/Codec | Component | Version |
-|------------------|------------------------|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
-|:heavy_check_mark:| :pager: DISPLAY |ek79007, ili9881c, lt8912b|idf
[espressif/esp_lcd_ek79007](https://components.espressif.com/components/espressif/esp_lcd_ek79007)
[espressif/esp_lcd_ili9881c](https://components.espressif.com/components/espressif/esp_lcd_ili9881c)
[espressif/esp_lcd_lt8912b](https://components.espressif.com/components/espressif/esp_lcd_lt8912b)|>=5.4
1.*
1.*
>=0.1.1,<1.0.0|
-|:heavy_check_mark:|:black_circle: LVGL_PORT| | [espressif/esp_lvgl_port](https://components.espressif.com/components/espressif/esp_lvgl_port) | ^2 |
-|:heavy_check_mark:| :point_up: TOUCH | gt911 | [espressif/esp_lcd_touch_gt911](https://components.espressif.com/components/espressif/esp_lcd_touch_gt911) | ^1 |
-| :x: | :radio_button: BUTTONS | | | |
-|:heavy_check_mark:| :musical_note: AUDIO | | [espressif/esp_codec_dev](https://components.espressif.com/components/espressif/esp_codec_dev) | ~1.5 |
-|:heavy_check_mark:| :speaker: AUDIO_SPEAKER| es8311 | | |
-|:heavy_check_mark:| :microphone: AUDIO_MIC | es8311 | | |
-|:heavy_check_mark:| :floppy_disk: SDCARD | | idf | >=5.4 |
-| :x: | :video_game: IMU | | | |
-|:heavy_check_mark:| :camera: CAMERA | OV5647, SC2336 | | |
+| Available | Capability | Controller/Codec | Component | Version |
+|------------------|------------------------|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------|
+|:heavy_check_mark:| :pager: DISPLAY |ek79007, ili9881c, lt8912b|idf
[espressif/esp_lcd_ek79007](https://components.espressif.com/components/espressif/esp_lcd_ek79007)
[espressif/esp_lcd_ili9881c](https://components.espressif.com/components/espressif/esp_lcd_ili9881c)
[espressif/esp_lcd_lt8912b](https://components.espressif.com/components/espressif/esp_lcd_lt8912b)|>=5.4
>=2.0.1,<3.0.0
>=1.0.3,<2.0.0
>=0.1.3,<1.0.0|
+|:heavy_check_mark:|:black_circle: LVGL_PORT| | [espressif/esp_lvgl_port](https://components.espressif.com/components/espressif/esp_lvgl_port) | ^2 |
+|:heavy_check_mark:| :point_up: TOUCH | gt911 | [espressif/esp_lcd_touch_gt911](https://components.espressif.com/components/espressif/esp_lcd_touch_gt911) | ^1 |
+| :x: | :radio_button: BUTTONS | | | |
+|:heavy_check_mark:| :musical_note: AUDIO | | [espressif/esp_codec_dev](https://components.espressif.com/components/espressif/esp_codec_dev) | ~1.5 |
+|:heavy_check_mark:| :speaker: AUDIO_SPEAKER| es8311 | | |
+|:heavy_check_mark:| :microphone: AUDIO_MIC | es8311 | | |
+|:heavy_check_mark:| :floppy_disk: SDCARD | | idf | >=5.4 |
+| :x: | :video_game: IMU | | | |
+|:heavy_check_mark:| :camera: CAMERA | OV5647, SC2336 | | |
@@ -122,4 +122,4 @@ This BSP supports HDMI converter Lontium LT8912B. Follow these rules for using i
-
\ No newline at end of file
+
diff --git a/bsp/esp32_p4_function_ev_board/esp32_p4_function_ev_board.c b/bsp/esp32_p4_function_ev_board/esp32_p4_function_ev_board.c
index b34e0c169..5c19e84fc 100644
--- a/bsp/esp32_p4_function_ev_board/esp32_p4_function_ev_board.c
+++ b/bsp/esp32_p4_function_ev_board/esp32_p4_function_ev_board.c
@@ -600,9 +600,9 @@ esp_err_t bsp_display_new_with_handles(const bsp_display_config_t *config, bsp_l
ESP_LOGI(TAG, "Install EK79007 LCD control panel");
#if CONFIG_BSP_LCD_COLOR_FORMAT_RGB888
- esp_lcd_dpi_panel_config_t dpi_config = EK79007_1024_600_PANEL_60HZ_CONFIG(LCD_COLOR_PIXEL_FORMAT_RGB888);
+ esp_lcd_dpi_panel_config_t dpi_config = EK79007_1024_600_PANEL_60HZ_CONFIG_CF(LCD_COLOR_FMT_RGB888);
#else
- esp_lcd_dpi_panel_config_t dpi_config = EK79007_1024_600_PANEL_60HZ_CONFIG(LCD_COLOR_PIXEL_FORMAT_RGB565);
+ esp_lcd_dpi_panel_config_t dpi_config = EK79007_1024_600_PANEL_60HZ_CONFIG_CF(LCD_COLOR_FMT_RGB565);
#endif
dpi_config.num_fbs = CONFIG_BSP_LCD_DPI_BUFFER_NUMS;
@@ -625,9 +625,9 @@ esp_err_t bsp_display_new_with_handles(const bsp_display_config_t *config, bsp_l
// create ILI9881C control panel
ESP_LOGI(TAG, "Install ILI9881C LCD control panel");
#if CONFIG_BSP_LCD_COLOR_FORMAT_RGB888
- esp_lcd_dpi_panel_config_t dpi_config = ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG(LCD_COLOR_PIXEL_FORMAT_RGB888);
+ esp_lcd_dpi_panel_config_t dpi_config = ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG_CF(LCD_COLOR_FMT_RGB888);
#else
- esp_lcd_dpi_panel_config_t dpi_config = ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG(LCD_COLOR_PIXEL_FORMAT_RGB565);
+ esp_lcd_dpi_panel_config_t dpi_config = ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG_CF(LCD_COLOR_FMT_RGB565);
#endif
dpi_config.num_fbs = CONFIG_BSP_LCD_DPI_BUFFER_NUMS;
@@ -977,6 +977,7 @@ lv_display_t *bsp_display_start(void)
.hdmi_resolution = BSP_HDMI_RES_NONE,
#endif
.dsi_bus = {
+ .phy_clk_src = MIPI_DSI_PHY_CLK_SRC_DEFAULT,
.lane_bit_rate_mbps = BSP_LCD_MIPI_DSI_LANE_BITRATE_MBPS,
}
},
diff --git a/bsp/esp32_p4_function_ev_board/idf_component.yml b/bsp/esp32_p4_function_ev_board/idf_component.yml
index 6a4c9b909..b43f5e672 100644
--- a/bsp/esp32_p4_function_ev_board/idf_component.yml
+++ b/bsp/esp32_p4_function_ev_board/idf_component.yml
@@ -1,4 +1,4 @@
-version: "5.1.0~2"
+version: "5.1.1"
description: Board Support Package (BSP) for ESP32-P4 Function EV Board (preview)
url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_p4_function_ev_board
@@ -11,12 +11,12 @@ tags:
dependencies:
idf: ">=5.4"
lvgl/lvgl: ">=8,<10"
- esp_lcd_ek79007: "1.*"
+ esp_lcd_ek79007: ">=2.0.1,<3.0.0"
- esp_lcd_ili9881c:
- version: "1.*"
+ esp_lcd_ili9881c:
+ version: ">=1.0.3,<2.0.0"
override_path: "../../components/lcd/esp_lcd_ili9881c"
- esp_lcd_touch_gt911:
+ esp_lcd_touch_gt911:
version: "^1"
override_path: "../../components/lcd_touch/esp_lcd_touch_gt911"
@@ -25,14 +25,14 @@ dependencies:
public: true
override_path: "../../components/esp_lvgl_port"
+ espressif/esp_lcd_lt8912b:
+ version: ">=0.1.3,<1.0.0"
+ override_path: "../../components/lcd/esp_lcd_lt8912b"
+
esp_codec_dev:
version: "~1.5"
public: true
- espressif/esp_lcd_lt8912b:
- version: ">=0.1.1,<1.0.0"
- override_path: "../../components/lcd/esp_lcd_lt8912b"
-
esp_video:
version: "~1.3"
public: true
diff --git a/bsp/esp32_s3_lcd_ev_board/idf_component.yml b/bsp/esp32_s3_lcd_ev_board/idf_component.yml
index 98914d5b9..70fc0f0dd 100644
--- a/bsp/esp32_s3_lcd_ev_board/idf_component.yml
+++ b/bsp/esp32_s3_lcd_ev_board/idf_component.yml
@@ -1,4 +1,4 @@
-version: "4.0.2"
+version: "4.0.3"
description: Board Support Package (BSP) for ESP32-S3-LCD-EV-Board
url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_s3_lcd_ev_board
@@ -10,10 +10,10 @@ tags:
dependencies:
idf: ">=5.3" # We use I2C Driver-NG from IDF v5.2 but esp-codec-dev supports from v5.3
- esp_lcd_touch_gt1151:
+ esp_lcd_touch_gt1151:
version: "^1"
override_path: "../../components/lcd_touch/esp_lcd_touch_gt1151"
- esp_lcd_touch_ft5x06:
+ esp_lcd_touch_ft5x06:
version: "^1"
override_path: "../../components/lcd_touch/esp_lcd_touch_ft5x06"
esp_lcd_panel_io_additions: "^1"
diff --git a/bsp/esp32_s3_lcd_ev_board/src/bsp_sub_board.c b/bsp/esp32_s3_lcd_ev_board/src/bsp_sub_board.c
index b4943f7ae..379e2e291 100644
--- a/bsp/esp32_s3_lcd_ev_board/src/bsp_sub_board.c
+++ b/bsp/esp32_s3_lcd_ev_board/src/bsp_sub_board.c
@@ -106,7 +106,11 @@ drift, please enable `ESP32S3_DATA_CACHE_LINE_32B` instead");
.clk_src = LCD_CLK_SRC_PLL160M,
.dma_burst_size = 64,
.data_width = 16,
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6,0,0)
+ .in_color_format = LCD_COLOR_FMT_RGB565,
+#else
.bits_per_pixel = 16,
+#endif
.de_gpio_num = BSP_LCD_SUB_BOARD_2_3_DE,
.pclk_gpio_num = BSP_LCD_SUB_BOARD_2_3_PCLK,
.vsync_gpio_num = BSP_LCD_SUB_BOARD_2_3_VSYNC,
@@ -168,7 +172,11 @@ drift, please enable `ESP32S3_DATA_CACHE_LINE_32B` instead");
.clk_src = LCD_CLK_SRC_PLL160M,
.dma_burst_size = 64,
.data_width = 16,
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6,0,0)
+ .in_color_format = LCD_COLOR_FMT_RGB565,
+#else
.bits_per_pixel = 16,
+#endif
.de_gpio_num = BSP_LCD_SUB_BOARD_2_3_DE,
.pclk_gpio_num = BSP_LCD_SUB_BOARD_2_3_PCLK,
.vsync_gpio_num = BSP_LCD_SUB_BOARD_2_3_VSYNC,
diff --git a/components/lcd/esp_lcd_ili9881c/idf_component.yml b/components/lcd/esp_lcd_ili9881c/idf_component.yml
index 2003a863c..a8af2de55 100644
--- a/components/lcd/esp_lcd_ili9881c/idf_component.yml
+++ b/components/lcd/esp_lcd_ili9881c/idf_component.yml
@@ -1,4 +1,4 @@
-version: "1.0.2"
+version: "1.0.3"
targets:
- esp32p4
description: ESP LCD ILI9881C (MIPI DSI)
diff --git a/components/lcd/esp_lcd_ili9881c/include/esp_lcd_ili9881c.h b/components/lcd/esp_lcd_ili9881c/include/esp_lcd_ili9881c.h
index 1f1c49434..b7fae1c0d 100644
--- a/components/lcd/esp_lcd_ili9881c/include/esp_lcd_ili9881c.h
+++ b/components/lcd/esp_lcd_ili9881c/include/esp_lcd_ili9881c.h
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -118,6 +118,35 @@ esp_err_t esp_lcd_new_panel_ili9881c(const esp_lcd_panel_io_handle_t io, const e
}, \
.flags.use_dma2d = true, \
}
+
+/**
+ * @brief MIPI DPI configuration structure
+ *
+ * @note refresh_rate = (dpi_clock_freq_mhz * 1000000) / (h_res + hsync_pulse_width + hsync_back_porch + hsync_front_porch)
+ * / (v_res + vsync_pulse_width + vsync_back_porch + vsync_front_porch)
+ *
+ * @param[in] color_format Input color format of the panel
+ *
+ */
+#define ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG_CF(color_format) \
+ { \
+ .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
+ .dpi_clock_freq_mhz = 80, \
+ .virtual_channel = 0, \
+ .in_color_format = color_format, \
+ .num_fbs = 1, \
+ .video_timing = { \
+ .h_size = 800, \
+ .v_size = 1280, \
+ .hsync_back_porch = 140, \
+ .hsync_pulse_width = 40, \
+ .hsync_front_porch = 40, \
+ .vsync_back_porch = 16, \
+ .vsync_pulse_width = 4, \
+ .vsync_front_porch = 16, \
+ }, \
+ .flags.use_dma2d = true, \
+ }
#endif
#ifdef __cplusplus
diff --git a/components/lcd/esp_lcd_ili9881c/test_apps/main/test_esp_lcd_ili9881c.c b/components/lcd/esp_lcd_ili9881c/test_apps/main/test_esp_lcd_ili9881c.c
index ceabef823..460488482 100644
--- a/components/lcd/esp_lcd_ili9881c/test_apps/main/test_esp_lcd_ili9881c.c
+++ b/components/lcd/esp_lcd_ili9881c/test_apps/main/test_esp_lcd_ili9881c.c
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -36,11 +36,9 @@
#define TEST_MIPI_DSI_LANE_NUM (2)
#if TEST_LCD_BIT_PER_PIXEL == 24
-#define TEST_MIPI_DPI_PX_FORMAT (LCD_COLOR_PIXEL_FORMAT_RGB888)
-#elif TEST_LCD_BIT_PER_PIXEL == 18
-#define TEST_MIPI_DPI_PX_FORMAT (LCD_COLOR_PIXEL_FORMAT_RGB666)
+#define TEST_MIPI_DPI_PX_FORMAT (LCD_COLOR_FMT_RGB888)
#elif TEST_LCD_BIT_PER_PIXEL == 16
-#define TEST_MIPI_DPI_PX_FORMAT (LCD_COLOR_PIXEL_FORMAT_RGB565)
+#define TEST_MIPI_DPI_PX_FORMAT (LCD_COLOR_FMT_RGB565)
#endif
#define TEST_DELAY_TIME_MS (3000)
@@ -96,7 +94,7 @@ static void test_init_lcd(void)
TEST_ESP_OK(esp_lcd_new_panel_io_dbi(mipi_dsi_bus, &dbi_config, &mipi_dbi_io));
ESP_LOGI(TAG, "Install LCD driver of ili9881c");
- esp_lcd_dpi_panel_config_t dpi_config = ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG(TEST_MIPI_DPI_PX_FORMAT);
+ esp_lcd_dpi_panel_config_t dpi_config = ILI9881C_800_1280_PANEL_60HZ_DPI_CONFIG_CF(TEST_MIPI_DPI_PX_FORMAT);
ili9881c_vendor_config_t vendor_config = {
.mipi_config = {
.dsi_bus = mipi_dsi_bus,
diff --git a/components/lcd/esp_lcd_lt8912b/idf_component.yml b/components/lcd/esp_lcd_lt8912b/idf_component.yml
index 5b2671f08..7a702f5e5 100644
--- a/components/lcd/esp_lcd_lt8912b/idf_component.yml
+++ b/components/lcd/esp_lcd_lt8912b/idf_component.yml
@@ -1,4 +1,4 @@
-version: "0.1.2"
+version: "0.1.3"
description: ESP LCD LT8912B (MIPI DSI - HDMI)
url: https://github.com/espressif/esp-bsp/tree/master/components/lcd/esp_lcd_lt8912b
repository: "https://github.com/espressif/esp-bsp.git"
diff --git a/components/lcd/esp_lcd_lt8912b/include/esp_lcd_lt8912b.h b/components/lcd/esp_lcd_lt8912b/include/esp_lcd_lt8912b.h
index 282290bd6..b79dfb525 100644
--- a/components/lcd/esp_lcd_lt8912b/include/esp_lcd_lt8912b.h
+++ b/components/lcd/esp_lcd_lt8912b/include/esp_lcd_lt8912b.h
@@ -158,7 +158,7 @@ bool esp_lcd_panel_lt8912b_is_ready(esp_lcd_panel_t *panel);
.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
.dpi_clock_freq_mhz = 40, \
.virtual_channel = 0, \
- .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
+ .in_color_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
.num_fbs = NUM_FBS, \
.video_timing = { \
.h_size = 800, \
@@ -203,7 +203,7 @@ bool esp_lcd_panel_lt8912b_is_ready(esp_lcd_panel_t *panel);
.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
.dpi_clock_freq_mhz = 56, \
.virtual_channel = 0, \
- .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
+ .in_color_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
.num_fbs = NUM_FBS, \
.video_timing = { \
.h_size = 1024, \
@@ -248,7 +248,7 @@ bool esp_lcd_panel_lt8912b_is_ready(esp_lcd_panel_t *panel);
.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
.dpi_clock_freq_mhz = 64, \
.virtual_channel = 0, \
- .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
+ .in_color_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
.num_fbs = NUM_FBS, \
.video_timing = { \
.h_size = 1280, \
@@ -293,7 +293,7 @@ bool esp_lcd_panel_lt8912b_is_ready(esp_lcd_panel_t *panel);
.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
.dpi_clock_freq_mhz = 70, \
.virtual_channel = 0, \
- .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
+ .in_color_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
.num_fbs = NUM_FBS, \
.video_timing = { \
.h_size = 1280, \
@@ -338,7 +338,7 @@ bool esp_lcd_panel_lt8912b_is_ready(esp_lcd_panel_t *panel);
.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
.dpi_clock_freq_mhz = 70, \
.virtual_channel = 0, \
- .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
+ .in_color_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
.num_fbs = NUM_FBS, \
.video_timing = { \
.h_size = 1920, \
@@ -386,7 +386,7 @@ bool esp_lcd_panel_lt8912b_is_ready(esp_lcd_panel_t *panel);
.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, \
.dpi_clock_freq_mhz = 120, \
.virtual_channel = 0, \
- .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
+ .in_color_format = LCD_COLOR_PIXEL_FORMAT_RGB888, \
.num_fbs = NUM_FBS, \
.video_timing = { \
.h_size = 1920, \