Files
Linux_Drivers/middleware/v2/include/linux/vi_uapi.h
2023-12-22 16:54:29 +08:00

225 lines
4.1 KiB
C

#ifndef __U_VI_UAPI_H__
#define __U_VI_UAPI_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <linux/version.h>
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
#include <linux/time_types.h>
#endif
#include <linux/cvi_comm_vi.h>
#include <linux/cvi_comm_sys.h>
#define VI_IOC_MAGIC 'V'
#define VI_IOC_BASE 0x20
#define VI_IOC_G_CTRL _IOWR(VI_IOC_MAGIC, VI_IOC_BASE, struct vi_ext_control)
#define VI_IOC_S_CTRL _IOWR(VI_IOC_MAGIC, VI_IOC_BASE + 1, struct vi_ext_control)
enum VI_IOCTL {
VI_IOCTL_ONLINE,
VI_IOCTL_HDR,
VI_IOCTL_3DNR,
VI_IOCTL_TILE,
VI_IOCTL_COMPRESS_EN,
VI_IOCTL_STS_MEM,
VI_IOCTL_STS_GET,
VI_IOCTL_STS_PUT,
VI_IOCTL_POST_STS_GET,
VI_IOCTL_POST_STS_PUT,
VI_IOCTL_USR_PIC_CFG,
VI_IOCTL_USR_PIC_ONOFF,
VI_IOCTL_USR_PIC_PUT,
VI_IOCTL_AE_CFG,
VI_IOCTL_AWB_CFG,
VI_IOCTL_AF_CFG,
VI_IOCTL_USR_PIC_TIMING,
VI_IOCTL_GET_LSC_PHY_BUF,
VI_IOCTL_CSIBDG_CFG,
VI_IOCTL_GET_TUN_ADDR,
VI_IOCTL_SET_SNR_INFO,
VI_IOCTL_SET_SNR_CFG_NODE,
VI_IOCTL_GET_PIPE_DUMP,
VI_IOCTL_PUT_PIPE_DUMP,
VI_IOCTL_SET_RGBMAP_IDX,
VI_IOCTL_HDR_DETAIL_EN,
VI_IOCTL_YUV_BYPASS_PATH,
VI_IOCTL_BE_ONLINE,
VI_IOCTL_SUBLVDS_PATH,
VI_IOCTL_GET_IP_INFO,
VI_IOCTL_TRIG_PRERAW,
VI_IOCTL_SET_PROC_CONTENT,
VI_IOCTL_SC_ONLINE,
VI_IOCTL_MMAP_GRID_SIZE,
VI_IOCTL_RGBIR,
VI_IOCTL_AWB_STS_GET,
VI_IOCTL_AWB_STS_PUT,
VI_IOCTL_GET_FSWDR_PHY_BUF,
VI_IOCTL_GET_SCENE_INFO,
VI_IOCTL_CLK_CTRL,
VI_IOCTL_GET_BUF_SIZE,
VI_IOCTL_SET_DMA_BUF_INFO,
VI_IOCTL_ENQ_BUF,
VI_IOCTL_DQEVENT,
VI_IOCTL_START_STREAMING,
VI_IOCTL_STOP_STREAMING,
VI_IOCTL_SET_SLICE_BUF_EN,
VI_IOCTL_GET_CLUT_TBL_IDX,
VI_IOCTL_SDK_CTRL,
VI_IOCTL_GET_RGBMAP_LE_PHY_BUF,
VI_IOCTL_GET_RGBMAP_SE_PHY_BUF,
VI_IOCTL_MAX,
};
enum VI_SDK_CTRL {
VI_SDK_SET_DEV_ATTR,
VI_SDK_GET_DEV_ATTR,
VI_SDK_ENABLE_DEV,
VI_SDK_DISABLE_DEV,
VI_SDK_CREATE_PIPE,
VI_SDK_DESTROY_PIPE,
VI_SDK_SET_PIPE_ATTR,
VI_SDK_GET_PIPE_ATTR,
VI_SDK_START_PIPE,
VI_SDK_STOP_PIPE,
VI_SDK_SET_CHN_ATTR,
VI_SDK_GET_CHN_ATTR,
VI_SDK_ENABLE_CHN,
VI_SDK_DISABLE_CHN,
VI_SDK_SET_MOTION_LV,
VI_SDK_ENABLE_DIS,
VI_SDK_DISABLE_DIS,
VI_SDK_SET_DIS_INFO,
VI_SDK_SET_PIPE_FRM_SRC,
VI_SDK_SEND_PIPE_RAW,
VI_SDK_SET_DEV_TIMING_ATTR,
VI_SDK_GET_CHN_FRAME,
VI_SDK_RELEASE_CHN_FRAME,
VI_SDK_SET_CHN_CROP,
VI_SDK_GET_CHN_CROP,
VI_SDK_GET_PIPE_FRAME,
VI_SDK_RELEASE_PIPE_FRAME,
VI_SDK_START_SMOOTH_RAWDUMP,
VI_SDK_STOP_SMOOTH_RAWDUMP,
VI_SDK_GET_SMOOTH_RAWDUMP,
VI_SDK_PUT_SMOOTH_RAWDUMP,
VI_SDK_SET_CHN_ROTATION,
VI_SDK_SET_CHN_LDC,
VI_SDK_ATTACH_VB_POOL,
VI_SDK_DETACH_VB_POOL,
VI_SDK_GET_PIPE_DUMP_ATTR,
VI_SDK_SET_PIPE_DUMP_ATTR,
};
/*
* Events
*/
enum VI_EVENT {
VI_EVENT_BASE,
VI_EVENT_PRE0_SOF,
VI_EVENT_PRE1_SOF,
VI_EVENT_PRE0_EOF,
VI_EVENT_PRE1_EOF,
VI_EVENT_POST_EOF,
VI_EVENT_POST1_EOF,
VI_EVENT_ISP_PROC_READ,
VI_EVENT_AWB0_DONE,
VI_EVENT_AWB1_DONE,
VI_EVENT_MAX,
};
struct _vi_sdk_cfg {
__s32 dev;
__s32 pipe;
__s32 chn;
void *ptr;
__s32 val;
};
struct vi_ext_control {
__u32 id;
__u32 sdk_id;
struct _vi_sdk_cfg sdk_cfg;
union {
__s32 value;
__s64 value64;
void *ptr;
};
} __attribute__ ((packed));
struct vi_plane {
__u64 addr;
};
/*
* @index:
* @length: length of planes
* @planes: to describe buf
* @reserved
*/
struct vi_buffer {
__u32 index;
__u32 length;
struct vi_plane planes[3];
__u32 reserved;
};
struct vi_event {
__u32 dev_id;
__u32 type;
__u32 frame_sequence;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
struct __kernel_timespec timestamp;
#else
struct timeval timestamp;
#endif
};
#define MO_TBL_SIZE 256
struct mlv_info_s {
__u8 sensor_num;
__u32 frm_num;
__u8 mlv;
__u8 mtable[MO_TBL_SIZE];
};
struct crop_size_s {
__u16 start_x;
__u16 start_y;
__u16 end_x;
__u16 end_y;
};
struct dis_info_s {
__u8 sensor_num;
__u32 frm_num;
struct crop_size_s dis_i;
};
struct vi_chn_rot_cfg {
VI_CHN ViChn;
ROTATION_E enRotation;
};
struct vi_chn_ldc_cfg {
VI_CHN ViChn;
ROTATION_E enRotation;
VI_LDC_ATTR_S stLDCAttr;
CVI_U64 meshHandle;
};
struct vi_vb_pool_cfg {
VI_PIPE ViPipe;
VI_CHN ViChn;
__u32 VbPool;
};
#ifdef __cplusplus
}
#endif
#endif /* __U_VI_UAPI_H__ */