feat(isp): added isp dvp driver

This commit is contained in:
Armando
2024-06-11 10:18:16 +08:00
parent 65d9300b5c
commit 05f44bddf0
45 changed files with 1176 additions and 119 deletions
@@ -751,10 +751,18 @@ config SOC_ISP_BF_SUPPORTED
bool
default y
config SOC_ISP_DVP_SUPPORTED
bool
default y
config SOC_ISP_NUMS
int
default 1
config SOC_ISP_DVP_CTLR_NUMS
int
default 1
config SOC_ISP_AF_CTLR_NUMS
int
default 1
@@ -775,6 +783,10 @@ config SOC_ISP_BF_TEMPLATE_Y_NUMS
int
default 3
config SOC_ISP_DVP_DATA_WIDTH_MAX
int
default 16
config SOC_LEDC_SUPPORT_PLL_DIV_CLOCK
bool
default y
@@ -312,13 +312,16 @@
/*-------------------------- ISP CAPS ----------------------------------------*/
#define SOC_ISP_BF_SUPPORTED 1
#define SOC_ISP_DVP_SUPPORTED 1
#define SOC_ISP_NUMS 1U
#define SOC_ISP_DVP_CTLR_NUMS 1U
#define SOC_ISP_AF_CTLR_NUMS 1U
#define SOC_ISP_AF_WINDOW_NUMS 3
#define SOC_ISP_SHARE_CSI_BRG 1
#define SOC_ISP_BF_TEMPLATE_X_NUMS 3
#define SOC_ISP_BF_TEMPLATE_Y_NUMS 3
#define SOC_ISP_DVP_DATA_WIDTH_MAX 16
/*-------------------------- LEDC CAPS ---------------------------------------*/
#define SOC_LEDC_SUPPORT_PLL_DIV_CLOCK (1)
+26
View File
@@ -16,6 +16,32 @@ const isp_info_t isp_hw_info = {
[0] = {
.irq = ETS_ISP_INTR_SOURCE,
}
},
.dvp_ctlr = {
[0] = {
.dvp_pclk_sig = CAM_PCLK_PAD_IN_IDX,
.dvp_hsync_sig = CAM_H_SYNC_PAD_IN_IDX,
.dvp_vsync_sig = CAM_V_SYNC_PAD_IN_IDX,
.dvp_de_sig = CAM_H_ENABLE_PAD_IN_IDX,
.dvp_data_sig = {
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
},
},
}
};
+8
View File
@@ -9,6 +9,7 @@
#include <stdint.h>
#include "soc/soc_caps.h"
#include "soc/periph_defs.h"
#include "soc/gpio_sig_map.h"
#ifdef __cplusplus
extern "C" {
@@ -19,6 +20,13 @@ typedef struct {
struct {
const uint32_t irq;
} instances[SOC_ISP_NUMS];
struct {
const uint32_t dvp_pclk_sig;
const uint32_t dvp_hsync_sig;
const uint32_t dvp_vsync_sig;
const uint32_t dvp_de_sig;
const uint32_t dvp_data_sig[SOC_ISP_DVP_DATA_WIDTH_MAX];
} dvp_ctlr[SOC_ISP_DVP_CTLR_NUMS];
} isp_info_t;
extern const isp_info_t isp_hw_info;