#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_ */