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, \