• 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_TX_HI35XX_H
17 #define MIPI_TX_HI35XX_H
18 
19 /****************************************************************************
20  * macro definition                                                         *
21  ****************************************************************************/
22 #define MIPI_TX_REGS_ADDR   0x11270000
23 #define MIPI_TX_REGS_SIZE   0x10000
24 
25 #define MIPI_TX_IRQ         120
26 
27 #define MIPI_TX_CRG         0x1201010C
28 
29 #define MIPI_TX_REF_CLK     27
30 
31 #define TLPX                60
32 #define TCLK_PREPARE        60
33 #define TCLK_ZERO           250
34 #define TCLK_TRAIL          80
35 #define TPRE_DELAY          100
36 #define THS_PREPARE         80
37 #define THS_ZERO            180
38 #define THS_TRAIL           110
39 
40 /* phy addr */
41 #define PLL_SET0            0x60
42 #define PLL_SET1            0x64
43 #define PLL_SET2            0x65
44 #ifdef HI_FPGA
45 #define PLL_SET3            0x17
46 #endif
47 #define PLL_SET4            0x66
48 #define PLL_SET5            0x67
49 
50 #define DATA0_TPRE_DELAY    0x28
51 #define DATA1_TPRE_DELAY    0x38
52 #define DATA2_TPRE_DELAY    0x48
53 #define DATA3_TPRE_DELAY    0x58
54 
55 #define CLK_TLPX            0x10
56 #define CLK_TCLK_PREPARE    0x11
57 #define CLK_TCLK_ZERO       0x12
58 #define CLK_TCLK_TRAIL      0x13
59 
60 #define DATA0_TLPX          0x20
61 #define DATA0_THS_PREPARE   0x21
62 #define DATA0_THS_ZERO      0x22
63 #define DATA0_THS_TRAIL     0x23
64 #define DATA1_TLPX          0x30
65 #define DATA1_THS_PREPARE   0x31
66 #define DATA1_THS_ZERO      0x32
67 #define DATA1_THS_TRAIL     0x33
68 #define DATA2_TLPX          0x40
69 #define DATA2_THS_PREPARE   0x41
70 #define DATA2_THS_ZERO      0x42
71 #define DATA2_THS_TRAIL     0x43
72 #define DATA3_TLPX          0x50
73 #define DATA3_THS_PREPARE   0x51
74 #define DATA3_THS_ZERO      0x52
75 #define DATA3_THS_TRAIL     0x53
76 
77 #define MIPI_TX_READ_TIMEOUT_CNT 1000
78 
79 #define PREPARE_COMPENSATE    10
80 #define ROUNDUP_VALUE     7999
81 #define INNER_PEROID      8000   /* 8 * 1000 ,1000 is 1us = 1000ns, 8 is division ratio */
82 
83 #define MIPI_TX_DUMPER_NAME_PREFIX         "mipi_tx_dumper_"
84 #define MIPI_TX_DUMPER_NAME_LEN            64
85 #define MIPI_TX_DUMPER_DATAS_REGISTER_SIZE 10
86 
87 #define MIPI_TX_PWR_UP                     0x4
88 #define MIPI_TX_CLKMGR_CFG                 0x8
89 #define MIPI_TX_VCID                       0xc
90 #define MIPI_TX_COLOR_CODING               0x10
91 #define MIPI_TX_LP_CMD_TIM                 0x18
92 #define MIPI_TX_GEN_VCID                   0x30
93 #define MIPI_TX_VID_HSA_TIME               0x48
94 #define MIPI_TX_VID_HBP_TIME               0x4c
95 #define MIPI_TX_VID_HLINE_TIME             0x50
96 #define MIPI_TX_VID_VSA_LINES              0x54
97 #define MIPI_TX_VID_VBP_LINES              0x58
98 #define MIPI_TX_VID_VFP_LINES              0x5c
99 
100 typedef struct {
101     unsigned char dataTpreDelay;
102     unsigned char clkTlpx;
103     unsigned char clkTclkPrepare;
104     unsigned char clkTclkZero;
105     unsigned char clkTclkTrail;
106     unsigned char dataTlpx;
107     unsigned char dataThsPrepare;
108     unsigned char dataThsZero;
109     unsigned char dataThsTrail;
110 } MipiTxPhyTimingParamTag;
111 
112 typedef struct {
113     unsigned int vallDet;
114     unsigned int vactDet;
115     unsigned int hallDet;
116     unsigned int hactDet;
117     unsigned int hbpDet;
118     unsigned int hsaDet;
119     unsigned int vsaDet;
120 } MipiTxDevPhyTag;
121 
122 void MipiTxDrvGetDevStatus(MipiTxDevPhyTag *phyCtx);
123 #endif
124