123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /******************************************************************************
- Copyright (C), 2016, Hisilicon Tech. Co., Ltd.
- ******************************************************************************
- File Name : hi_mipi_tx.h
- Version : Initial Draft
- Author : Hisilicon multimedia software group
- Created : 2016/11/15
- Last Modified :
- Description :
- Function List :
- ******************************************************************************/
- #ifndef __HI_MIPI_TX__
- #define __HI_MIPI_TX__
- #define CMD_MAX_NUM 4
- #define LANE_MAX_NUM 4
- #define HI_MIPI_TX_ERR(x...) \
- do { \
- osal_printk("%s(%d): ", __FUNCTION__, __LINE__); \
- osal_printk(x); \
- } while (0)
- #define MIPITX_CHECK_NULL_PTR(ptr)\
- do{\
- if(NULL == ptr)\
- {\
- HI_MIPI_TX_ERR("NULL point \r\n");\
- return -1;\
- }\
- } while(0)
- typedef enum
- {
- OUTPUT_MODE_CSI = 0x0, /* csi mode */
- OUTPUT_MODE_DSI_VIDEO = 0x1, /* dsi video mode */
- OUTPUT_MODE_DSI_CMD = 0x2, /* dsi command mode */
- OUTPUT_MODE_BUTT
- } output_mode_t;
- typedef enum
- {
- BRUST_MODE = 0x0,
- NON_BRUST_MODE_SYNC_PULSES = 0x1,
- NON_BRUST_MODE_SYNC_EVENTS = 0x2,
- } video_mode_t;
- typedef enum
- {
- OUT_FORMAT_RGB_16_BIT = 0x0,
- OUT_FORMAT_RGB_18_BIT = 0x1,
- OUT_FORMAT_RGB_24_BIT = 0x2,
- OUT_FORMAT_YUV420_8_BIT_NORMAL = 0x3,
- OUT_FORMAT_YUV420_8_BIT_LEGACY = 0x4,
- OUT_FORMAT_YUV422_8_BIT = 0x5,
- OUT_FORMAT_BUTT
- } output_format_t;
- typedef struct
- {
- unsigned short vid_pkt_size;
- unsigned short vid_hsa_pixels;
- unsigned short vid_hbp_pixels;
- unsigned short vid_hline_pixels;
- unsigned short vid_vsa_lines;
- unsigned short vid_vbp_lines;
- unsigned short vid_vfp_lines;
- unsigned short vid_active_lines;
- unsigned short edpi_cmd_size;
- } sync_info_t;
- typedef struct
- {
- unsigned int devno; /* device number*/
- short lane_id[LANE_MAX_NUM]; /* lane_id: -1 - disable */
- output_mode_t output_mode; /* output mode: CSI/DSI_VIDEO/DSI_CMD */
- video_mode_t video_mode;
- output_format_t output_format;
- sync_info_t sync_info;
- unsigned int phy_data_rate; /*mbps*/
- unsigned int pixel_clk; /*KHz*/
- } combo_dev_cfg_t;
- typedef struct
- {
- unsigned int devno; /* device number */
- unsigned short data_type;
- unsigned short cmd_size;
- unsigned char *cmd;
- } cmd_info_t;
- #define HI_MIPI_TX_IOC_MAGIC 't'
- #define HI_MIPI_TX_SET_DEV_CFG _IOW(HI_MIPI_TX_IOC_MAGIC, 0x01, combo_dev_cfg_t)
- #define HI_MIPI_TX_SET_CMD _IOW(HI_MIPI_TX_IOC_MAGIC, 0x02, cmd_info_t)
- #define HI_MIPI_TX_ENABLE _IO(HI_MIPI_TX_IOC_MAGIC, 0x03)
- #endif
|