• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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