1 /* 2 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef MIPI_DSI_DEFINE_H 17 #define MIPI_DSI_DEFINE_H 18 19 #define CMD_MAX_NUM 4 20 #define LANE_MAX_NUM 4 21 #define MIPI_TX_DISABLE_LANE_ID (-1) 22 #define MIPI_TX_SET_DATA_SIZE 800 23 #define MIPI_TX_GET_DATA_SIZE 160 24 25 typedef enum { 26 OUTPUT_MODE_CSI = 0x0, /* csi mode */ 27 OUTPUT_MODE_DSI_VIDEO = 0x1, /* dsi video mode */ 28 OUTPUT_MODE_DSI_CMD = 0x2, /* dsi command mode */ 29 30 OUTPUT_MODE_BUTT 31 } OutPutModeTag; 32 33 typedef enum { 34 BURST_MODE = 0x0, 35 NON_BURST_MODE_SYNC_PULSES = 0x1, 36 NON_BURST_MODE_SYNC_EVENTS = 0x2, 37 38 VIDEO_DATA_MODE_BUTT 39 } VideoModeTag; 40 41 typedef enum { 42 OUT_FORMAT_RGB_16_BIT = 0x0, 43 OUT_FORMAT_RGB_18_BIT = 0x1, 44 OUT_FORMAT_RGB_24_BIT = 0x2, 45 OUT_FORMAT_YUV420_8_BIT_NORMAL = 0x3, 46 OUT_FORMAT_YUV420_8_BIT_LEGACY = 0x4, 47 OUT_FORMAT_YUV422_8_BIT = 0x5, 48 OUT_FORMAT_BUTT 49 } OutputFormatTag; 50 51 typedef struct { 52 unsigned short vidPktSize; 53 unsigned short vidHsaPixels; 54 unsigned short vidHbpPixels; 55 unsigned short vidHlinePixels; 56 unsigned short vidVsaLines; 57 unsigned short vidVbpLines; 58 unsigned short vidVfpLines; 59 unsigned short vidActiveLines; 60 unsigned short edpiCmdSize; 61 } SyncInfoTag; 62 63 typedef struct { 64 unsigned int devno; /* device number */ 65 short laneId[LANE_MAX_NUM]; /* lane_id: -1 - disable */ 66 OutPutModeTag outputMode; /* output mode: CSI/DSI_VIDEO/DSI_CMD */ 67 VideoModeTag videoMode; 68 OutputFormatTag outputFormat; 69 SyncInfoTag syncInfo; 70 unsigned int phyDataRate; /* mbps */ 71 unsigned int pixelClk; /* KHz */ 72 bool initFlag; 73 struct PlatformDumper *dumper; 74 char *dumperName; 75 } ComboDevCfgTag; 76 77 typedef struct { 78 unsigned int devno; /* device number */ 79 unsigned short dataType; 80 unsigned short cmdSize; 81 unsigned char *cmd; 82 } CmdInfoTag; 83 84 typedef struct { 85 unsigned int devno; /* device number */ 86 unsigned short dataType; /* DSI data type */ 87 unsigned short dataParam; /* data param,low 8 bit:1st param.high 8 bit:2nt param, set 0 if not use */ 88 unsigned short getDataSize; /* read data size */ 89 unsigned char *getData; /* read data memory address, should malloc by user */ 90 } GetCmdInfoTag; 91 92 #endif 93