Files
Linux_Drivers/freertos/cvitek/install/include/common/vi_isp.h
sam.xiang cbb030f19f [freertos] add freertos firmware
Change-Id: I4158d66d9b5fc444e28287f55e79ac24e0a1666f
2023-03-10 20:35:49 +08:00

227 lines
4.0 KiB
C

#ifndef __U_VI_ISP_H__
#define __U_VI_ISP_H__
//#include <vi_snsr.h>
#include <stdbool.h>
#include <types.h>
#include <vi_uapi.h>
#include <vi_snsr.h>
enum ISP_SCENE_INFO {
PRE_OFF_POST_OFF_SC, //183x
PRE_OFF_POST_ON_SC, //183x
FE_ON_BE_ON_POST_OFF_SC, //182x
FE_ON_BE_ON_POST_ON_SC, //182x
FE_ON_BE_OFF_POST_OFF_SC, //182x
FE_ON_BE_OFF_POST_ON_SC, //182x
FE_OFF_BE_ON_POST_OFF_SC, //182x
FE_OFF_BE_ON_POST_ON_SC, //182x
};
enum cvi_isp_source {
CVI_ISP_SOURCE_DEV = 0,
CVI_ISP_SOURCE_FE,
CVI_ISP_SOURCE_BE,
CVI_ISP_SOURCE_MAX,
};
enum IP_INFO_GRP {
IP_INFO_ID_MIN = 0,
//Pre_raw_be
IP_INFO_ID_PRE_RAW_BE = IP_INFO_ID_MIN,
IP_INFO_ID_CROP4,
IP_INFO_ID_CROP5,
IP_INFO_ID_BLC4,
IP_INFO_ID_BLC5,
IP_INFO_ID_FPN,
IP_INFO_ID_IR_PRE_PROC_LE,
IP_INFO_ID_IR_PRE_PROC_SE,
IP_INFO_ID_IR_PROC,
IP_INFO_ID_AEHIST0,
IP_INFO_ID_AEHIST1,
IP_INFO_ID_AWB0,
IP_INFO_ID_GMS,
IP_INFO_ID_AF,
IP_INFO_ID_WBG0,
IP_INFO_ID_WBG1,
IP_INFO_ID_DPC0,
IP_INFO_ID_DPC1,
IP_INFO_ID_INV_WBG0,
IP_INFO_ID_INV_WBG1,
IP_INFO_ID_LSCR4,
IP_INFO_ID_LSCR5,
//Pre_raw_0_fe
IP_INFO_ID_PRE_RAW_FE0,
IP_INFO_ID_CSIBDG0,
IP_INFO_ID_CROP0,
IP_INFO_ID_CROP1,
IP_INFO_ID_BLC0,
IP_INFO_ID_BLC1,
IP_INFO_ID_LMP0,
IP_INFO_ID_WBG11,
IP_INFO_ID_LMP1,
IP_INFO_ID_WBG12,
IP_INFO_ID_RGBMAP0,
IP_INFO_ID_WBG7,
IP_INFO_ID_RGBMAP1,
IP_INFO_ID_WBG8,
IP_INFO_ID_LSCR0,
IP_INFO_ID_LSCR1,
//Pre_raw_1_fe
IP_INFO_ID_PRE_RAW_FE1,
IP_INFO_ID_CSIBDG1_R1,
IP_INFO_ID_CROP2,
IP_INFO_ID_CROP3,
IP_INFO_ID_BLC2,
IP_INFO_ID_BLC3,
IP_INFO_ID_LMP2,
IP_INFO_ID_WBG13,
IP_INFO_ID_LMP3,
IP_INFO_ID_WBG14,
IP_INFO_ID_RGBMAP2,
IP_INFO_ID_WBG9,
IP_INFO_ID_RGBMAP3,
IP_INFO_ID_WBG10,
IP_INFO_ID_LSCR2,
IP_INFO_ID_LSCR3,
//Rawtop
IP_INFO_ID_RAWTOP,
IP_INFO_ID_CFA,
IP_INFO_ID_BNR,
IP_INFO_ID_CROP6,
IP_INFO_ID_CROP7,
//Rgbtop
IP_INFO_ID_RGBTOP,
IP_INFO_ID_LSCM0,
IP_INFO_ID_CCM0,
IP_INFO_ID_CCM1,
IP_INFO_ID_CCM2,
IP_INFO_ID_CCM3,
IP_INFO_ID_CCM4,
IP_INFO_ID_MANR,
IP_INFO_ID_GAMMA,
IP_INFO_ID_CLUT,
IP_INFO_ID_DHZ,
IP_INFO_ID_R2Y4,
IP_INFO_ID_RGBDITHER,
IP_INFO_ID_PREYEE,
IP_INFO_ID_DCI,
IP_INFO_ID_HIST_EDGE_V,
IP_INFO_ID_HDRFUSION,
IP_INFO_ID_HDRLTM,
IP_INFO_ID_AWB2,
//Yuvtop
IP_INFO_ID_YUVTOP,
IP_INFO_ID_444422,
IP_INFO_ID_FBCE,
IP_INFO_ID_FBCD,
IP_INFO_ID_YUVDITHER,
IP_INFO_ID_YNR,
IP_INFO_ID_CNR,
IP_INFO_ID_EE,
IP_INFO_ID_YCURVE,
IP_INFO_ID_CROP8,
IP_INFO_ID_CROP9,
IP_INFO_ID_ISPTOP,
IP_INFO_ID_CSIBDG_LITE,
IP_INFO_ID_MAX,
};
struct ip_info {
__u32 str_addr; //IP start address
__u32 size; //IP total registers size
};
#if 0
struct cvi_vip_isp_raw_blk {
struct cvi_vip_memblock raw_dump;
__u32 time_out;//msec
__u16 src_w;
__u16 src_h;
__u16 crop_x;
__u16 crop_y;
__u8 is_b_not_rls;
__u8 is_timeout;
__u8 is_sig_int;
};
struct cvi_isp_sts_mem {
__u8 raw_num;
struct cvi_vip_memblock af;
struct cvi_vip_memblock gms;
struct cvi_vip_memblock ae_le;
struct cvi_vip_memblock ae_se;
struct cvi_vip_memblock awb;
struct cvi_vip_memblock awb_post;
struct cvi_vip_memblock dci;
struct cvi_vip_memblock hist_edge_v;
struct cvi_vip_memblock mmap;
};
#endif
struct cvi_isp_mbus_framefmt {
__u32 width;
__u32 height;
__u32 code;
};
struct cvi_isp_rect {
__s32 left;
__s32 top;
__u32 width;
__u32 height;
};
struct cvi_isp_usr_pic_cfg {
struct cvi_isp_mbus_framefmt fmt;
struct cvi_isp_rect crop;
};
#if 0
struct cvi_isp_snr_info {
__u8 raw_num;
__u16 color_mode;
__u32 pixel_rate;
struct wdr_size_s snr_fmt;
};
struct cvi_isp_snr_update {
__u8 raw_num;
struct snsr_cfg_node_s snr_cfg_node;
};
#endif
struct cvi_vip_isp_yuv_param {
__u8 raw_num;
__u32 yuv_bypass_path;
};
struct cvi_isp_mmap_grid_size {
__u8 raw_num;
__u8 grid_size;
};
struct isp_proc_cfg {
void *buffer;
#ifdef __arm__
__u32 padding;
#endif
size_t buffer_size;
};
struct cvi_vip_isp_awb_sts {
__u8 raw_num;
__u8 is_se;
__u8 buf_idx;
};
struct cvi_vi_dma_buf_info {
__u64 paddr;
__u32 size;
};
struct cvi_isp_sc_online {
__u8 raw_num;
__u8 is_sc_online;
};
#endif // __U_VI_ISP_H__