diff options
Diffstat (limited to 'drivers/video/tegra/dc/dsi_regs.h')
-rw-r--r-- | drivers/video/tegra/dc/dsi_regs.h | 351 |
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 | |||
20 | enum { | ||
21 | TEGRA_DSI_DISABLE, | ||
22 | TEGRA_DSI_ENABLE, | ||
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_CD 0x4c | ||
347 | #define DSI_PAD_CD_STATUS 0x4d | ||
348 | #define DSI_VID_MODE_CONTROL 0x4e | ||
349 | |||
350 | #endif | ||
351 | |||