feat: 发布固件底层开发 Skill 套件

This commit is contained in:
tangfahong committed 2026-09-11 15:06:55 +08:00
commit c7ae3b4ce1
72 files changed
+10212

No files matched your search

@@ -0,0 +1,524 @@
#ifndef __SENSOR_CFG_H_
#define __SENSOR_CFG_H_
#include "cvi_comm_video.h"
#include "cvi_sns_ctrl.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
#ifndef SWITCH_GPIO_NUM
#define SWITCH_GPIO_NUM 2
#endif
#define SNS_DBG_PRT(fmt...) \
do { \
printf("[%s]-%d: ", __func__, __LINE__); \
printf(fmt); \
} while (0)
typedef enum _SNS_INTF_MODE_E {
SNS_MODE_BT656 = 0, /* ITU-R BT.656 YUV4:2:2 */
SNS_MODE_BT601, /* ITU-R BT.601 YUV4:2:2 */
SNS_MODE_DIGITAL_CAMERA, /* digatal camera mode */
SNS_MODE_BT1120_STANDARD, /* BT.1120 progressive mode */
SNS_MODE_BT1120_INTERLEAVED, /* BT.1120 interstage mode */
SNS_MODE_MIPI, /* MIPI RAW mode */
SNS_MODE_MIPI_YUV420_NORMAL, /* MIPI YUV420 normal mode */
SNS_MODE_MIPI_YUV420_LEGACY, /* MIPI YUV420 legacy mode */
SNS_MODE_MIPI_YUV422, /* MIPI YUV422 mode */
SNS_MODE_LVDS, /* LVDS mode */
SNS_MODE_HISPI, /* HiSPi mode */
SNS_MODE_SLVS, /* SLVS mode */
SNS_MODE_BUTT
} SNS_INTF_MODE_E;
typedef enum _SNS_DATA_TYPE_E {
SNS_DATA_TYPE_YUV = 0,
SNS_DATA_TYPE_RGB,
SNS_DATA_TYPE_YUV_EARLY,
SNS_DATA_TYPE_BUTT
} SNS_DATA_TYPE_E;
typedef enum _SNS_YUV_DATA_SEQ_E {
SNS_DATA_SEQ_VUVU = 0,
SNS_DATA_SEQ_UVUV,
SNS_DATA_SEQ_UYVY, /* The input sequence of YUV is UYVY */
SNS_DATA_SEQ_VYUY, /* The input sequence of YUV is VYUY */
SNS_DATA_SEQ_YUYV, /* The input sequence of YUV is YUYV */
SNS_DATA_SEQ_YVYU, /* The input sequence of YUV is YVYU */
SNS_DATA_SEQ_BUTT
} SNS_YUV_DATA_SEQ_E;
typedef enum _SNS_CHN_MODE_E {
SNS_CHN_MODE_1Multiplex = 0, /* 1 Multiplex mode */
SNS_CHN_MODE_2Multiplex, /* 2 Multiplex mode */
SNS_CHN_MODE_3Multiplex, /* 3 Multiplex mode */
SNS_CHN_MODE_4Multiplex, /* 4 Multiplex mode */
SNS_CHN_MODE_BUTT
} SNS_CHN_MODE_E;
typedef struct _SENSOR_MCLK_ATTR_S {
CVI_U8 u8Mclk;
CVI_BOOL bMclkEn;
} SENSOR_MCLK_ATTR_S;
extern ISP_SNS_OBJ_S stSnsAR2020_Obj;
extern ISP_SNS_OBJ_S stSnsBG0808_Obj;
extern ISP_SNS_OBJ_S stSnsCV2003_Obj;
extern ISP_SNS_OBJ_S stSnsCV2005_Obj;
extern ISP_SNS_OBJ_S stSnsGc02m1_Obj;
extern ISP_SNS_OBJ_S stSnsGc0308_Obj;
extern ISP_SNS_OBJ_S stSnsGc1054_Obj;
extern ISP_SNS_OBJ_S stSnsGc2053_Obj;
extern ISP_SNS_OBJ_S stSnsGc2053_Slave_Obj;
extern ISP_SNS_OBJ_S stSnsGc2053_1l_Obj;
extern ISP_SNS_OBJ_S stSnsGc2083_Obj;
extern ISP_SNS_OBJ_S stSnsGc2093_Obj;
extern ISP_SNS_OBJ_S stSnsGc2145_Obj;
extern ISP_SNS_OBJ_S stSnsGc4023_Obj;
extern ISP_SNS_OBJ_S stSnsGc4653_Obj;
extern ISP_SNS_OBJ_S stSnsGc4683_Obj;
extern ISP_SNS_OBJ_S stSnsGc8613_Obj;
extern ISP_SNS_OBJ_S stSnsMIS40C1_Obj;
extern ISP_SNS_OBJ_S stSnsN5_Obj;
extern ISP_SNS_OBJ_S stSnsN6_Obj;
extern ISP_SNS_OBJ_S stSnsNC021_Obj;
extern ISP_SNS_OBJ_S stSnsOs02g10_Obj;
extern ISP_SNS_OBJ_S stSnsOs04a10_Obj;
extern ISP_SNS_OBJ_S stSnsOs04c10_Obj;
extern ISP_SNS_OBJ_S stSnsOs04e10_Obj;
extern ISP_SNS_OBJ_S stSnsOs05a20_Obj;
extern ISP_SNS_OBJ_S stSnsOs08a20_Obj;
extern ISP_SNS_OBJ_S stSnsOs08b10_Obj;
extern ISP_SNS_OBJ_S stSnsOv2736_Obj;
extern ISP_SNS_OBJ_S stSnsOv4689_Obj;
extern ISP_SNS_OBJ_S stSnsOv48b2q_Obj;
extern ISP_SNS_OBJ_S stSnsOv6211_Obj;
extern ISP_SNS_OBJ_S stSnsOv7251_Obj;
extern ISP_SNS_OBJ_S stSnsOv9282_Obj;
extern ISP_SNS_OBJ_S stSnsPR2020_Obj;
extern ISP_SNS_OBJ_S stSnsPR2100_Obj;
extern ISP_SNS_OBJ_S stSnsSC020HGS_Obj;
extern ISP_SNS_OBJ_S stSnsSC035GS_Obj;
extern ISP_SNS_OBJ_S stSnsSC035GS_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC035HGS_Obj;
extern ISP_SNS_OBJ_S stSnsSC035HGS_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC233HGS_Obj;
extern ISP_SNS_OBJ_S stSnsSC235HAI_Obj;
extern ISP_SNS_OBJ_S stSnsSC1336_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC1346_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC1346_1L_Slave_Obj;
extern ISP_SNS_OBJ_S stSnsSC200AI_Obj;
extern ISP_SNS_OBJ_S stSnsSC200AI_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC301IOT_Obj;
extern ISP_SNS_OBJ_S stSnsSC401AI_Obj;
extern ISP_SNS_OBJ_S stSnsSC431HAI_Obj;
extern ISP_SNS_OBJ_S stSnsSC438AI_Obj;
extern ISP_SNS_OBJ_S stSnsSC500AI_Obj;
extern ISP_SNS_OBJ_S stSnsSC501AI_2L_Obj;
extern ISP_SNS_OBJ_S stSnsSC531AI_2L_Obj;
extern ISP_SNS_OBJ_S stSnsSC533HAI_Obj;
extern ISP_SNS_OBJ_S stSnsSC535HAI_Obj;
extern ISP_SNS_OBJ_S stSnsSC635AI_Obj;
extern ISP_SNS_OBJ_S stSnsSC831HAI_Obj;
extern ISP_SNS_OBJ_S stSnsSC1330_Obj;
extern ISP_SNS_OBJ_S stSnsSC3332_Obj;
extern ISP_SNS_OBJ_S stSnsSC3335_Obj;
extern ISP_SNS_OBJ_S stSnsSC3336_Obj;
extern ISP_SNS_OBJ_S stSnsSC3336_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC2335_Obj;
extern ISP_SNS_OBJ_S stSnsSC2336_Obj;
extern ISP_SNS_OBJ_S stSnsSC2336_Slave_Obj;
extern ISP_SNS_OBJ_S stSnsSC2336_Slave1_Obj;
extern ISP_SNS_OBJ_S stSnsSC2336_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC2336P_Obj;
extern ISP_SNS_OBJ_S stSnsSC2336P_1L_Obj;
extern ISP_SNS_OBJ_S stSnsSC4336_Obj;
extern ISP_SNS_OBJ_S stSnsSC4336P_Obj;
extern ISP_SNS_OBJ_S stSnsSC202L_Obj;
extern ISP_SNS_OBJ_S stSnsF23_Obj;
extern ISP_SNS_OBJ_S stSnsF35_Obj;
extern ISP_SNS_OBJ_S stSnsF37P_Obj;
extern ISP_SNS_OBJ_S stSnsK06_Obj;
extern ISP_SNS_OBJ_S stSnsQ03_Obj;
extern ISP_SNS_OBJ_S stSnsQ03P_Obj;
extern ISP_SNS_OBJ_S stSnsImx135_Obj;
extern ISP_SNS_OBJ_S stSnsImx290_2l_Obj;
extern ISP_SNS_OBJ_S stSnsImx307_Obj;
extern ISP_SNS_OBJ_S stSnsImx307_Slave_Obj;
extern ISP_SNS_OBJ_S stSnsImx307_2l_Obj;
extern ISP_SNS_OBJ_S stSnsImx327_Obj;
extern ISP_SNS_OBJ_S stSnsImx327_Slave_Obj;
extern ISP_SNS_OBJ_S stSnsImx327_2l_Obj;
extern ISP_SNS_OBJ_S stSnsImx327_fpga_Obj;
extern ISP_SNS_OBJ_S stSnsImx327_Sublvds_Obj;
extern ISP_SNS_OBJ_S stSnsImx334_Obj;
extern ISP_SNS_OBJ_S stSnsImx335_Obj;
extern ISP_SNS_OBJ_S stSnsImx376_Obj;
extern ISP_SNS_OBJ_S stSnsImx412_Obj;
extern ISP_SNS_OBJ_S stSnsImx415_Obj;
extern ISP_SNS_OBJ_S stSnsImx585_Obj;
extern ISP_SNS_OBJ_S stSnsImx662_Obj;
extern ISP_SNS_OBJ_S stSnsImx675_Obj;
extern ISP_SNS_OBJ_S stSnsImx678_Obj;
extern ISP_SNS_OBJ_S stSnsImx900_Obj;
extern ISP_SNS_OBJ_S stSnsTP2860_Obj;
extern ISP_SNS_OBJ_S stSnsTP2825_Obj;
extern ISP_SNS_OBJ_S stSnsMCS369_Obj;
extern ISP_SNS_OBJ_S stSnsMCS369Q_Obj;
extern ISP_SNS_OBJ_S stSnsMM308M2_Obj;
extern ISP_SNS_OBJ_S stSnsLT6911_Obj;
typedef enum _SNS_TYPE_E {
/*BRIGATES*/
BRIGATES_BG0808_MIPI_2M_30FPS_10BIT = 0X38003240,
BRIGATES_BG0808_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X380032C0,
/*BYD*/
/*CHIPUP*/
/*CVSENS*/
CVSENS_CV2003_1L_MASTER_SWITCH_MIPI_2M_1080P_15FPS_10BIT = 0X44003108,
CVSENS_CV2003_1L_SLAVE_SWITCH_MIPI_2M_1080P_15FPS_10BIT = 0X44003110,
CVSENS_CV2003_MIPI_2M_1080P_30FPS_10BIT = 0X44003340,
CVSENS_CV2003_1L_MIPI_2M_1080P_30FPS_10BIT = 0X44003300,
CVSENS_CV2003_1L_SLAVE_HIGH_MIPI_2M_1080P_30FPS_10BIT = 0X44003310,
CVSENS_CV2003_1L_SLAVE_LOW_MIPI_2M_1080P_30FPS_10BIT = 0X44003311,
CVSENS_CV2005_1L_MIPI_2M_1080P_15FPS_10BIT = 0X44083100,
/*GCORE*/
GCORE_GC02M1_MIPI_2M_30FPS_10BIT = 0X48183300,
GCORE_GC0308_1M_30FPS_8BIT = 0X48570B60,
GCORE_GC1054_MIPI_1M_30FPS_10BIT = 0X48342340,
GCORE_GC2053_MIPI_2M_30FPS_10BIT = 0X483C3340,
GCORE_GC2053_SLAVE_MIPI_2M_30FPS_10BIT = 0X483C3350,
GCORE_GC2053_1L_MIPI_2M_30FPS_10BIT = 0X483C3300,
GCORE_GC2083_2L_MIPI_2M_30FPS_10BIT = 0X48443320,
GCORE_GC2093_MIPI_2M_30FPS_10BIT = 0X48483340,
GCORE_GC2093_MIPI_2M_60FPS_10BIT = 0X48483440,
GCORE_GC2145_2M_12FPS_8BIT = 0X484F3020,
GCORE_GC4023_MIPI_4M_30FPS_10BIT = 0X48083B40,
GCORE_GC4653_MIPI_4M_30FPS_10BIT = 0X480C3B40,
GCORE_GC4683_MIPI_1M_120FPS_10BIT = 0X48582640,
GCORE_GC4683_MIPI_4M_60FPS_10BIT = 0X48583C20,
GCORE_GC8613_MIPI_2M_30FPS_10BIT = 0X48143340,
GCORE_GC8613_MIPI_8M_30FPS_10BIT = 0X48145B40,
GCORE_GC8613_MIPI_8M_25FPS_10BIT = 0X48145A40,
GCORE_GC8613_MIPI_8M_60FPS_10BIT = 0X48145C40,
GCORE_GC2093_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X484833C0,
GCORE_GC8613_MIPI_8M_30FPS_10BIT_WDR2TO1 = 0X48145BC0,
/*IMGDS*/
IMGDS_MIS40C1_MIPI_4M_20FPS_1L_10BIT = 0X00003A00,
IMGDS_MIS40C1_MIPI_4M_20FPS_2L_10BIT = 0X00003A20,
/*NEXTCHIP*/
NEXTCHIP_N5_1M_2CH_25FPS_8BIT = 0X04032240,
NEXTCHIP_N5_2M_25FPS_8BIT = 0X04033240,
NEXTCHIP_N6_2M_4CH_25FPS_8BIT = 0X04073240,
/*OV*/
OV_OS02G10_MIPI_2M_30FPS_10BIT = 0X10503320,
OV_OS04A10_MIPI_4M_1440P_30FPS_12BIT = 0X10083B40,
OV_OS04A10_MIPI_4M_1440P_2L_10BIT = 0X10083A20,
OV_OS04A10_MASTER_MIPI_4M_1440P_2L_10BIT = 0X10083A28,
OV_OS04A10_SLAVE_MIPI_4M_1440P_2L_10BIT = 0X10083A30,
OV_OS04C10_MIPI_4M_30FPS_12BIT = 0X100C3B40,
OV_OS04C10_MIPI_4M_1440P_30FPS_12BIT = 0X100C3B41,
OV_OS05A20_MIPI_1944P_15FPS_2L_12BIT = 0X10605120,
OV_OS08A20_MIPI_5M_30FPS_10BIT = 0X101C5340, //2592 * 1944
OV_OV4689_MIPI_4M_30FPS_10BIT = 0X102C3B40,
OV_OV48B2Q_PDAF_MIPI_8M_30FPS_10BIT = 0X10245B40,
OV_OV48B2Q_PDAF_MIPI_12M_30FPS_10BIT = 0X10246340,
OV_OV6211_MIPI_400P_120FPS_10BIT = 0X10340E40,
OV_OV7251_MIPI_480P_120FPS_10BIT = 0X10380E40,
OV_OS04E10_MIPI_4M_30FPS_12BIT = 0X10103B40,
OV_OS04E10_MIPI_4M_30FPS_2L_10BIT = 0X10103B20,
OV_OS04E10_SALVE_MIPI_4M_30FPS_2L_10BIT = 0X10103B30,
OV_OS08B10_MIPI_8M_30FPS_10BIT = 0X10205B40,
OV_OV2736_MIPI_2M_30FPS_12BIT = 0X10283340,
OV_OS04A10_MIPI_4M_1440P_30FPS_10BIT_WDR2TO1 = 0X10083BC0,
OV_OS04A10_MASTER_MIPI_4M_1440P_2L_10BIT_WDR2TO1 = 0X10083AA8,
OV_OS04A10_SLAVE_MIPI_4M_1440P_2L_10BIT_WDR2TO1 = 0X10083AB0,
OV_OS04C10_MIPI_4M_30FPS_10BIT_WDR2TO1 = 0X100C3BC0,
OV_OS04C10_MIPI_4M_1440P_30FPS_10BIT_WDR2TO1 = 0X100C3BC1,
OV_OS08A20_MIPI_4M_30FPS_10BIT_WDR2TO1 = 0X101C3BC0,
OV_OS08A20_SLAVE_MIPI_4M_30FPS_10BIT_WDR2TO1 = 0X101C3BD0,
OV_OS08A20_MIPI_5M_30FPS_10BIT_WDR2TO1 = 0X101C53C0,
OV_OS08A20_MIPI_8M_30FPS_10BIT_WDR2TO1 = 0X101C5BC0,
OV_OS04E10_MIPI_4M_30FPS_10BIT_WDR2TO1 = 0X10103BC0,
OV_OS04E10_MIPI_4M_30FPS_2L_10BIT_WDR2TO1 = 0X10103BA0,
OV_OS04E10_SLAVE_MIPI_4M_30FPS_2L_10BIT_WDR2TO1 = 0X10103BB0,
OV_OS08B10_MIPI_8M_30FPS_10BIT_WDR2TO1 = 0X10205BC0,
OV_OV2736_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X102833C0,
OV_OV9282_MASTER_MIPI_800P_15FPS_2L_10BIT = 0X105C1928,
OV_OV9282_SLAVE_MIPI_800P_15FPS_2L_10BIT = 0X105C1930,
/*PICO384*/
PICO640_THERMAL_479P = 0X64050B40,
/*PIXELPLUS*/
PIXELPLUS_PR2020_1M_25FPS_8BIT = 0X18012240,
PIXELPLUS_PR2020_1M_30FPS_8BIT = 0X18012340,
PIXELPLUS_PR2020_2M_25FPS_8BIT = 0X18013240,
PIXELPLUS_PR2020_2M_30FPS_8BIT = 0X18013340,
PIXELPLUS_PR2100_2M_25FPS_8BIT = 0X18053240,
PIXELPLUS_PR2100_2M_2CH_2L_25FPS_8BIT = 0X18053220,
PIXELPLUS_PR2100_2M_2CH_25FPS_8BIT = 0X18053241,
PIXELPLUS_PR2100_2M_4CH_25FPS_8BIT = 0X18053242,
PIXELPLUS_PR2100_2M_4CH_30FPS_8BIT = 0X18053340,
/*SMS*/
SMS_SC020HGS_MIPI_400P_120FPS_10BIT = 0X20A80E40,
SMS_SC035GS_MIPI_480P_120FPS_12BIT = 0X20300E40,
SMS_SC035GS_1L_MIPI_480P_120FPS_10BIT = 0X20300E00,
SMS_SC035HGS_MIPI_480P_120FPS_12BIT = 0X20340E40,
SMS_SC035HGS_1L_MIPI_480P_120FPS_10BIT = 0X20340E00,
SMS_SC233HGS_MIPI_2M_60FPS_10BIT = 0X20AC3440,
SMS_SC233HGS_MIPI_2M_120FPS_10BIT = 0X20AC3640,
SMS_SC235HAI_1L_MIPI_2M_15FPS_10BIT = 0X20B83100,
SMS_SC235HAI_1L_SLAVE_MIPI_2M_15FPS_10BIT = 0X20B83110,
SMS_SC235HAI_2L_MIPI_2M_15FPS_10BIT = 0X20B83120,
SMS_SC235HAI_2L_SLAVE_MIPI_2M_15FPS_10BIT = 0X20B83130,
SMS_SC235HAI_2L_MIPI_2M_30FPS_10BIT = 0X20B83320,
SMS_SC1336_1L_MIPI_600P_30FPS_10BIT = 0X20701300,
SMS_SC1336_1L_MIPI_600P_60FPS_10BIT = 0X20701400,
SMS_SC1336_1L_MIPI_1M_30FPS_10BIT = 0X20702300,
SMS_SC1336_1L_MIPI_1M_60FPS_10BIT = 0X20702400,
SMS_SC1346_1L_MIPI_1M_30FPS_10BIT = 0X20742300,
SMS_SC1346_1L_MIPI_1M_60FPS_10BIT = 0X20742400,
SMS_SC1346_1L_SLAVE_MIPI_1M_30FPS_10BIT = 0X20742310,
SMS_SC1346_1L_SLAVE_MIPI_1M_60FPS_10BIT = 0X20742410,
SMS_SC1346_1L_MIPI_600P_30FPS_10BIT = 0X20741300,
SMS_SC1346_1L_MIPI_600P_60FPS_10BIT = 0X20741400,
SMS_SC200AI_MIPI_2M_30FPS_10BIT = 0X203C3340,
SMS_SC200AI_1L_MIPI_2M_30FPS_10BIT = 0X203C3300,
SMS_SC301IOT_MIPI_3M_30FPS_10BIT = 0X204C3B40,
SMS_SC401AI_MIPI_3M_30FPS_10BIT = 0X20503B40,
SMS_SC401AI_MIPI_4M_30FPS_10BIT = 0X20503B41,
SMS_SC431HAI_2L_MIPI_4M_30FPS_10BIT = 0X20CC3B20,
SMS_SC431HAI_1L_MIPI_4M_20FPS_10BIT = 0X20CC3900,
SMS_SC500AI_MIPI_4M_30FPS_10BIT = 0X20583B40,
SMS_SC500AI_MIPI_5M_30FPS_10BIT = 0X20585340,
SMS_SC501AI_2L_MIPI_5M_30FPS_10BIT = 0X20985320,
SMS_SC531AI_2L_MIPI_5M_30FPS_10BIT = 0X20605320,
SMS_SC1330_MIPI_1M_30FPS_10BIT = 0X20A42B20,
SMS_SC1330_MIPI_1M_30FPS_10BIT_MASTER = 0X20A42B28,
SMS_SC1330_MIPI_1M_30FPS_10BIT_SLAVE = 0X20A42B30,
SMS_SC1330_1L_MIPI_1M_30FPS_12BIT = 0X20A42B00,
SMS_SC1330_1L_MIPI_1M_30FPS_12BIT_MASTER = 0X20A42B08,
SMS_SC1330_1L_MIPI_1M_30FPS_12BIT_SLAVE = 0X20A42B10,
SMS_SC3332_MIPI_3M_30FPS_10BIT = 0X20003B40,
SMS_SC3335_MIPI_3M_30FPS_10BIT = 0X20043B40,
SMS_SC3336_MIPI_3M_30FPS_10BIT = 0X20083B40,
SMS_SC3336_1L_MIPI_3M_20FPS_10BIT = 0X20083A00,
SMS_SC2335_MIPI_2M_30FPS_10BIT = 0X20883340,
SMS_SC2336_MIPI_2M_30FPS_10BIT = 0X208C3340,
SMS_SC2336_SLAVE_MIPI_2M_30FPS_10BIT = 0X208C3350,
SMS_SC2336_SLAVE1_MIPI_2M_30FPS_10BIT = 0X208C3351,
SMS_SC2336_1L_MIPI_2M_30FPS_10BIT = 0X208C3300,
SMS_SC2336P_MIPI_2M_30FPS_10BIT = 0X20903340,
SMS_SC2336P_1L_MIPI_2M_30FPS_10BIT = 0X20903300,
SMS_SC4336_MIPI_4M_30FPS_10BIT = 0X20183B40,
SMS_SC4336P_MIPI_4M_30FPS_10BIT = 0X201C3B40,
SMS_SC4336P_1L_MIPI_4M_20FPS_10BIT = 0X201C3A00,
SMS_SC4336P_SLAVE_MIPI_4M_30FPS_10BIT = 0X201C3B50,
SMS_SC233HGS_MIPI_2M_60FPS_10BIT_WDR2TO1 = 0X20AC34C0,
SMS_SC200AI_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X203C33C0,
SMS_SC438AI_MIPI_4M_30FPS_10BIT = 0X20A03B40,
SMS_SC438AI_MIPI_4M_30FPS_10BIT_MASTER = 0X20A03B48,
SMS_SC438AI_MIPI_4M_30FPS_10BIT_SLAVE = 0X20A03B50,
SMS_SC500AI_MIPI_5M_60FPS_10BIT = 0X20585440,
SMS_SC500AI_2L_MIPI_5M_30FPS_10BIT = 0X20585320,
SMS_SC533HAI_MIPI_5M_30FPS_10BIT = 0X20C84B40,
SMS_SC533HAI_MIPI_5M_30FPS_10BIT_WDR2TO1 = 0X20C84BC0,
SMS_SC533HAI_2L_MIPI_5M_30FPS_10BIT = 0X20C84B20,
SMS_SC535HAI_MIPI_5M_15FPS_2L_10BIT_MASTER = 0X20BC3928,
SMS_SC535HAI_MIPI_5M_15FPS_2L_10BIT_SLAVE = 0X20BC3930,
SMS_SC535HAI_MIPI_5M_15FPS_4L_10BIT_MASTER = 0X20BC3948,
SMS_SC535HAI_MIPI_5M_15FPS_4L_10BIT_SLAVE = 0X20BC3950,
SMS_SC535HAI_MIPI_5M_30FPS_2L_10BIT_MASTER = 0X20BC3B28,
SMS_SC535HAI_MIPI_5M_30FPS_2L_10BIT_SLAVE = 0X20BC3B30,
SMS_SC535HAI_MIPI_5M_30FPS_4L_10BIT_MASTER = 0X20BC3B48,
SMS_SC535HAI_MIPI_5M_30FPS_4L_10BIT_SLAVE = 0X20BC3B50,
SMS_SC635AI_MIPI_6M_60FPS_10BIT = 0X20B05C40,
SMS_SC500AI_MIPI_4M_30FPS_10BIT_WDR2TO1 = 0X20583BC0,
SMS_SC500AI_MIPI_5M_30FPS_10BIT_WDR2TO1 = 0X205853C0,
SMS_SC831HAI_MASTER_MIPI_8M_30FPS_10BIT = 0X20B45B48,
SMS_SC831HAI_SLAVE_MIPI_8M_30FPS_10BIT = 0X20B45B50,
SMS_SC202L_2L_MASTER_MIPI_2M_30FPS_10BIT = 0X20C03328,
SMS_SC202L_2L_SLAVE_MIPI_2M_30FPS_10BIT = 0X20C03330,
/*SOI*/
SOI_F23_MIPI_2M_30FPS_10BIT = 0X24103340,
SOI_F35_MIPI_2M_30FPS_10BIT = 0X24143340,
SOI_F37P_MIPI_2M_30FPS_10BIT = 0X24183340,
SOI_K06_MIPI_4M_25FPS_10BIT = 0X24043A40,
SOI_Q03_MIPI_3M_30FPS_10BIT = 0X24283B40,
SOI_Q03P_MIPI_3M_30FPS_10BIT = 0X242C3B40,
SOI_F23_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X241033C0,
SOI_F35_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X241433C0,
SOI_F35_SLAVE_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X241433D0,
/*SONY*/
SONY_IMX135_MIPI_8M_25FPS_10BIT = 0X28405A40,
SONY_IMX290_MIPI_1M_30FPS_12BIT = 0X282C2340,
SONY_IMX290_MIPI_2M_60FPS_12BIT = 0X282C3440,
SONY_IMX307_MIPI_2M_30FPS_12BIT = 0X28303340,
SONY_IMX307_SLAVE_MIPI_2M_30FPS_12BIT = 0X28303350,
SONY_IMX307_2L_MIPI_2M_30FPS_12BIT = 0X28303320,
SONY_IMX307_MIPI_2M_60FPS_12BIT = 0X28303440,
SONY_IMX327_MIPI_2M_30FPS_12BIT = 0X28343340,
SONY_IMX327_SLAVE_MIPI_2M_30FPS_12BIT = 0X28343350,
SONY_IMX327_2L_MIPI_2M_30FPS_12BIT = 0X28343320,
SONY_IMX327_SUBLVDS_2M_30FPS_12BIT = 0X28343341,
SONY_IMX327_MIPI_2M_60FPS_12BIT = 0X28343440,
SONY_IMX327_MIPI_1M_30FPS_10BIT = 0X28342340,
SONY_IMX334_MIPI_8M_30FPS_12BIT = 0X28005B40,
SONY_IMX334_MIPI_8M_60FPS_12BIT = 0X28005C40,
SONY_IMX335_MIPI_4M_30FPS_12BIT = 0X28043B40,
SONY_IMX335_MIPI_4M_1600P_30FPS_12BIT = 0X28044B40,
SONY_IMX335_2L_MIPI_4M_30FPS_10BIT = 0X28043B20,
SONY_IMX335_MIPI_5M_30FPS_12BIT = 0X28045340,
SONY_IMX335_MIPI_2M_60FPS_10BIT = 0X28043440,
SONY_IMX335_MIPI_4M_60FPS_10BIT = 0X28043C40,
SONY_IMX335_MIPI_5M_60FPS_10BIT = 0X28045440,
SONY_IMX376_2L_MIPI_5M_30FPS_10BIT = 0X28445320,
SONY_IMX662_MIPI_2M_30FPS_10BIT = 0X28203320,
SONY_IMX675_MIPI_4M_30FPS_12BIT = 0X28243B40,
SONY_IMX675_MIPI_5M_30FPS_12BIT = 0X28245340,
SONY_IMX678_MIPI_8M_30FPS_10BIT = 0X283C5B40,
SONY_IMX678_MIPI_5M_25FPS_12BIT_WDR2TO1 = 0X283C5240,
SONY_IMX412_MIPI_12M_30FPS_12BIT = 0X28106340,
SONY_IMX415_MIPI_2M_60FPS_12BIT = 0X28143440,
SONY_IMX415_MIPI_4M_25FPS_12BIT = 0X28143A40,
SONY_IMX415_MIPI_5M_25FPS_12BIT = 0X28145240,
SONY_IMX415_MIPI_8M_25FPS_12BIT = 0X28145A40,
SONY_IMX415_MIPI_8M_30FPS_10BIT = 0X28145B40,
SONY_IMX415_MIPI_4M_25FPS_12BIT_WDR2TO1 = 0X28143A41,
SONY_IMX585_MIPI_8M_30FPS_12BIT = 0X281C5B40,
SONY_IMX900_MIPI_3M_70FPS_12BIT_COLOR = 0X28383C40,
SONY_IMX900_MIPI_3M_70FPS_12BIT_MONO = 0X28383C41,
SONY_IMX307_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X283033C0,
SONY_IMX307_2L_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X283033A0,
SONY_IMX307_SLAVE_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X283033D0,
SONY_IMX327_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X283433C0,
SONY_IMX327_2L_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X283433A0,
SONY_IMX327_SLAVE_MIPI_2M_30FPS_12BIT_WDR2TO1 = 0X283433D0,
SONY_IMX327_SUBLVDS_2M_30FPS_12BIT_WDR2TO1 = 0X283433C1,
SONY_IMX327_MIPI_1M_30FPS_10BIT_WDR2TO1 = 0X283423C0,
SONY_IMX334_MIPI_8M_30FPS_12BIT_WDR2TO1 = 0X28005BC0,
SONY_IMX335_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X280433C0,
SONY_IMX335_MIPI_4M_30FPS_10BIT_WDR2TO1 = 0X28043BC0,
SONY_IMX335_MIPI_4M_1600P_30FPS_10BIT_WDR2TO1 = 0X28044BC0,
SONY_IMX335_MIPI_5M_30FPS_10BIT_WDR2TO1 = 0X280453C0,
SONY_IMX662_MIPI_2M_30FPS_10BIT_WDR2TO1 = 0X282033A0,
SONY_IMX675_MIPI_5M_25FPS_12BIT_WDR2TO1 = 0X282452C0,
SONY_IMX412_MIPI_8M_30FPS_12BIT_WDR2TO1 = 0X28105BC0,
SONY_IMX412_MIPI_12M_30FPS_12BIT_WDR2TO1 = 0X281063C0,
SONY_IMX585_MIPI_8M_25FPS_12BIT_WDR2TO1 = 0X281C5AC0,
/*TECHPOINT*/
TECHPOINT_TP2850_MIPI_2M_30FPS_8BIT = 0X2C043340,
TECHPOINT_TP2850_MIPI_4M_30FPS_8BIT = 0X2C043B40,
TECHPOINT_TP2825_MIPI_1M_30FPS_8BIT = 0X2C102340,
TECHPOINT_TP2825_MIPI_2M_30FPS_8BIT = 0X2C103340,
TECHPOINT_TP2825_MIPI_2M_50FPS_8BIT = 0X2C103740,
TECHPOINT_TP2825_MIPI_2M_60FPS_8BIT = 0X2C103440,
TECHPOINT_TP2825_MIPI_4M_25FPS_8BIT = 0X2C103A40,
TECHPOINT_TP2825_MIPI_4M_30FPS_8BIT = 0X2C103B40,
TECHPOINT_TP2860_MIPI_2M_25FPS_8BIT = 0X2C143240,
/*VIVO*/
VIVO_MCS369_2M_30FPS_12BIT = 0X340B3340,
VIVO_MCS369Q_4M_30FPS_12BIT = 0X34073B40,
VIVO_MM308M2_2M_25FPS_8BIT = 0X34033240,
/*LONTIUM*/
LONTIUM_MIPI_LT6911_1M_60FPS_8BIT = 0X58012440,
LONTIUM_MIPI_LT6911_2M_60FPS_8BIT = 0X58013440,
LONTIUM_MIPI_LT6911_8M_60FPS_8BIT = 0X58015C40,
/*ONSEMI*/
ONSEMI_AR2020_20M_25FPS_10BIT = 0X08106A40,
/*BOARD*/
BOARD_FULL_SIZE_MIPI_30FPS_12BIT = 0X60006B40,
BOARD_MAX_SIZE_MIPI_30FPS_12BIT = 0X60046B40,
/*NUC*/
NUC_NC021_MIPI_2M_50FPS_8BIT = 0X5C003440,
NUC_NC021_MIPI_2M_25FPS_8BIT_WDR2TO1 = 0X5C0032C0,
/*end*/
CVI_SNS_TYPE_BUTT,
} CVI_SNS_TYPE_E;
#pragma pack(1)
typedef struct _SNS_INI_CFG_S {
CVI_U8 devNum;
CVI_S32 enSnsMode;
CVI_SNS_TYPE_E enSnsType[VI_MAX_DEV_NUM];
CVI_S32 s32BusId[VI_MAX_DEV_NUM];
CVI_S32 s32SnsI2cAddr[VI_MAX_DEV_NUM];
CVI_S32 MipiDev[VI_MAX_DEV_NUM];
CVI_S16 as16LaneId[VI_MAX_DEV_NUM][MIPI_LANE_NUM + 1];
CVI_S16 as16FuncId[VI_MAX_DEV_NUM][TTL_PIN_FUNC_NUM];
CVI_S8 as8PNSwap[VI_MAX_DEV_NUM][MIPI_LANE_NUM + 1];
CVI_U8 u8HwSync[VI_MAX_DEV_NUM];
SENSOR_MCLK_ATTR_S stMclkAttr[VI_MAX_DEV_NUM];
CVI_U8 u8Hsettle[VI_MAX_DEV_NUM];
CVI_BOOL bHsettlen[VI_MAX_DEV_NUM];
CVI_U8 u8Orien[VI_MAX_DEV_NUM];
CVI_S32 s32RstPort[VI_MAX_DEV_NUM];
CVI_S32 s32RstPin[VI_MAX_DEV_NUM];
CVI_S32 s32RstPol[VI_MAX_DEV_NUM];
CVI_U8 u8AttachDev[VI_MAX_DEV_NUM];
CVI_U8 u8MuxDev[VI_MAX_DEV_NUM];
CVI_S32 s32SwitchPort[VI_MAX_DEV_NUM][SWITCH_GPIO_NUM];
CVI_S32 s32SwitchPin[VI_MAX_DEV_NUM][SWITCH_GPIO_NUM];
CVI_S32 s32SwitchPol[VI_MAX_DEV_NUM][SWITCH_GPIO_NUM];
} SNS_INI_CFG_S;
typedef struct _SNS_CFG_S {
CVI_U32 u32ImageWigth[VI_MAX_DEV_NUM];
CVI_U32 u32ImageHeight[VI_MAX_DEV_NUM];
WDR_MODE_E enWDRMode[VI_MAX_DEV_NUM];
SNS_INTF_MODE_E enInterFaceMode[VI_MAX_DEV_NUM];
SNS_DATA_TYPE_E enFormatMode[VI_MAX_DEV_NUM];
SNS_YUV_DATA_SEQ_E enYuvFormat[VI_MAX_DEV_NUM];
BAYER_FORMAT_E enBayerFormat[VI_MAX_DEV_NUM];
SNS_CHN_MODE_E enChnMode[VI_MAX_DEV_NUM];
CVI_BOOL bBypassIsp[VI_MAX_DEV_NUM];
CVI_FLOAT f32FrameRate[VI_MAX_DEV_NUM];
CVI_U8 u8LaneNumber[VI_MAX_DEV_NUM];
CVI_U8 u8EnMasterMode[VI_MAX_DEV_NUM];
ISP_SNS_OBJ_S * pstSnsObj[VI_MAX_DEV_NUM];
#ifdef __arm__
CVI_U32 pstSnsObj_padding[VI_MAX_DEV_NUM]; /* padding for keeping same size of this structure */
#endif
ISP_SENSOR_EXP_FUNC_S * pstSensorExpFunc[VI_MAX_DEV_NUM];
#ifdef __arm__
CVI_U32 pstSensorExpFunc_padding[VI_MAX_DEV_NUM]; /* padding for keeping same size of this structure */
#endif
AE_SENSOR_EXP_FUNC_S * pstExpFuncs[VI_MAX_DEV_NUM];
#ifdef __arm__
CVI_U32 pstExpFuncs_padding[VI_MAX_DEV_NUM]; /* padding for keeping same size of this structure */
#endif
SNS_AHD_OBJ_S * pstAhdFuncs[VI_MAX_DEV_NUM];
#ifdef __arm__
CVI_U32 pstAhdFuncs_padding[VI_MAX_DEV_NUM]; /* padding for keeping same size of this structure */
#endif
} SNS_CFG_S;
typedef struct _SENSOR_CFG_S {
SNS_INI_CFG_S sns_ini_cfg;
SNS_CFG_S sns_cfg;
ISP_INIT_ATTR_S pstInitAttr;
} SENSOR_CFG_S;
#pragma pack()
/****************************************************************************
* external variables and functions *
****************************************************************************/
CVI_S32 cvi_sns_getsnswdrattr(CVI_U32 dev_num, SENSOR_CFG_S *sensor_cfg);
CVI_S32 cvi_sns_getsnsobj(CVI_U32 dev_num, SENSOR_CFG_S *sensor_cfg);
CVI_S32 cvi_sns_getispattr(CVI_U32 dev_num, SENSOR_CFG_S *sensor_cfg);
CVI_S32 cvi_sns_getyuvbypass(CVI_U32 dev_num, SENSOR_CFG_S *sensor_cfg);
CVI_S32 cvi_sns_getdevattr(CVI_U32 dev_num, SENSOR_CFG_S *sensor_cfg);
CVI_S32 cvi_sns_getsize(CVI_U32 dev_num, SENSOR_CFG_S *sensor_cfg);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */
#endif /* __SENSOR_CFG_H_ */