1 /* 2 * mipi_dsi_define.h 3 * 4 * hi35xx mipi_tx driver implement. 5 * 6 * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 7 * 8 * This software is licensed under the terms of the GNU General Public 9 * License version 2, as published by the Free Software Foundation, and 10 * may be copied, distributed, and modified under those terms. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 */ 18 19 #ifndef MIPI_DSI_DEFINE_H 20 #define MIPI_DSI_DEFINE_H 21 22 #define CMD_MAX_NUM 4 23 #define LANE_MAX_NUM 4 24 #define MIPI_TX_DISABLE_LANE_ID (-1) 25 #define MIPI_TX_SET_DATA_SIZE 800 26 #define MIPI_TX_GET_DATA_SIZE 160 27 28 typedef enum { 29 OUTPUT_MODE_CSI = 0x0, /* csi mode */ 30 OUTPUT_MODE_DSI_VIDEO = 0x1, /* dsi video mode */ 31 OUTPUT_MODE_DSI_CMD = 0x2, /* dsi command mode */ 32 33 OUTPUT_MODE_BUTT 34 } OutPutModeTag; 35 36 typedef enum { 37 BURST_MODE = 0x0, 38 NON_BURST_MODE_SYNC_PULSES = 0x1, 39 NON_BURST_MODE_SYNC_EVENTS = 0x2, 40 41 VIDEO_DATA_MODE_BUTT 42 } VideoModeTag; 43 44 typedef enum { 45 OUT_FORMAT_RGB_16_BIT = 0x0, 46 OUT_FORMAT_RGB_18_BIT = 0x1, 47 OUT_FORMAT_RGB_24_BIT = 0x2, 48 OUT_FORMAT_YUV420_8_BIT_NORMAL = 0x3, 49 OUT_FORMAT_YUV420_8_BIT_LEGACY = 0x4, 50 OUT_FORMAT_YUV422_8_BIT = 0x5, 51 52 OUT_FORMAT_BUTT 53 } OutputFormatTag; 54 55 typedef struct { 56 unsigned short vidPktSize; 57 unsigned short vidHsaPixels; 58 unsigned short vidHbpPixels; 59 unsigned short vidHlinePixels; 60 unsigned short vidVsaLines; 61 unsigned short vidVbpLines; 62 unsigned short vidVfpLines; 63 unsigned short vidActiveLines; 64 unsigned short edpiCmdSize; 65 } SyncInfoTag; 66 67 typedef struct { 68 unsigned int devno; /* device number */ 69 short laneId[LANE_MAX_NUM]; /* lane_id: -1 - disable */ 70 OutPutModeTag outputMode; /* output mode: CSI/DSI_VIDEO/DSI_CMD */ 71 VideoModeTag videoMode; 72 OutputFormatTag outputFormat; 73 SyncInfoTag syncInfo; 74 unsigned int phyDataRate; /* mbps */ 75 unsigned int pixelClk; /* KHz */ 76 } ComboDevCfgTag; 77 78 typedef struct { 79 unsigned int devno; /* device number */ 80 unsigned short dataType; 81 unsigned short cmdSize; 82 unsigned char *cmd; 83 } CmdInfoTag; 84 85 typedef struct { 86 unsigned int devno; /* device number */ 87 unsigned short dataType; /* DSI data type */ 88 unsigned short dataParam; /* data param,low 8 bit:1st param.high 8 bit:2nt param, set 0 if not use */ 89 unsigned short getDataSize; /* read data size */ 90 unsigned char *getData; /* read data memory address, should malloc by user */ 91 } GetCmdInfoTag; 92 93 #endif /* MIPI_DSI_DEFINE_H */ 94