video: tegra: dsi: Enable MIPI auto calibration
[linux-3.10.git] / drivers / video / tegra / dc / dsi_regs.h
1 /*
2  * drivers/video/tegra/dc/dsi_regs.h
3  *
4  * Copyright (c) 2011-2013, NVIDIA CORPORATION, All rights reserved.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #ifndef __DRIVERS_VIDEO_TEGRA_DC_DSI_REG_H__
18 #define __DRIVERS_VIDEO_TEGRA_DC_DSI_REG_H__
19
20 enum {
21         TEGRA_DSI_PAD_ENABLE,
22         TEGRA_DSI_PAD_DISABLE,
23 };
24
25 /* These are word offsets from base (not byte offsets) */
26 enum {
27         OP_DONE = 1,
28 };
29 #define DSI_INCR_SYNCPT 0x00
30 #define DSI_INCR_SYNCPT_COND(x)         (((x) & 0xff) << 8)
31 #define DSI_INCR_SYNCPT_INDX(x)         (((x) & 0xff) << 0)
32
33 #define DSI_INCR_SYNCPT_CNTRL 0x01
34 #define DSI_INCR_SYNCPT_ERROR 0x02
35 #define DSI_CTXSW 0x08
36 #define DSI_RD_DATA 0x09
37 #define DSI_WR_DATA 0x0a
38
39 #define DSI_POWER_CONTROL 0x0b
40 #define   DSI_POWER_CONTROL_LEG_DSI_ENABLE(x)           (((x) & 0x1) << 0)
41
42 #define DSI_INT_ENABLE 0x0c
43 #define DSI_INT_STATUS 0x0d
44 #define DSI_INT_MASK 0x0e
45
46 #define DSI_HOST_DSI_CONTROL 0x0f
47 enum {
48         RESET_CRC = 1,
49 };
50 #define   DSI_HOST_CONTROL_FIFO_STAT_RESET(x)           (((x) & 0x1) << 21)
51 #define   DSI_HOST_DSI_CONTROL_CRC_RESET(x)             (((x) & 0x1) << 20)
52 enum {
53         DSI_PHY_CLK_DIV1,
54         DSI_PHY_CLK_DIV2,
55 };
56 #define   DSI_HOST_DSI_CONTROL_PHY_CLK_DIV(x)           (((x) & 0x7) << 16)
57 enum {
58         SOL,
59         FIFO_LEVEL,
60         IMMEDIATE,
61 };
62 #define   DSI_HOST_DSI_CONTROL_HOST_TX_TRIG_SRC(x)      (((x) & 0x3) << 12)
63 enum {
64         NORMAL,
65         ENTER_ULPM,
66         EXIT_ULPM,
67 };
68 #define   DSI_HOST_DSI_CONTROL_ULTRA_LOW_POWER(x)       (((x) & 0x3) << 8)
69 #define   DSI_HOST_DSI_CONTROL_PERIPH_RESET(x)          (((x) & 0x1) << 7)
70 #define   DSI_HOST_DSI_CONTROL_RAW_DATA(x)              (((x) & 0x1) << 6)
71 enum {
72         TEGRA_DSI_LOW,
73         TEGRA_DSI_HIGH,
74 };
75 #define   DSI_HOST_DSI_CONTROL_HIGH_SPEED_TRANS(x)      (((x) & 0x1) << 5)
76 enum {
77         HOST_ONLY,
78         VIDEO_HOST,
79 };
80 #define   DSI_HOST_DSI_CONTROL_PKT_WR_FIFO_SEL(x)       (((x) & 0x1) << 4)
81 #define   DSI_HOST_DSI_CONTROL_IMM_BTA(x)               (((x) & 0x1) << 3)
82 #define   DSI_HOST_DSI_CONTROL_PKT_BTA(x)               (((x) & 0x1) << 2)
83 #define   DSI_HOST_DSI_CONTROL_CS_ENABLE(x)             (((x) & 0x1) << 1)
84 #define   DSI_HOST_DSI_CONTROL_ECC_ENABLE(x)            (((x) & 0x1) << 0)
85
86 #define DSI_CONTROL 0x10
87 #define   DSI_CONTROL_DBG_ENABLE(x)                     (((x) & 0x1) << 31)
88 enum {
89         CONTINUOUS,
90         TX_ONLY,
91 };
92 #define   DSI_CONTROL_HS_CLK_CTRL(x)                    (((x) & 0x1) << 20)
93 #define   DSI_CONTROL_VIRTUAL_CHANNEL(x)                (((x) & 0x3) << 16)
94 #define   DSI_CONTROL_DATA_FORMAT(x)                    (((x) & 0x3) << 12)
95 #define   DSI_CONTROL_VID_TX_TRIG_SRC(x)                (((x) & 0x3) << 8)
96 #define   DSI_CONTROL_NUM_DATA_LANES(x)                 (((x) & 0x3) << 4)
97 #define   DSI_CONTROL_VID_DCS_ENABLE(x)                 (((x) & 0x1) << 3)
98 #define   DSI_CONTROL_VID_SOURCE(x)                     (((x) & 0x1) << 2)
99 #define   DSI_CONTROL_VID_ENABLE(x)                     (((x) & 0x1) << 1)
100 #define   DSI_CONTROL_HOST_ENABLE(x)                    (((x) & 0x1) << 0)
101
102 #define DSI_SOL_DELAY 0x11
103 #define DSI_SOL_DELAY_SOL_DELAY(x)                      (((x) & 0xffff) << 0)
104
105 #define DSI_MAX_THRESHOLD 0x12
106 #define DSI_MAX_THRESHOLD_MAX_THRESHOLD(x)              (((x) & 0xffff) << 0)
107
108 #define DSI_TRIGGER 0x13
109 #define DSI_TRIGGER_HOST_TRIGGER(x)                     (((x) & 0x1) << 1)
110 #define DSI_TRIGGER_VID_TRIGGER(x)                      (((x) & 0x1) << 0)
111
112 #define DSI_TX_CRC 0x14
113 #define DSI_TX_CRC_TX_CRC(x)                    (((x) & 0xffffffff) << 0)
114
115 #define DSI_STATUS 0x15
116 #define DSI_STATUS_IDLE(x)                      (((x) & 0x1) << 10)
117 #define DSI_STATUS_LB_UNDERFLOW(x)              (((x) & 0x1) << 9)
118 #define DSI_STATUS_LB_OVERFLOW(x)               (((x) & 0x1) << 8)
119 #define DSI_STATUS_RD_FIFO_COUNT(x)             (((x) & 0x1f) << 0)
120
121 #define DSI_INIT_SEQ_CONTROL 0x1a
122 #define   DSI_INIT_SEQ_CONTROL_DSI_FRAME_INIT_BYTE_COUNT(x) \
123                                 (((x) & 0x3f) << 8)
124 #define   DSI_INIT_SEQ_CONTROL_DSI_SEND_INIT_SEQUENCE(x) \
125                                 (((x) & 0xff) << 0)
126
127 #define DSI_INIT_SEQ_DATA_0 0x1b
128 #define DSI_INIT_SEQ_DATA_1 0x1c
129 #define DSI_INIT_SEQ_DATA_2 0x1d
130 #define DSI_INIT_SEQ_DATA_3 0x1e
131 #define DSI_INIT_SEQ_DATA_4 0x1f
132 #define DSI_INIT_SEQ_DATA_5 0x20
133 #define DSI_INIT_SEQ_DATA_6 0x21
134 #define DSI_INIT_SEQ_DATA_7 0x22
135
136 #define DSI_PKT_SEQ_0_LO 0x23
137 #define   DSI_PKT_SEQ_0_LO_SEQ_0_FORCE_LP(x)    (((x) & 0x1) << 30)
138 #define   DSI_PKT_SEQ_0_LO_PKT_02_EN(x)         (((x) & 0x1) << 29)
139 #define   DSI_PKT_SEQ_0_LO_PKT_02_ID(x)         (((x) & 0x3f) << 23)
140 #define   DSI_PKT_SEQ_0_LO_PKT_02_SIZE(x)       (((x) & 0x7) << 20)
141 #define   DSI_PKT_SEQ_0_LO_PKT_01_EN(x)         (((x) & 0x1) << 19)
142 #define   DSI_PKT_SEQ_0_LO_PKT_01_ID(x)         (((x) & 0x3f) << 13)
143 #define   DSI_PKT_SEQ_0_LO_PKT_01_SIZE(x)       (((x) & 0x7) << 10)
144 #define   DSI_PKT_SEQ_0_LO_PKT_00_EN(x)         (((x) & 0x1) << 9)
145 #define   DSI_PKT_SEQ_0_LO_PKT_00_ID(x)         (((x) & 0x3f) << 3)
146 #define   DSI_PKT_SEQ_0_LO_PKT_00_SIZE(x)       (((x) & 0x7) << 0)
147
148 #define DSI_PKT_SEQ_0_HI 0x24
149 #define   DSI_PKT_SEQ_0_HI_PKT_05_EN(x)         (((x) & 0x1) << 29)
150 #define   DSI_PKT_SEQ_0_HI_PKT_05_ID(x)         (((x) & 0x3f) << 23)
151 #define   DSI_PKT_SEQ_0_HI_PKT_05_SIZE(x)       (((x) & 0x7) << 20)
152 #define   DSI_PKT_SEQ_0_HI_PKT_04_EN(x)         (((x) & 0x1) << 19)
153 #define   DSI_PKT_SEQ_0_HI_PKT_04_ID(x)         (((x) & 0x3f) << 13)
154 #define   DSI_PKT_SEQ_0_HI_PKT_04_SIZE(x)       (((x) & 0x7) << 10)
155 #define   DSI_PKT_SEQ_0_HI_PKT_03_EN(x)         (((x) & 0x1) << 9)
156 #define   DSI_PKT_SEQ_0_HI_PKT_03_ID(x)         (((x) & 0x3f) << 3)
157 #define   DSI_PKT_SEQ_0_HI_PKT_03_SIZE(x)       (((x) & 0x7) << 0)
158
159 #define DSI_PKT_SEQ_1_LO 0x25
160 #define   DSI_PKT_SEQ_1_LO_SEQ_1_FORCE_LP(x)    (((x) & 0x1) << 30)
161 #define   DSI_PKT_SEQ_1_LO_PKT_12_EN(x)         (((x) & 0x1) << 29)
162 #define   DSI_PKT_SEQ_1_LO_PKT_12_ID(x)         (((x) & 0x3f) << 23)
163 #define   DSI_PKT_SEQ_1_LO_PKT_12_SIZE(x)       (((x) & 0x7) << 20)
164 #define   DSI_PKT_SEQ_1_LO_PKT_11_EN(x)         (((x) & 0x1) << 19)
165 #define   DSI_PKT_SEQ_1_LO_PKT_11_ID(x)         (((x) & 0x3f) << 13)
166 #define   DSI_PKT_SEQ_1_LO_PKT_11_SIZE(x)       (((x) & 0x7) << 10)
167 #define   DSI_PKT_SEQ_1_LO_PKT_10_EN(x)         (((x) & 0x1) << 9)
168 #define   DSI_PKT_SEQ_1_LO_PKT_10_ID(x)         (((x) & 0x3f) << 3)
169 #define   DSI_PKT_SEQ_1_LO_PKT_10_SIZE(x)       (((x) & 0x7) << 0)
170
171 #define DSI_PKT_SEQ_1_HI 0x26
172 #define   DSI_PKT_SEQ_1_HI_PKT_15_EN(x)         (((x) & 0x1) << 29)
173 #define   DSI_PKT_SEQ_1_HI_PKT_15_ID(x)         (((x) & 0x3f) << 23)
174 #define   DSI_PKT_SEQ_1_HI_PKT_15_SIZE(x)       (((x) & 0x7) << 20)
175 #define   DSI_PKT_SEQ_1_HI_PKT_14_EN(x)         (((x) & 0x1) << 19)
176 #define   DSI_PKT_SEQ_1_HI_PKT_14_ID(x)         (((x) & 0x3f) << 13)
177 #define   DSI_PKT_SEQ_1_HI_PKT_14_SIZE(x)       (((x) & 0x7) << 10)
178 #define   DSI_PKT_SEQ_1_HI_PKT_13_EN(x)         (((x) & 0x1) << 9)
179 #define   DSI_PKT_SEQ_1_HI_PKT_13_ID(x)         (((x) & 0x3f) << 3)
180 #define   DSI_PKT_SEQ_1_HI_PKT_13_SIZE(x)       (((x) & 0x7) << 0)
181
182 #define DSI_PKT_SEQ_2_LO 0x27
183 #define   DSI_PKT_SEQ_2_LO_SEQ_2_FORCE_LP(x)    (((x) & 0x1) << 30)
184 #define   DSI_PKT_SEQ_2_LO_PKT_22_EN(x)         (((x) & 0x1) << 29)
185 #define   DSI_PKT_SEQ_2_LO_PKT_22_ID(x)         (((x) & 0x3f) << 23)
186 #define   DSI_PKT_SEQ_2_LO_PKT_22_SIZE(x)       (((x) & 0x7) << 20)
187 #define   DSI_PKT_SEQ_2_LO_PKT_21_EN(x)         (((x) & 0x1) << 19)
188 #define   DSI_PKT_SEQ_2_LO_PKT_21_ID(x)         (((x) & 0x3f) << 13)
189 #define   DSI_PKT_SEQ_2_LO_PKT_21_SIZE(x)       (((x) & 0x7) << 10)
190 #define   DSI_PKT_SEQ_2_LO_PKT_20_EN(x)         (((x) & 0x1) << 9)
191 #define   DSI_PKT_SEQ_2_LO_PKT_20_ID(x)         (((x) & 0x3f) << 3)
192 #define   DSI_PKT_SEQ_2_LO_PKT_20_SIZE(x)       (((x) & 0x7) << 0)
193
194 #define DSI_PKT_SEQ_2_HI 0x28
195 #define   DSI_PKT_SEQ_2_HI_PKT_25_EN(x)         (((x) & 0x1) << 29)
196 #define   DSI_PKT_SEQ_2_HI_PKT_25_ID(x)         (((x) & 0x3f) << 23)
197 #define   DSI_PKT_SEQ_2_HI_PKT_25_SIZE(x)       (((x) & 0x7) << 20)
198 #define   DSI_PKT_SEQ_2_HI_PKT_24_EN(x)         (((x) & 0x1) << 19)
199 #define   DSI_PKT_SEQ_2_HI_PKT_24_ID(x)         (((x) & 0x3f) << 13)
200 #define   DSI_PKT_SEQ_2_HI_PKT_24_SIZE(x)       (((x) & 0x7) << 10)
201 #define   DSI_PKT_SEQ_2_HI_PKT_23_EN(x)         (((x) & 0x1) << 9)
202 #define   DSI_PKT_SEQ_2_HI_PKT_23_ID(x)         (((x) & 0x3f) << 3)
203 #define   DSI_PKT_SEQ_2_HI_PKT_23_SIZE(x)       (((x) & 0x7) << 0)
204
205 #define DSI_PKT_SEQ_3_LO 0x29
206 #define   DSI_PKT_SEQ_3_LO_SEQ_3_FORCE_LP(x)    (((x) & 0x1) << 30)
207 #define   DSI_PKT_SEQ_3_LO_PKT_32_EN(x)         (((x) & 0x1) << 29)
208 #define   DSI_PKT_SEQ_3_LO_PKT_32_ID(x)         (((x) & 0x3f) << 23)
209 #define   DSI_PKT_SEQ_3_LO_PKT_32_SIZE(x)       (((x) & 0x7) << 20)
210 #define   DSI_PKT_SEQ_3_LO_PKT_31_EN(x)         (((x) & 0x1) << 19)
211 #define   DSI_PKT_SEQ_3_LO_PKT_31_ID(x)         (((x) & 0x3f) << 13)
212 #define   DSI_PKT_SEQ_3_LO_PKT_31_SIZE(x)       (((x) & 0x7) << 10)
213 #define   DSI_PKT_SEQ_3_LO_PKT_30_EN(x)         (((x) & 0x1) << 9)
214 #define   DSI_PKT_SEQ_3_LO_PKT_30_ID(x)         (((x) & 0x3f) << 3)
215 #define   DSI_PKT_SEQ_3_LO_PKT_30_SIZE(x)       (((x) & 0x7) << 0)
216
217 #define DSI_PKT_SEQ_3_HI 0x2a
218 #define   DSI_PKT_SEQ_3_HI_PKT_35_EN(x)         (((x) & 0x1) << 29)
219 #define   DSI_PKT_SEQ_3_HI_PKT_35_ID(x)         (((x) & 0x3f) << 23)
220 #define   DSI_PKT_SEQ_3_HI_PKT_35_SIZE(x)       (((x) & 0x7) << 20)
221 #define   DSI_PKT_SEQ_3_HI_PKT_34_EN(x)         (((x) & 0x1) << 19)
222 #define   DSI_PKT_SEQ_3_HI_PKT_34_ID(x)         (((x) & 0x3f) << 13)
223 #define   DSI_PKT_SEQ_3_HI_PKT_34_SIZE(x)       (((x) & 0x7) << 10)
224 #define   DSI_PKT_SEQ_3_HI_PKT_33_EN(x)         (((x) & 0x1) << 9)
225 #define   DSI_PKT_SEQ_3_HI_PKT_33_ID(x)         (((x) & 0x3f) << 3)
226 #define   DSI_PKT_SEQ_3_HI_PKT_33_SIZE(x)       (((x) & 0x7) << 0)
227
228 #define DSI_PKT_SEQ_4_LO 0x2b
229 #define   DSI_PKT_SEQ_4_LO_SEQ_4_FORCE_LP(x)    (((x) & 0x1) << 30)
230 #define   DSI_PKT_SEQ_4_LO_PKT_42_EN(x)         (((x) & 0x1) << 29)
231 #define   DSI_PKT_SEQ_4_LO_PKT_42_ID(x)         (((x) & 0x3f) << 23)
232 #define   DSI_PKT_SEQ_4_LO_PKT_42_SIZE(x)       (((x) & 0x7) << 20)
233 #define   DSI_PKT_SEQ_4_LO_PKT_41_EN(x)         (((x) & 0x1) << 19)
234 #define   DSI_PKT_SEQ_4_LO_PKT_41_ID(x)         (((x) & 0x3f) << 13)
235 #define   DSI_PKT_SEQ_4_LO_PKT_41_SIZE(x)       (((x) & 0x7) << 10)
236 #define   DSI_PKT_SEQ_4_LO_PKT_40_EN(x)         (((x) & 0x1) << 9)
237 #define   DSI_PKT_SEQ_4_LO_PKT_40_ID(x)         (((x) & 0x3f) << 3)
238 #define   DSI_PKT_SEQ_4_LO_PKT_40_SIZE(x)       (((x) & 0x7) << 0)
239
240 #define DSI_PKT_SEQ_4_HI 0x2c
241 #define   DSI_PKT_SEQ_4_HI_PKT_45_EN(x)         (((x) & 0x1) << 29)
242 #define   DSI_PKT_SEQ_4_HI_PKT_45_ID(x)         (((x) & 0x3f) << 23)
243 #define   DSI_PKT_SEQ_4_HI_PKT_45_SIZE(x)       (((x) & 0x7) << 20)
244 #define   DSI_PKT_SEQ_4_HI_PKT_44_EN(x)         (((x) & 0x1) << 19)
245 #define   DSI_PKT_SEQ_4_HI_PKT_44_ID(x)         (((x) & 0x3f) << 13)
246 #define   DSI_PKT_SEQ_4_HI_PKT_44_SIZE(x)       (((x) & 0x7) << 10)
247 #define   DSI_PKT_SEQ_4_HI_PKT_43_EN(x)         (((x) & 0x1) << 9)
248 #define   DSI_PKT_SEQ_4_HI_PKT_43_ID(x)         (((x) & 0x3f) << 3)
249 #define   DSI_PKT_SEQ_4_HI_PKT_43_SIZE(x)       (((x) & 0x7) << 0)
250
251 #define DSI_PKT_SEQ_5_LO 0x2d
252 #define   DSI_PKT_SEQ_5_LO_SEQ_5_FORCE_LP(x)    (((x) & 0x1) << 30)
253 #define   DSI_PKT_SEQ_5_LO_PKT_52_EN(x)         (((x) & 0x1) << 29)
254 #define   DSI_PKT_SEQ_5_LO_PKT_52_ID(x)         (((x) & 0x3f) << 23)
255 #define   DSI_PKT_SEQ_5_LO_PKT_52_SIZE(x)       (((x) & 0x7) << 20)
256 #define   DSI_PKT_SEQ_5_LO_PKT_51_EN(x)         (((x) & 0x1) << 19)
257 #define   DSI_PKT_SEQ_5_LO_PKT_51_ID(x)         (((x) & 0x3f) << 13)
258 #define   DSI_PKT_SEQ_5_LO_PKT_51_SIZE(x)       (((x) & 0x7) << 10)
259 #define   DSI_PKT_SEQ_5_LO_PKT_50_EN(x)         (((x) & 0x1) << 9)
260 #define   DSI_PKT_SEQ_5_LO_PKT_50_ID(x)         (((x) & 0x3f) << 3)
261 #define   DSI_PKT_SEQ_5_LO_PKT_50_SIZE(x)       (((x) & 0x7) << 0)
262
263 #define DSI_PKT_SEQ_5_HI 0x2e
264 #define   DSI_PKT_SEQ_5_HI_PKT_55_EN(x)         (((x) & 0x1) << 29)
265 #define   DSI_PKT_SEQ_5_HI_PKT_55_ID(x)         (((x) & 0x3f) << 23)
266 #define   DSI_PKT_SEQ_5_HI_PKT_55_SIZE(x)       (((x) & 0x7) << 20)
267 #define   DSI_PKT_SEQ_5_HI_PKT_54_EN(x)         (((x) & 0x1) << 19)
268 #define   DSI_PKT_SEQ_5_HI_PKT_54_ID(x)         (((x) & 0x3f) << 13)
269 #define   DSI_PKT_SEQ_5_HI_PKT_54_SIZE(x)       (((x) & 0x7) << 10)
270 #define   DSI_PKT_SEQ_5_HI_PKT_53_EN(x)         (((x) & 0x1) << 9)
271 #define   DSI_PKT_SEQ_5_HI_PKT_53_ID(x)         (((x) & 0x3f) << 3)
272 #define   DSI_PKT_SEQ_5_HI_PKT_53_SIZE(x)       (((x) & 0x7) << 0)
273
274 #define DSI_DCS_CMDS 0x33
275 #define   DSI_DCS_CMDS_LT5_DCS_CMD(x)           (((x) & 0xff) << 8)
276 #define   DSI_DCS_CMDS_LT3_DCS_CMD(x)           (((x) & 0xff) << 0)
277
278 #define DSI_PKT_LEN_0_1 0x34
279 #define   DSI_PKT_LEN_0_1_LENGTH_1(x)           (((x) & 0xffff) << 16)
280 #define   DSI_PKT_LEN_0_1_LENGTH_0(x)           (((x) & 0xffff) << 0)
281
282 #define DSI_PKT_LEN_2_3 0x35
283 #define   DSI_PKT_LEN_2_3_LENGTH_3(x)           (((x) & 0xffff) << 16)
284 #define   DSI_PKT_LEN_2_3_LENGTH_2(x)           (((x) & 0xffff) << 0)
285
286
287 #define DSI_PKT_LEN_4_5 0x36
288 #define   DSI_PKT_LEN_4_5_LENGTH_5(x)           (((x) & 0xffff) << 16)
289 #define   DSI_PKT_LEN_4_5_LENGTH_4(x)           (((x) & 0xffff) << 0)
290
291 #define DSI_PKT_LEN_6_7 0x37
292 #define   DSI_PKT_LEN_6_7_LENGTH_7(x)           (((x) & 0xffff) << 16)
293 #define   DSI_PKT_LEN_6_7_LENGTH_6(x)           (((x) & 0xffff) << 0)
294
295 #define DSI_PHY_TIMING_0 0x3c
296 #define   DSI_PHY_TIMING_0_THSDEXIT(x)          (((x) & 0xff) << 24)
297 #define   DSI_PHY_TIMING_0_THSTRAIL(x)          (((x) & 0xff) << 16)
298 #define   DSI_PHY_TIMING_0_TDATZERO(x)          (((x) & 0xff) << 8)
299 #define   DSI_PHY_TIMING_0_THSPREPR(x)          (((x) & 0xff) << 0)
300
301 #define DSI_PHY_TIMING_1 0x3d
302 #define   DSI_PHY_TIMING_1_TCLKTRAIL(x)         (((x) & 0xff) << 24)
303 #define   DSI_PHY_TIMING_1_TCLKPOST(x)          (((x) & 0xff) << 16)
304 #define   DSI_PHY_TIMING_1_TCLKZERO(x)          (((x) & 0xff) << 8)
305 #define   DSI_PHY_TIMING_1_TTLPX(x)             (((x) & 0xff) << 0)
306
307 #define DSI_PHY_TIMING_2 0x3e
308 #define   DSI_PHY_TIMING_2_TCLKPREPARE(x)       (((x) & 0xff) << 16)
309 #define   DSI_PHY_TIMING_2_TCLKPRE(x)           (((x) & 0xff) << 8)
310 #define   DSI_PHY_TIMING_2_TWAKEUP(x)           (((x) & 0xff) << 0)
311
312 #define DSI_BTA_TIMING 0x3f
313 #define   DSI_BTA_TIMING_TTAGET(x)              (((x) & 0xff) << 16)
314 #define   DSI_BTA_TIMING_TTASURE(x)             (((x) & 0xff) << 8)
315 #define   DSI_BTA_TIMING_TTAGO(x)               (((x) & 0xff) << 0)
316
317
318 #define DSI_TIMEOUT_0 0x44
319 #define   DSI_TIMEOUT_0_LRXH_TO(x)              (((x) & 0xffff) << 16)
320 #define   DSI_TIMEOUT_0_HTX_TO(x)               (((x) & 0xffff) << 0)
321
322 #define DSI_TIMEOUT_1 0x45
323 #define   DSI_TIMEOUT_1_PR_TO(x)                (((x) & 0xffff) << 16)
324 #define   DSI_TIMEOUT_1_TA_TO(x)                (((x) & 0xffff) << 0)
325
326 #define DSI_TO_TALLY 0x46
327 enum {
328         IN_RESET,
329         READY,
330 };
331 #define DSI_TO_TALLY_P_RESET_STATUS(x)          (((x) & 0x1) << 24)
332 #define DSI_TO_TALLY_TA_TALLY(x)                (((x) & 0xff) << 16)
333 #define DSI_TO_TALLY_LRXH_TALLY(x)              (((x) & 0xff) << 8)
334 #define DSI_TO_TALLY_HTX_TALLY(x)               (((x) & 0xff) << 0)
335
336 #define DSI_PAD_CONTROL 0x4b
337 #define DSI_PAD_CONTROL_PAD_PULLDN_ENAB(x)      (((x) & 0x1) << 28)
338 #define DSI_PAD_CONTROL_PAD_SLEWUPADJ(x)        (((x) & 0x7) << 24)
339 #define DSI_PAD_CONTROL_PAD_SLEWDNADJ(x)        (((x) & 0x7) << 20)
340 #define DSI_PAD_CONTROL_PAD_PREEMP_EN(x)        (((x) & 0x1) << 19)
341 #define DSI_PAD_CONTROL_PAD_PDIO_CLK(x)         (((x) & 0x1) << 18)
342 #define DSI_PAD_CONTROL_PAD_PDIO(x)             (((x) & 0x3) << 16)
343 #define DSI_PAD_CONTROL_PAD_LPUPADJ(x)          (((x) & 0x3) << 14)
344 #define DSI_PAD_CONTROL_PAD_LPDNADJ(x)          (((x) & 0x3) << 12)
345
346 #define DSI_PAD_CONTROL_0_VS1 0x4b
347 #define DSI_PAD_CONTROL_0_VS1_PAD_PULLDN_CLK_ENAB(x)    (((x) & 0x1) << 24)
348 #define DSI_PAD_CONTROL_0_VS1_PAD_PULLDN_ENAB(x)        (((x) & 0xf) << 16)
349 #define DSI_PAD_CONTROL_0_VS1_PAD_PDIO_CLK(x)           (((x) & 0x1) << 8)
350 #define DSI_PAD_CONTROL_0_VS1_PAD_PDIO(x)               (((x) & 0xf) << 0)
351
352 #define DSI_PAD_CONTROL_CD 0x4c
353 #define DSI_PAD_CONTROL_CD_VS1 0x4c
354 #define DSI_PAD_CD_STATUS 0x4d
355 #define DSI_PAD_CD_STATUS_VS1 0x4d
356
357 #define DSI_PAD_CONTROL_1_VS1 0x4f
358 #define DSI_PAD_OUTADJ3(x)      (((x) & 0x7) << 12)
359 #define DSI_PAD_OUTADJ2(x)      (((x) & 0x7) << 8)
360 #define DSI_PAD_OUTADJ1(x)      (((x) & 0x7) << 4)
361 #define DSI_PAD_OUTADJ0(x)      (((x) & 0x7) << 0)
362
363 #define DSI_PAD_CONTROL_2_VS1 0x50
364 #define DSI_PAD_SLEWUPADJ(x)    (((x) & 0x7) << 16)
365 #define DSI_PAD_SLEWDNADJ(x)    (((x) & 0x7) << 12)
366 #define DSI_PAD_LPUPADJ(x)      (((x) & 0x7) << 8)
367 #define DSI_PAD_LPDNADJ(x)      (((x) & 0x7) << 4)
368 #define DSI_PAD_OUTADJCLK(x)    (((x) & 0x7) << 0)
369
370 #define DSI_PAD_CONTROL_3_VS1 0x51
371 #define DSI_PAD_PDVCLAMP(x)     (((x) & 0x1) << 28)
372 #define DSI_PAD_BANDWD_IN(x)    (((x) & 0x1) << 16)
373 #define DSI_PAD_PREEMP_PD_CLK(x)        (((x) & 0x3) << 12)
374 #define DSI_PAD_PREEMP_PU_CLK(x)        (((x) & 0x3) << 8)
375 #define DSI_PAD_PREEMP_PD(x)    (((x) & 0x3) << 4)
376 #define DSI_PAD_PREEMP_PU(x)    (((x) & 0x3) << 0)
377
378 #define DSI_PAD_CONTROL_4_VS1 0x52
379 #define DSI_PAD_HS_BSO_CLK(x)   (((x) & 0x1) << 28)
380 #define DSI_PAD_HS_BSO(x)       (((x) & 0xf) << 20)
381 #define DSI_PAD_LP_BSO_CLK(x)   (((x) & 0x1) << 16)
382 #define DSI_PAD_LP_BSO(x)       (((x) & 0xf) << 8)
383 #define DSI_PAD_TXBW_EN(x)      (((x) & 0x1) << 4)
384 #define DSI_PAD_REV_CLK(x)      (((x) & 0x1) << 0)
385
386 #define DSI_VID_MODE_CONTROL 0x4e
387
388 #define DSI_GANGED_MODE_CONTROL 0x53
389 #define DSI_GANGED_MODE_CONTROL_EN(x)                   (((x) & 0x1) << 0)
390
391 #define DSI_GANGED_MODE_START 0x54
392 #define DSI_GANGED_MODE_START_POINTER(x)                (((x) & 0x1fff) << 0)
393
394 #define DSI_GANGED_MODE_SIZE 0x55
395 #define DSI_GANGED_MODE_SIZE_VALID_LOW_WIDTH(x)         (((x) & 0x1fff) << 16)
396 #define DSI_GANGED_MODE_SIZE_VALID_HIGH_WIDTH(x)        (((x) & 0x1fff) << 0)
397
398 #endif
399