diff --git a/components/esp_driver_cam/CMakeLists.txt b/components/esp_driver_cam/CMakeLists.txt index cd6f3371df..f5e7a22d10 100644 --- a/components/esp_driver_cam/CMakeLists.txt +++ b/components/esp_driver_cam/CMakeLists.txt @@ -4,7 +4,7 @@ set(srcs "esp_cam_ctlr.c" "dvp_share_ctrl.c") set(includes "include" "interface") -set(requires "esp_driver_isp") +set(requires "esp_driver_isp" "esp_hal_cam") set(priv_requires "esp_driver_gpio") diff --git a/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h b/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h index 53cb812846..54cf67de2c 100644 --- a/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h +++ b/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h @@ -17,16 +17,18 @@ extern "C" { #endif +#define ESP_CAM_CTLR_DVP_DATA_SIG_NUM 16 + /** * @brief ESP CAM DVP pins configuration */ typedef struct esp_cam_ctlr_dvp_pin_config { - cam_ctlr_data_width_t data_width; /*!< Number of data lines */ - gpio_num_t data_io[CAM_DVP_DATA_SIG_NUM]; /*!< DVP data pin number */ - gpio_num_t vsync_io; /*!< DVP V-Sync pin number */ - gpio_num_t de_io; /*!< DVP DE pin number */ - gpio_num_t pclk_io; /*!< DVP PCLK input pin number, clock is from camera sensor */ - gpio_num_t xclk_io; /*!< DVP output clock pin number, if using external XTAL, set xclk_io = GPIO_NUM_NC */ + cam_ctlr_data_width_t data_width; /*!< Number of data lines */ + gpio_num_t data_io[ESP_CAM_CTLR_DVP_DATA_SIG_NUM]; /*!< DVP data pin number */ + gpio_num_t vsync_io; /*!< DVP V-Sync pin number */ + gpio_num_t de_io; /*!< DVP DE pin number */ + gpio_num_t pclk_io; /*!< DVP PCLK input pin number, clock is from camera sensor */ + gpio_num_t xclk_io; /*!< DVP output clock pin number, if using external XTAL, set xclk_io = GPIO_NUM_NC */ } esp_cam_ctlr_dvp_pin_config_t; /** diff --git a/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c b/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c index 0a2096701a..4e7dfe1aa2 100644 --- a/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c +++ b/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c @@ -18,7 +18,7 @@ #include "esp_log.h" #include "esp_check.h" #include "esp_clk_tree.h" -#include "soc/cam_periph.h" +#include "hal/cam_periph.h" #include "soc/soc_caps.h" #include "esp_cam_ctlr_dvp_cam.h" #include "esp_private/esp_cam_dvp.h" @@ -43,6 +43,14 @@ #define DVP_CAM_CLK_ATOMIC() #endif +#if CAM_LL_DATA_WIDTH_MAX +#define CAP_DVP_PERIPH_NUM CAM_LL_PERIPH_NUM /*!< DVP port number */ +#define CAM_DVP_DATA_SIG_NUM CAM_LL_DATA_WIDTH_MAX /*!< DVP data bus width of CAM */ +#else +#define CAP_DVP_PERIPH_NUM 0 /*!< Default value */ +#define CAM_DVP_DATA_SIG_NUM 0 /*!< Default value */ +#endif + #define ALIGN_UP_BY(num, align) ((align) == 0 ? (num) : (((num) + ((align) - 1)) & ~((align) - 1))) #define DVP_CAM_CONFIG_INPUT_PIN(pin, sig, inv) \ diff --git a/components/esp_hal_cam/CMakeLists.txt b/components/esp_hal_cam/CMakeLists.txt new file mode 100644 index 0000000000..f6114de4ba --- /dev/null +++ b/components/esp_hal_cam/CMakeLists.txt @@ -0,0 +1,27 @@ +idf_build_get_property(target IDF_TARGET) +if(${target} STREQUAL "linux") + return() # This component is not supported by the POSIX/Linux simulator +endif() + +set(srcs) +set(public_include "include") + +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${target}/include") + list(APPEND public_include "${target}/include") +endif() + +# CAM related source files +if(CONFIG_SOC_LCDCAM_CAM_SUPPORTED) + list(APPEND srcs "cam_hal.c") + list(APPEND srcs "${target}/cam_periph.c") +endif() + +# CSI related source files +if(CONFIG_SOC_MIPI_CSI_SUPPORTED) + list(APPEND srcs "mipi_csi_hal.c") + list(APPEND srcs "${target}/mipi_csi_periph.c") +endif() + +idf_component_register(SRCS ${srcs} + INCLUDE_DIRS ${public_include} + REQUIRES soc hal) diff --git a/components/esp_hal_cam/README.md b/components/esp_hal_cam/README.md new file mode 100644 index 0000000000..453965ccb4 --- /dev/null +++ b/components/esp_hal_cam/README.md @@ -0,0 +1,9 @@ +# `esp_hal_cam` + +⚠️ This HAL component is still under heavy development at the moment, so we don't guarantee the stability and backward-compatibility among versions. + +The `esp_hal_cam` component provides a **Hardware Abstraction Layer** of Camera Controller for all targets supported by ESP-IDF. + +In a broad sense, the HAL layer consists of two sub-layers: HAL (upper) and Low-Level(bottom). The HAL layer defines the steps and data that is required to operate a peripheral (e.g. initialization, parameter settings). The low-level is a translation layer above the register files under the `soc` component, it only covers general conceptions to register configurations. + +The functions in this file mainly provide hardware abstraction for IDF peripheral drivers. For advanced developers, the HAL layer functions can also be directly used to assist in implementing their own drivers. However, it needs to be mentioned again that the interfaces here do not guarantee stability. diff --git a/components/hal/cam_hal.c b/components/esp_hal_cam/cam_hal.c similarity index 98% rename from components/hal/cam_hal.c rename to components/esp_hal_cam/cam_hal.c index f4f8ee8577..fc70f89171 100644 --- a/components/hal/cam_hal.c +++ b/components/esp_hal_cam/cam_hal.c @@ -8,7 +8,7 @@ #include "hal/cam_hal.h" #include "hal/color_types.h" #include "soc/soc_caps.h" -#include "soc/cam_periph.h" +#include "hal/cam_periph.h" /** * @brief Default format conversion configuration @@ -147,7 +147,7 @@ void cam_hal_stop_streaming(cam_hal_context_t *hal) * @param config Color conversion configuration. If NULL, default config is used. */ void cam_hal_color_format_convert(cam_hal_context_t *hal, - const cam_ctlr_format_conv_config_t *config) + const cam_ctlr_format_conv_config_t *config) { // Use provided config or default const cam_ctlr_format_conv_config_t *cfg = config; diff --git a/components/soc/esp32p4/cam_periph.c b/components/esp_hal_cam/esp32p4/cam_periph.c similarity index 97% rename from components/soc/esp32p4/cam_periph.c rename to components/esp_hal_cam/esp32p4/cam_periph.c index acecf88272..5ff83dfa4b 100644 --- a/components/soc/esp32p4/cam_periph.c +++ b/components/esp_hal_cam/esp32p4/cam_periph.c @@ -5,7 +5,7 @@ */ #include "soc/gpio_sig_map.h" -#include "soc/cam_periph.h" +#include "hal/cam_periph.h" const cam_signal_conn_t cam_periph_signals = { .buses = { diff --git a/components/hal/esp32p4/include/hal/cam_ll.h b/components/esp_hal_cam/esp32p4/include/hal/cam_ll.h similarity index 99% rename from components/hal/esp32p4/include/hal/cam_ll.h rename to components/esp_hal_cam/esp32p4/include/hal/cam_ll.h index 9fee8b2308..826977bcbb 100644 --- a/components/hal/esp32p4/include/hal/cam_ll.h +++ b/components/esp_hal_cam/esp32p4/include/hal/cam_ll.h @@ -20,6 +20,8 @@ extern "C" { #define CAM_LL_CLK_FRAC_DIV_N_MAX 256 // CAM_CLK = CAM_CLK_S / (N + b/a), the N register is 8 bit-width #define CAM_LL_CLK_FRAC_DIV_AB_MAX 64 // CAM_CLK = CAM_CLK_S / (N + b/a), the a/b register is 6 bit-width +#define CAM_LL_PERIPH_NUM (1U) +#define CAM_LL_DATA_WIDTH_MAX (16U) /** * @brief Enable the bus clock for CAM module diff --git a/components/hal/esp32p4/include/hal/mipi_csi_brg_ll.h b/components/esp_hal_cam/esp32p4/include/hal/mipi_csi_brg_ll.h similarity index 100% rename from components/hal/esp32p4/include/hal/mipi_csi_brg_ll.h rename to components/esp_hal_cam/esp32p4/include/hal/mipi_csi_brg_ll.h diff --git a/components/hal/esp32p4/include/hal/mipi_csi_host_ll.h b/components/esp_hal_cam/esp32p4/include/hal/mipi_csi_host_ll.h similarity index 100% rename from components/hal/esp32p4/include/hal/mipi_csi_host_ll.h rename to components/esp_hal_cam/esp32p4/include/hal/mipi_csi_host_ll.h diff --git a/components/hal/esp32p4/include/hal/mipi_csi_ll.h b/components/esp_hal_cam/esp32p4/include/hal/mipi_csi_ll.h similarity index 100% rename from components/hal/esp32p4/include/hal/mipi_csi_ll.h rename to components/esp_hal_cam/esp32p4/include/hal/mipi_csi_ll.h diff --git a/components/hal/esp32p4/include/hal/mipi_csi_phy_ll.h b/components/esp_hal_cam/esp32p4/include/hal/mipi_csi_phy_ll.h similarity index 100% rename from components/hal/esp32p4/include/hal/mipi_csi_phy_ll.h rename to components/esp_hal_cam/esp32p4/include/hal/mipi_csi_phy_ll.h diff --git a/components/soc/esp32p4/mipi_csi_periph.c b/components/esp_hal_cam/esp32p4/mipi_csi_periph.c similarity index 98% rename from components/soc/esp32p4/mipi_csi_periph.c rename to components/esp_hal_cam/esp32p4/mipi_csi_periph.c index 4f4ae4d0ee..ab5cd2d4c7 100644 --- a/components/soc/esp32p4/mipi_csi_periph.c +++ b/components/esp_hal_cam/esp32p4/mipi_csi_periph.c @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -#include "soc/mipi_csi_periph.h" +#include "hal/mipi_csi_periph.h" const soc_mipi_csi_phy_pll_freq_range_t soc_mipi_csi_phy_pll_ranges[] = { {90, 99, 0x00}, // [90,100) Mbps diff --git a/components/soc/esp32s3/cam_periph.c b/components/esp_hal_cam/esp32s3/cam_periph.c similarity index 97% rename from components/soc/esp32s3/cam_periph.c rename to components/esp_hal_cam/esp32s3/cam_periph.c index 36799a4075..71393bfae3 100644 --- a/components/soc/esp32s3/cam_periph.c +++ b/components/esp_hal_cam/esp32s3/cam_periph.c @@ -5,7 +5,7 @@ */ #include "soc/gpio_sig_map.h" -#include "soc/cam_periph.h" +#include "hal/cam_periph.h" const cam_signal_conn_t cam_periph_signals = { .buses = { diff --git a/components/hal/esp32s3/include/hal/cam_ll.h b/components/esp_hal_cam/esp32s3/include/hal/cam_ll.h similarity index 97% rename from components/hal/esp32s3/include/hal/cam_ll.h rename to components/esp_hal_cam/esp32s3/include/hal/cam_ll.h index 28b151fa92..b52b34eab0 100644 --- a/components/hal/esp32s3/include/hal/cam_ll.h +++ b/components/esp_hal_cam/esp32s3/include/hal/cam_ll.h @@ -20,6 +20,8 @@ extern "C" { #define CAM_LL_CLK_FRAC_DIV_N_MAX 256 // CAM_CLK = CAM_CLK_S / (N + b/a), the N register is 8 bit-width #define CAM_LL_CLK_FRAC_DIV_AB_MAX 64 // CAM_CLK = CAM_CLK_S / (N + b/a), the a/b register is 6 bit-width +#define CAM_LL_PERIPH_NUM (1U) +#define CAM_LL_DATA_WIDTH_MAX (16U) /** * @brief Enable the bus clock for CAM module @@ -80,21 +82,21 @@ static inline void cam_ll_enable_clk(int group_id, bool en) static inline void cam_ll_select_clk_src(int group_id, cam_clock_source_t src) { switch (src) { - case CAM_CLK_SRC_XTAL: - LCD_CAM.cam_ctrl.cam_clk_sel = 1; - break; - case CAM_CLK_SRC_PLL240M: - LCD_CAM.cam_ctrl.cam_clk_sel = 2; - break; - case CAM_CLK_SRC_PLL160M: - LCD_CAM.cam_ctrl.cam_clk_sel = 3; - break; - default: - // disable LCD clock source - LCD_CAM.cam_ctrl.cam_clk_sel = 0; - HAL_ASSERT(false); - break; - } + case CAM_CLK_SRC_XTAL: + LCD_CAM.cam_ctrl.cam_clk_sel = 1; + break; + case CAM_CLK_SRC_PLL240M: + LCD_CAM.cam_ctrl.cam_clk_sel = 2; + break; + case CAM_CLK_SRC_PLL160M: + LCD_CAM.cam_ctrl.cam_clk_sel = 3; + break; + default: + // disable LCD clock source + LCD_CAM.cam_ctrl.cam_clk_sel = 0; + HAL_ASSERT(false); + break; + } } /** diff --git a/components/hal/include/hal/cam_ctlr_types.h b/components/esp_hal_cam/include/hal/cam_ctlr_types.h similarity index 100% rename from components/hal/include/hal/cam_ctlr_types.h rename to components/esp_hal_cam/include/hal/cam_ctlr_types.h diff --git a/components/hal/include/hal/cam_hal.h b/components/esp_hal_cam/include/hal/cam_hal.h similarity index 96% rename from components/hal/include/hal/cam_hal.h rename to components/esp_hal_cam/include/hal/cam_hal.h index 79901c3ee6..8b21d0027c 100644 --- a/components/hal/include/hal/cam_hal.h +++ b/components/esp_hal_cam/include/hal/cam_hal.h @@ -86,7 +86,7 @@ void cam_hal_stop_streaming(cam_hal_context_t *hal); * @param config Color conversion configuration. If NULL, default config is used. */ void cam_hal_color_format_convert(cam_hal_context_t *hal, - const cam_ctlr_format_conv_config_t *config); + const cam_ctlr_format_conv_config_t *config); #ifdef __cplusplus } diff --git a/components/soc/include/soc/cam_periph.h b/components/esp_hal_cam/include/hal/cam_periph.h similarity index 72% rename from components/soc/include/soc/cam_periph.h rename to components/esp_hal_cam/include/hal/cam_periph.h index 9845e8927b..365cfd747f 100644 --- a/components/soc/include/soc/cam_periph.h +++ b/components/esp_hal_cam/include/hal/cam_periph.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 */ @@ -8,6 +8,9 @@ #include "soc/soc_caps.h" #include "soc/periph_defs.h" +#if SOC_HAS(LCDCAM_CAM) +#include "hal/cam_ll.h" +#endif #ifdef __cplusplus extern "C" { @@ -18,13 +21,13 @@ typedef struct { struct { const shared_periph_module_t module; const int irq_id; - const int data_sigs[SOC_LCDCAM_CAM_DATA_WIDTH_MAX]; + const int data_sigs[CAM_LL_DATA_WIDTH_MAX]; const int hsync_sig; const int vsync_sig; const int pclk_sig; const int de_sig; const int clk_sig; - } buses[SOC_LCDCAM_CAM_PERIPH_NUM]; + } buses[CAM_LL_PERIPH_NUM]; } cam_signal_conn_t; extern const cam_signal_conn_t cam_periph_signals; diff --git a/components/hal/include/hal/cam_types.h b/components/esp_hal_cam/include/hal/cam_types.h similarity index 51% rename from components/hal/include/hal/cam_types.h rename to components/esp_hal_cam/include/hal/cam_types.h index 32e22f22a6..668fa867b6 100644 --- a/components/hal/include/hal/cam_types.h +++ b/components/esp_hal_cam/include/hal/cam_types.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -15,14 +15,6 @@ extern "C" { #endif -#if SOC_LCDCAM_CAM_DATA_WIDTH_MAX -#define CAP_DVP_PERIPH_NUM SOC_LCDCAM_CAM_PERIPH_NUM /*!< DVP port number */ -#define CAM_DVP_DATA_SIG_NUM SOC_LCDCAM_CAM_DATA_WIDTH_MAX /*!< DVP data bus width of CAM */ -#else -#define CAP_DVP_PERIPH_NUM 0 /*!< Default value */ -#define CAM_DVP_DATA_SIG_NUM 0 /*!< Default value */ -#endif - #if SOC_LCDCAM_CAM_SUPPORTED typedef soc_periph_cam_clk_src_t cam_clock_source_t; /*!< Clock source type of CAM */ #else diff --git a/components/hal/include/hal/mipi_csi_hal.h b/components/esp_hal_cam/include/hal/mipi_csi_hal.h similarity index 100% rename from components/hal/include/hal/mipi_csi_hal.h rename to components/esp_hal_cam/include/hal/mipi_csi_hal.h diff --git a/components/soc/include/soc/mipi_csi_periph.h b/components/esp_hal_cam/include/hal/mipi_csi_periph.h similarity index 100% rename from components/soc/include/soc/mipi_csi_periph.h rename to components/esp_hal_cam/include/hal/mipi_csi_periph.h diff --git a/components/hal/include/hal/mipi_csi_types.h b/components/esp_hal_cam/include/hal/mipi_csi_types.h similarity index 100% rename from components/hal/include/hal/mipi_csi_types.h rename to components/esp_hal_cam/include/hal/mipi_csi_types.h diff --git a/components/hal/mipi_csi_hal.c b/components/esp_hal_cam/mipi_csi_hal.c similarity index 99% rename from components/hal/mipi_csi_hal.c rename to components/esp_hal_cam/mipi_csi_hal.c index 07e8e203c1..3f8aaba033 100644 --- a/components/hal/mipi_csi_hal.c +++ b/components/esp_hal_cam/mipi_csi_hal.c @@ -7,7 +7,7 @@ #include "hal/log.h" #include "hal/mipi_csi_hal.h" #include "hal/mipi_csi_ll.h" -#include "soc/mipi_csi_periph.h" +#include "hal/mipi_csi_periph.h" #define MHZ (1000 * 1000) diff --git a/components/esp_hw_support/CMakeLists.txt b/components/esp_hw_support/CMakeLists.txt index bee803bb00..10aa6b6941 100644 --- a/components/esp_hw_support/CMakeLists.txt +++ b/components/esp_hw_support/CMakeLists.txt @@ -233,3 +233,8 @@ if(NOT non_os_build) idf_component_optional_requires(PRIVATE esp_psram) endif() endif() + +if(${target} STREQUAL "esp32p4") + # for mipi_csi_share_hw_ctrl.c + idf_component_optional_requires(PRIVATE esp_hal_cam) +endif() diff --git a/components/esp_system/CMakeLists.txt b/components/esp_system/CMakeLists.txt index 855fe3ecd4..98340aa930 100644 --- a/components/esp_system/CMakeLists.txt +++ b/components/esp_system/CMakeLists.txt @@ -87,6 +87,7 @@ else() esp_hal_emac esp_hal_pcnt esp_hal_parlio + esp_hal_cam LDFRAGMENTS "linker.lf" "app.lf") add_subdirectory(port) diff --git a/components/hal/CMakeLists.txt b/components/hal/CMakeLists.txt index ac5dcb8381..3138420c8e 100644 --- a/components/hal/CMakeLists.txt +++ b/components/hal/CMakeLists.txt @@ -145,10 +145,6 @@ elseif(NOT BOOTLOADER_BUILD) endif() endif() - if(CONFIG_SOC_MIPI_CSI_SUPPORTED) - list(APPEND srcs "mipi_csi_hal.c") - endif() - if(CONFIG_SOC_ECC_SUPPORTED) list(APPEND srcs "ecc_hal.c") endif() @@ -224,10 +220,6 @@ elseif(NOT BOOTLOADER_BUILD) list(APPEND srcs "ds_hal.c") endif() - if(CONFIG_SOC_LCDCAM_CAM_SUPPORTED) - list(APPEND srcs "cam_hal.c") - endif() - if(CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED) list(APPEND srcs "usb_serial_jtag_hal.c") endif() diff --git a/components/soc/CMakeLists.txt b/components/soc/CMakeLists.txt index 8ce0e74a34..77eba39622 100644 --- a/components/soc/CMakeLists.txt +++ b/components/soc/CMakeLists.txt @@ -109,10 +109,6 @@ if(CONFIG_SOC_TEMP_SENSOR_SUPPORTED) list(APPEND srcs "${target_folder}/temperature_sensor_periph.c") endif() -if(CONFIG_SOC_MIPI_CSI_SUPPORTED) - list(APPEND srcs "${target_folder}/mipi_csi_periph.c") -endif() - if(CONFIG_SOC_MPI_SUPPORTED) list(APPEND srcs "${target_folder}/mpi_periph.c") endif() @@ -151,10 +147,6 @@ if(CONFIG_SOC_PAU_SUPPORTED AND CONFIG_SOC_LIGHT_SLEEP_SUPPORTED AND CONFIG_SOC_ list(APPEND srcs "${target_folder}/system_retention_periph.c") endif() -if(CONFIG_SOC_LCDCAM_CAM_SUPPORTED) - list(APPEND srcs "${target_folder}/cam_periph.c") -endif() - if(CONFIG_SOC_BOD_SUPPORTED) list(APPEND srcs "${target_folder}/power_supply_periph.c") endif() diff --git a/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in b/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in index 001ce9d9fd..cb893e6a73 100644 --- a/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in @@ -2031,14 +2031,6 @@ config SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV bool default y -config SOC_LCDCAM_CAM_PERIPH_NUM - int - default 1 - -config SOC_LCDCAM_CAM_DATA_WIDTH_MAX - int - default 16 - config SOC_I3C_MASTER_PERIPH_NUM bool default y diff --git a/components/soc/esp32p4/include/soc/soc_caps.h b/components/soc/esp32p4/include/soc/soc_caps.h index 99ff5e856b..a8fb968661 100644 --- a/components/soc/esp32p4/include/soc/soc_caps.h +++ b/components/soc/esp32p4/include/soc/soc_caps.h @@ -772,8 +772,6 @@ /*--------------------------- CAM ---------------------------------*/ #define SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV (1) -#define SOC_LCDCAM_CAM_PERIPH_NUM (1U) -#define SOC_LCDCAM_CAM_DATA_WIDTH_MAX (16U) /*--------------------------- I3C ---------------------------------*/ #define SOC_I3C_MASTER_PERIPH_NUM (1) diff --git a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in index f8f6ba6759..555d6c254e 100644 --- a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in @@ -1374,11 +1374,3 @@ config SOC_PHY_COMBO_MODULE config SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV bool default y - -config SOC_LCDCAM_CAM_PERIPH_NUM - int - default 1 - -config SOC_LCDCAM_CAM_DATA_WIDTH_MAX - int - default 16 diff --git a/components/soc/esp32s3/include/soc/soc_caps.h b/components/soc/esp32s3/include/soc/soc_caps.h index f079984673..8ef2d11bb9 100644 --- a/components/soc/esp32s3/include/soc/soc_caps.h +++ b/components/soc/esp32s3/include/soc/soc_caps.h @@ -559,5 +559,3 @@ /*--------------------------- CAM ---------------------------------*/ #define SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV (1) -#define SOC_LCDCAM_CAM_PERIPH_NUM (1U) -#define SOC_LCDCAM_CAM_DATA_WIDTH_MAX (16U) diff --git a/docs/doxygen/Doxyfile_esp32p4 b/docs/doxygen/Doxyfile_esp32p4 index 0a39427c62..46c1bba702 100644 --- a/docs/doxygen/Doxyfile_esp32p4 +++ b/docs/doxygen/Doxyfile_esp32p4 @@ -1,57 +1,58 @@ INPUT += \ - $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_i2c.h \ - $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_uart.h \ - $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_spi.h \ + $(PROJECT_PATH)/components/esp_driver_bitscrambler/include/driver/bitscrambler.h \ + $(PROJECT_PATH)/components/esp_driver_bitscrambler/include/driver/bitscrambler_loopback.h \ + $(PROJECT_PATH)/components/esp_driver_cam/csi/include/esp_cam_ctlr_csi.h \ + $(PROJECT_PATH)/components/esp_driver_cam/include/esp_cam_ctlr.h \ + $(PROJECT_PATH)/components/esp_driver_cam/include/esp_cam_ctlr_types.h \ + $(PROJECT_PATH)/components/esp_driver_cam/isp_dvp/include/esp_cam_ctlr_isp_dvp.h \ + $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s.h \ + $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s_pdm.h \ + $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s_std.h \ + $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s_vad.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_ae.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_af.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_awb.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_bf.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_blc.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_ccm.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_color.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_core.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_crop.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_demosaic.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_gamma.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_hist.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_lsc.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_sharpen.h \ + $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_types.h \ + $(PROJECT_PATH)/components/esp_driver_jpeg/include/driver/jpeg_decode.h \ + $(PROJECT_PATH)/components/esp_driver_jpeg/include/driver/jpeg_encode.h \ + $(PROJECT_PATH)/components/esp_driver_jpeg/include/driver/jpeg_types.h \ + $(PROJECT_PATH)/components/esp_driver_ppa/include/driver/ppa.h \ + $(PROJECT_PATH)/components/esp_driver_touch_sens/hw_ver3/include/driver/touch_version_types.h \ + $(PROJECT_PATH)/components/esp_driver_touch_sens/include/driver/touch_sens.h \ + $(PROJECT_PATH)/components/esp_driver_touch_sens/include/driver/touch_sens_types.h \ + $(PROJECT_PATH)/components/esp_hal_cam/include/hal/cam_ctlr_types.h \ + $(PROJECT_PATH)/components/esp_lcd/dsi/include/esp_lcd_mipi_dsi.h \ + $(PROJECT_PATH)/components/esp_lcd/rgb/include/esp_lcd_panel_rgb.h \ + $(PROJECT_PATH)/components/hal/include/hal/isp_types.h \ + $(PROJECT_PATH)/components/hal/include/hal/ppa_types.h \ + $(PROJECT_PATH)/components/sdmmc/include/sd_pwr_ctrl.h \ + $(PROJECT_PATH)/components/sdmmc/include/sd_pwr_ctrl_by_on_chip_ldo.h \ + $(PROJECT_PATH)/components/soc/$(IDF_TARGET)/include/soc/bitscrambler_peri_select.h \ $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_etm.h \ + $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_i2c.h \ + $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_spi.h \ + $(PROJECT_PATH)/components/ulp/lp_core/include/lp_core_uart.h \ $(PROJECT_PATH)/components/ulp/lp_core/include/ulp_lp_core.h \ $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_gpio.h \ $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_i2c.h \ + $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_interrupts.h \ + $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_mailbox.h \ $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_print.h \ + $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_spi.h \ $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_uart.h \ $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_utils.h \ - $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_interrupts.h \ - $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_mailbox.h \ - $(PROJECT_PATH)/components/ulp/lp_core/lp_core/include/ulp_lp_core_spi.h \ - $(PROJECT_PATH)/components/ulp/lp_core/shared/include/ulp_lp_core_lp_vad_shared.h \ - $(PROJECT_PATH)/components/ulp/ulp_common/include/ulp_common.h \ - $(PROJECT_PATH)/components/esp_driver_bitscrambler/include/driver/bitscrambler.h \ - $(PROJECT_PATH)/components/esp_driver_bitscrambler/include/driver/bitscrambler_loopback.h \ - $(PROJECT_PATH)/components/esp_driver_cam/include/esp_cam_ctlr.h \ - $(PROJECT_PATH)/components/esp_driver_cam/include/esp_cam_ctlr_types.h \ - $(PROJECT_PATH)/components/esp_driver_cam/csi/include/esp_cam_ctlr_csi.h \ - $(PROJECT_PATH)/components/esp_driver_cam/isp_dvp/include/esp_cam_ctlr_isp_dvp.h \ - $(PROJECT_PATH)/components/hal/include/hal/isp_types.h \ - $(PROJECT_PATH)/components/hal/include/hal/ppa_types.h \ - $(PROJECT_PATH)/components/esp_driver_touch_sens/include/driver/touch_sens.h \ - $(PROJECT_PATH)/components/esp_driver_touch_sens/include/driver/touch_sens_types.h \ - $(PROJECT_PATH)/components/esp_driver_touch_sens/hw_ver3/include/driver/touch_version_types.h \ - $(PROJECT_PATH)/components/esp_driver_jpeg/include/driver/jpeg_types.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_types.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_af.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_ae.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_awb.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_ccm.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_bf.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_blc.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_lsc.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_crop.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_demosaic.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_sharpen.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_core.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_gamma.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_hist.h \ - $(PROJECT_PATH)/components/esp_driver_isp/include/driver/isp_color.h \ - $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s.h \ - $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s_std.h \ - $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s_pdm.h \ - $(PROJECT_PATH)/components/esp_driver_i2s/include/driver/lp_i2s_vad.h \ - $(PROJECT_PATH)/components/esp_driver_jpeg/include/driver/jpeg_decode.h \ - $(PROJECT_PATH)/components/esp_driver_jpeg/include/driver/jpeg_encode.h \ - $(PROJECT_PATH)/components/esp_driver_ppa/include/driver/ppa.h \ - $(PROJECT_PATH)/components/esp_lcd/dsi/include/esp_lcd_mipi_dsi.h \ - $(PROJECT_PATH)/components/esp_lcd/rgb/include/esp_lcd_panel_rgb.h \ - $(PROJECT_PATH)/components/soc/$(IDF_TARGET)/include/soc/bitscrambler_peri_select.h \ - $(PROJECT_PATH)/components/sdmmc/include/sd_pwr_ctrl.h \ - $(PROJECT_PATH)/components/sdmmc/include/sd_pwr_ctrl_by_on_chip_ldo.h \ $(PROJECT_PATH)/components/ulp/lp_core/shared/include/ulp_lp_core_lp_uart_shared.h \ + $(PROJECT_PATH)/components/ulp/lp_core/shared/include/ulp_lp_core_lp_vad_shared.h \ + $(PROJECT_PATH)/components/ulp/ulp_common/include/ulp_common.h diff --git a/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h b/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h index 1aa6a81dc0..f3962024cc 100644 --- a/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h +++ b/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h @@ -10,7 +10,7 @@ extern "C" { #endif -#define EXAMPLE_CAM_SCCB_FREQ (10 * 1000) +#define EXAMPLE_CAM_SCCB_FREQ (100 * 1000) #ifdef __cplusplus } diff --git a/examples/peripherals/camera/dvp_isp_dsi/main/CMakeLists.txt b/examples/peripherals/camera/dvp_isp_dsi/main/CMakeLists.txt index fa1f8c83b6..0dc6a4b109 100644 --- a/examples/peripherals/camera/dvp_isp_dsi/main/CMakeLists.txt +++ b/examples/peripherals/camera/dvp_isp_dsi/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "dvp_isp_dsi_main.c" INCLUDE_DIRS "." - REQUIRES esp_mm esp_driver_isp esp_driver_cam esp_driver_i2c dsi_init sensor_init + REQUIRES esp_mm esp_driver_isp esp_driver_cam esp_driver_i2c dsi_init sensor_init esp_pm )