mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-11 21:10:20 +00:00
feat(cam): add esp32-p4 lcd_cam dvp driver
This commit is contained in:
40
components/soc/esp32p4/cam_periph.c
Normal file
40
components/soc/esp32p4/cam_periph.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "soc/gpio_sig_map.h"
|
||||
#include "soc/cam_periph.h"
|
||||
|
||||
const cam_signal_conn_t cam_periph_signals = {
|
||||
.buses = {
|
||||
[0] = {
|
||||
.module = PERIPH_LCD_CAM_MODULE,
|
||||
.irq_id = ETS_LCD_CAM_INTR_SOURCE,
|
||||
.data_sigs = {
|
||||
CAM_DATA_IN_PAD_IN0_IDX,
|
||||
CAM_DATA_IN_PAD_IN1_IDX,
|
||||
CAM_DATA_IN_PAD_IN2_IDX,
|
||||
CAM_DATA_IN_PAD_IN3_IDX,
|
||||
CAM_DATA_IN_PAD_IN4_IDX,
|
||||
CAM_DATA_IN_PAD_IN5_IDX,
|
||||
CAM_DATA_IN_PAD_IN6_IDX,
|
||||
CAM_DATA_IN_PAD_IN7_IDX,
|
||||
CAM_DATA_IN_PAD_IN8_IDX,
|
||||
CAM_DATA_IN_PAD_IN9_IDX,
|
||||
CAM_DATA_IN_PAD_IN10_IDX,
|
||||
CAM_DATA_IN_PAD_IN11_IDX,
|
||||
CAM_DATA_IN_PAD_IN12_IDX,
|
||||
CAM_DATA_IN_PAD_IN13_IDX,
|
||||
CAM_DATA_IN_PAD_IN14_IDX,
|
||||
CAM_DATA_IN_PAD_IN15_IDX,
|
||||
},
|
||||
.hsync_sig = CAM_H_SYNC_PAD_IN_IDX,
|
||||
.vsync_sig = CAM_V_SYNC_PAD_IN_IDX,
|
||||
.pclk_sig = CAM_PCLK_PAD_IN_IDX,
|
||||
.de_sig = CAM_H_ENABLE_PAD_IN_IDX,
|
||||
.clk_sig = CAM_CLK_PAD_OUT_IDX
|
||||
}
|
||||
}
|
||||
};
|
@@ -43,6 +43,10 @@ config SOC_PCNT_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_LCDCAM_CAM_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_MIPI_CSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
@@ -1642,3 +1646,15 @@ config SOC_JPEG_DECODE_SUPPORTED
|
||||
config SOC_JPEG_ENCODE_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
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
|
||||
|
@@ -373,6 +373,23 @@ typedef enum {
|
||||
LCD_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the default choice */
|
||||
} soc_periph_lcd_clk_src_t;
|
||||
|
||||
//////////////////////////////////////////////////LCD///////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* @brief Array initializer for all supported clock sources of CAM
|
||||
*/
|
||||
#define SOC_CAM_CLKS {SOC_MOD_CLK_PLL_F160M, SOC_MOD_CLK_XTAL, SOC_MOD_CLK_APLL}
|
||||
|
||||
/**
|
||||
* @brief Type of CAM clock source
|
||||
*/
|
||||
typedef enum {
|
||||
CAM_CLK_SRC_PLL160M = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the source clock */
|
||||
CAM_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
||||
CAM_CLK_SRC_APLL = SOC_MOD_CLK_APLL, /*!< Select APLL as the source clock */
|
||||
CAM_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the default choice */
|
||||
} soc_periph_cam_clk_src_t;
|
||||
|
||||
/////////////////////////////////////////////////MIPI///////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
|
@@ -29,6 +29,7 @@
|
||||
#define SOC_GPTIMER_SUPPORTED 1
|
||||
#define SOC_PCNT_SUPPORTED 1
|
||||
// #define SOC_LCDCAM_SUPPORTED 1 // TODO: IDF-7465
|
||||
#define SOC_LCDCAM_CAM_SUPPORTED 1
|
||||
#define SOC_MIPI_CSI_SUPPORTED 1
|
||||
#define SOC_MIPI_DSI_SUPPORTED 1
|
||||
#define SOC_MCPWM_SUPPORTED 1
|
||||
@@ -538,8 +539,8 @@
|
||||
/*-------------------------- TOUCH SENSOR CAPS -------------------------------*/
|
||||
#define SOC_TOUCH_SENSOR_VERSION (3) // Hardware version of touch sensor
|
||||
#define SOC_TOUCH_SENSOR_NUM (14) // Touch available channel number. Actually there are 15 Touch channels, but channel 14 is not pinned out, limit to 14 channels
|
||||
#define SOC_TOUCH_PROXIMITY_CHANNEL_NUM (3) // Sopport touch proximity channel number.
|
||||
#define SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED (1) // Sopport touch proximity channel measure done interrupt type.
|
||||
#define SOC_TOUCH_PROXIMITY_CHANNEL_NUM (3) // Support touch proximity channel number.
|
||||
#define SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED (1) // Support touch proximity channel measure done interrupt type.
|
||||
#define SOC_TOUCH_SAMPLER_NUM (3) // The sampler number in total, each sampler can be used to sample on one frequency
|
||||
|
||||
/*-------------------------- TWAI CAPS ---------------------------------------*/
|
||||
@@ -657,3 +658,8 @@
|
||||
#define SOC_JPEG_CODEC_SUPPORTED (1)
|
||||
#define SOC_JPEG_DECODE_SUPPORTED (1)
|
||||
#define SOC_JPEG_ENCODE_SUPPORTED (1)
|
||||
|
||||
/*--------------------------- 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)
|
||||
|
Reference in New Issue
Block a user