aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/tegra/dc/dsi_regs.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/tegra/dc/dsi_regs.h')
-rw-r--r--drivers/video/tegra/dc/dsi_regs.h351
1 files changed, 351 insertions, 0 deletions
diff --git a/drivers/video/tegra/dc/dsi_regs.h b/drivers/video/tegra/dc/dsi_regs.h
new file mode 100644
index 00000000000..203ac32bd92
--- /dev/null
+++ b/drivers/video/tegra/dc/dsi_regs.h
@@ -0,0 +1,351 @@
1/*
2 * drivers/video/tegra/dc/dsi_regs.h
3 *
4 * Copyright (c) 2011, NVIDIA Corporation.
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
20enum {
21 TEGRA_DSI_DISABLE,
22 TEGRA_DSI_ENABLE,
23};
24
25/* These are word offsets from base (not byte offsets) */
26enum {
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
47enum {
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)
52enum {
53 DSI_PHY_CLK_DIV1,
54 DSI_PHY_CLK_DIV2,
55};
56#define DSI_HOST_DSI_CONTROL_PHY_CLK_DIV(x) (((x) & 0x7) << 16)
57enum {
58 SOL,
59 FIFO_LEVEL,
60 IMMEDIATE,
61};
62#define DSI_HOST_DSI_CONTROL_HOST_TX_TRIG_SRC(x) (((x) & 0x3) << 12)
63enum {
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)
71enum {
72 TEGRA_DSI_LOW,
73 TEGRA_DSI_HIGH,
74};
75#define DSI_HOST_DSI_CONTROL_HIGH_SPEED_TRANS(x) (((x) & 0x1) << 5)
76enum {
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)
88enum {
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
327enum {
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_CD 0x4c
347#define DSI_PAD_CD_STATUS 0x4d
348#define DSI_VID_MODE_CONTROL 0x4e
349
350#endif
351