aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2013-06-24 17:12:04 -0400
committerRob Clark <robdclark@gmail.com>2013-08-24 14:33:01 -0400
commit0cf6c71d70d8aa39b8fd0e39c9009602a0e0d300 (patch)
tree27e36ef9ee024c90c4e9946ae60e15691ca458ba
parent291d284c6004e3a63d0c2f6c31570ab2126843a8 (diff)
drm/msm: add register definitions
Generated from rnndb files in: https://github.com/freedreno/envytools Keep this split out as a separate commit to make it easier to review the actual driver. Signed-off-by: Rob Clark <robdclark@gmail.com>
-rw-r--r--drivers/gpu/drm/msm/dsi/dsi.xml.h502
-rw-r--r--drivers/gpu/drm/msm/dsi/mmss_cc.xml.h114
-rw-r--r--drivers/gpu/drm/msm/dsi/sfpb.xml.h48
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi.xml.h508
-rw-r--r--drivers/gpu/drm/msm/hdmi/qfprom.xml.h50
-rw-r--r--drivers/gpu/drm/msm/mdp4/mdp4.xml.h1061
6 files changed, 2283 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/dsi/dsi.xml.h b/drivers/gpu/drm/msm/dsi/dsi.xml.h
new file mode 100644
index 000000000000..6f8396be431d
--- /dev/null
+++ b/drivers/gpu/drm/msm/dsi/dsi.xml.h
@@ -0,0 +1,502 @@
1#ifndef DSI_XML
2#define DSI_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The rules-ng-ng source files this header was generated from are:
11- /home/robclark/src/freedreno/envytools/rnndb/msm.xml ( 595 bytes, from 2013-07-05 19:21:12)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/mdp4/mdp4.xml ( 19332 bytes, from 2013-08-16 22:16:36)
14- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml ( 11712 bytes, from 2013-08-17 17:13:43)
15- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml ( 344 bytes, from 2013-08-11 19:26:32)
16- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml ( 1544 bytes, from 2013-08-16 19:17:05)
17- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2013-07-05 19:21:12)
18- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml ( 19288 bytes, from 2013-08-11 18:14:15)
19
20Copyright (C) 2013 by the following authors:
21- Rob Clark <robdclark@gmail.com> (robclark)
22
23Permission is hereby granted, free of charge, to any person obtaining
24a copy of this software and associated documentation files (the
25"Software"), to deal in the Software without restriction, including
26without limitation the rights to use, copy, modify, merge, publish,
27distribute, sublicense, and/or sell copies of the Software, and to
28permit persons to whom the Software is furnished to do so, subject to
29the following conditions:
30
31The above copyright notice and this permission notice (including the
32next paragraph) shall be included in all copies or substantial
33portions of the Software.
34
35THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
39LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42*/
43
44
45enum dsi_traffic_mode {
46 NON_BURST_SYNCH_PULSE = 0,
47 NON_BURST_SYNCH_EVENT = 1,
48 BURST_MODE = 2,
49};
50
51enum dsi_dst_format {
52 DST_FORMAT_RGB565 = 0,
53 DST_FORMAT_RGB666 = 1,
54 DST_FORMAT_RGB666_LOOSE = 2,
55 DST_FORMAT_RGB888 = 3,
56};
57
58enum dsi_rgb_swap {
59 SWAP_RGB = 0,
60 SWAP_RBG = 1,
61 SWAP_BGR = 2,
62 SWAP_BRG = 3,
63 SWAP_GRB = 4,
64 SWAP_GBR = 5,
65};
66
67enum dsi_cmd_trigger {
68 TRIGGER_NONE = 0,
69 TRIGGER_TE = 2,
70 TRIGGER_SW = 4,
71 TRIGGER_SW_SEOF = 5,
72 TRIGGER_SW_TE = 6,
73};
74
75#define DSI_IRQ_CMD_DMA_DONE 0x00000001
76#define DSI_IRQ_MASK_CMD_DMA_DONE 0x00000002
77#define DSI_IRQ_CMD_MDP_DONE 0x00000100
78#define DSI_IRQ_MASK_CMD_MDP_DONE 0x00000200
79#define DSI_IRQ_VIDEO_DONE 0x00010000
80#define DSI_IRQ_MASK_VIDEO_DONE 0x00020000
81#define DSI_IRQ_ERROR 0x01000000
82#define DSI_IRQ_MASK_ERROR 0x02000000
83#define REG_DSI_CTRL 0x00000000
84#define DSI_CTRL_ENABLE 0x00000001
85#define DSI_CTRL_VID_MODE_EN 0x00000002
86#define DSI_CTRL_CMD_MODE_EN 0x00000004
87#define DSI_CTRL_LANE0 0x00000010
88#define DSI_CTRL_LANE1 0x00000020
89#define DSI_CTRL_LANE2 0x00000040
90#define DSI_CTRL_LANE3 0x00000080
91#define DSI_CTRL_CLK_EN 0x00000100
92#define DSI_CTRL_ECC_CHECK 0x00100000
93#define DSI_CTRL_CRC_CHECK 0x01000000
94
95#define REG_DSI_STATUS0 0x00000004
96#define DSI_STATUS0_CMD_MODE_DMA_BUSY 0x00000002
97#define DSI_STATUS0_VIDEO_MODE_ENGINE_BUSY 0x00000008
98#define DSI_STATUS0_DSI_BUSY 0x00000010
99
100#define REG_DSI_FIFO_STATUS 0x00000008
101
102#define REG_DSI_VID_CFG0 0x0000000c
103#define DSI_VID_CFG0_VIRT_CHANNEL__MASK 0x00000003
104#define DSI_VID_CFG0_VIRT_CHANNEL__SHIFT 0
105static inline uint32_t DSI_VID_CFG0_VIRT_CHANNEL(uint32_t val)
106{
107 return ((val) << DSI_VID_CFG0_VIRT_CHANNEL__SHIFT) & DSI_VID_CFG0_VIRT_CHANNEL__MASK;
108}
109#define DSI_VID_CFG0_DST_FORMAT__MASK 0x00000030
110#define DSI_VID_CFG0_DST_FORMAT__SHIFT 4
111static inline uint32_t DSI_VID_CFG0_DST_FORMAT(enum dsi_dst_format val)
112{
113 return ((val) << DSI_VID_CFG0_DST_FORMAT__SHIFT) & DSI_VID_CFG0_DST_FORMAT__MASK;
114}
115#define DSI_VID_CFG0_TRAFFIC_MODE__MASK 0x00000300
116#define DSI_VID_CFG0_TRAFFIC_MODE__SHIFT 8
117static inline uint32_t DSI_VID_CFG0_TRAFFIC_MODE(enum dsi_traffic_mode val)
118{
119 return ((val) << DSI_VID_CFG0_TRAFFIC_MODE__SHIFT) & DSI_VID_CFG0_TRAFFIC_MODE__MASK;
120}
121#define DSI_VID_CFG0_BLLP_POWER_STOP 0x00001000
122#define DSI_VID_CFG0_EOF_BLLP_POWER_STOP 0x00008000
123#define DSI_VID_CFG0_HSA_POWER_STOP 0x00010000
124#define DSI_VID_CFG0_HBP_POWER_STOP 0x00100000
125#define DSI_VID_CFG0_HFP_POWER_STOP 0x01000000
126#define DSI_VID_CFG0_PULSE_MODE_HSA_HE 0x10000000
127
128#define REG_DSI_VID_CFG1 0x0000001c
129#define DSI_VID_CFG1_R_SEL 0x00000010
130#define DSI_VID_CFG1_G_SEL 0x00000100
131#define DSI_VID_CFG1_B_SEL 0x00001000
132#define DSI_VID_CFG1_RGB_SWAP__MASK 0x00070000
133#define DSI_VID_CFG1_RGB_SWAP__SHIFT 16
134static inline uint32_t DSI_VID_CFG1_RGB_SWAP(enum dsi_rgb_swap val)
135{
136 return ((val) << DSI_VID_CFG1_RGB_SWAP__SHIFT) & DSI_VID_CFG1_RGB_SWAP__MASK;
137}
138#define DSI_VID_CFG1_INTERLEAVE_MAX__MASK 0x00f00000
139#define DSI_VID_CFG1_INTERLEAVE_MAX__SHIFT 20
140static inline uint32_t DSI_VID_CFG1_INTERLEAVE_MAX(uint32_t val)
141{
142 return ((val) << DSI_VID_CFG1_INTERLEAVE_MAX__SHIFT) & DSI_VID_CFG1_INTERLEAVE_MAX__MASK;
143}
144
145#define REG_DSI_ACTIVE_H 0x00000020
146#define DSI_ACTIVE_H_START__MASK 0x00000fff
147#define DSI_ACTIVE_H_START__SHIFT 0
148static inline uint32_t DSI_ACTIVE_H_START(uint32_t val)
149{
150 return ((val) << DSI_ACTIVE_H_START__SHIFT) & DSI_ACTIVE_H_START__MASK;
151}
152#define DSI_ACTIVE_H_END__MASK 0x0fff0000
153#define DSI_ACTIVE_H_END__SHIFT 16
154static inline uint32_t DSI_ACTIVE_H_END(uint32_t val)
155{
156 return ((val) << DSI_ACTIVE_H_END__SHIFT) & DSI_ACTIVE_H_END__MASK;
157}
158
159#define REG_DSI_ACTIVE_V 0x00000024
160#define DSI_ACTIVE_V_START__MASK 0x00000fff
161#define DSI_ACTIVE_V_START__SHIFT 0
162static inline uint32_t DSI_ACTIVE_V_START(uint32_t val)
163{
164 return ((val) << DSI_ACTIVE_V_START__SHIFT) & DSI_ACTIVE_V_START__MASK;
165}
166#define DSI_ACTIVE_V_END__MASK 0x0fff0000
167#define DSI_ACTIVE_V_END__SHIFT 16
168static inline uint32_t DSI_ACTIVE_V_END(uint32_t val)
169{
170 return ((val) << DSI_ACTIVE_V_END__SHIFT) & DSI_ACTIVE_V_END__MASK;
171}
172
173#define REG_DSI_TOTAL 0x00000028
174#define DSI_TOTAL_H_TOTAL__MASK 0x00000fff
175#define DSI_TOTAL_H_TOTAL__SHIFT 0
176static inline uint32_t DSI_TOTAL_H_TOTAL(uint32_t val)
177{
178 return ((val) << DSI_TOTAL_H_TOTAL__SHIFT) & DSI_TOTAL_H_TOTAL__MASK;
179}
180#define DSI_TOTAL_V_TOTAL__MASK 0x0fff0000
181#define DSI_TOTAL_V_TOTAL__SHIFT 16
182static inline uint32_t DSI_TOTAL_V_TOTAL(uint32_t val)
183{
184 return ((val) << DSI_TOTAL_V_TOTAL__SHIFT) & DSI_TOTAL_V_TOTAL__MASK;
185}
186
187#define REG_DSI_ACTIVE_HSYNC 0x0000002c
188#define DSI_ACTIVE_HSYNC_START__MASK 0x00000fff
189#define DSI_ACTIVE_HSYNC_START__SHIFT 0
190static inline uint32_t DSI_ACTIVE_HSYNC_START(uint32_t val)
191{
192 return ((val) << DSI_ACTIVE_HSYNC_START__SHIFT) & DSI_ACTIVE_HSYNC_START__MASK;
193}
194#define DSI_ACTIVE_HSYNC_END__MASK 0x0fff0000
195#define DSI_ACTIVE_HSYNC_END__SHIFT 16
196static inline uint32_t DSI_ACTIVE_HSYNC_END(uint32_t val)
197{
198 return ((val) << DSI_ACTIVE_HSYNC_END__SHIFT) & DSI_ACTIVE_HSYNC_END__MASK;
199}
200
201#define REG_DSI_ACTIVE_VSYNC 0x00000034
202#define DSI_ACTIVE_VSYNC_START__MASK 0x00000fff
203#define DSI_ACTIVE_VSYNC_START__SHIFT 0
204static inline uint32_t DSI_ACTIVE_VSYNC_START(uint32_t val)
205{
206 return ((val) << DSI_ACTIVE_VSYNC_START__SHIFT) & DSI_ACTIVE_VSYNC_START__MASK;
207}
208#define DSI_ACTIVE_VSYNC_END__MASK 0x0fff0000
209#define DSI_ACTIVE_VSYNC_END__SHIFT 16
210static inline uint32_t DSI_ACTIVE_VSYNC_END(uint32_t val)
211{
212 return ((val) << DSI_ACTIVE_VSYNC_END__SHIFT) & DSI_ACTIVE_VSYNC_END__MASK;
213}
214
215#define REG_DSI_CMD_DMA_CTRL 0x00000038
216#define DSI_CMD_DMA_CTRL_FROM_FRAME_BUFFER 0x10000000
217#define DSI_CMD_DMA_CTRL_LOW_POWER 0x04000000
218
219#define REG_DSI_CMD_CFG0 0x0000003c
220
221#define REG_DSI_CMD_CFG1 0x00000040
222
223#define REG_DSI_DMA_BASE 0x00000044
224
225#define REG_DSI_DMA_LEN 0x00000048
226
227#define REG_DSI_ACK_ERR_STATUS 0x00000064
228
229static inline uint32_t REG_DSI_RDBK(uint32_t i0) { return 0x00000068 + 0x4*i0; }
230
231static inline uint32_t REG_DSI_RDBK_DATA(uint32_t i0) { return 0x00000068 + 0x4*i0; }
232
233#define REG_DSI_TRIG_CTRL 0x00000080
234#define DSI_TRIG_CTRL_DMA_TRIGGER__MASK 0x0000000f
235#define DSI_TRIG_CTRL_DMA_TRIGGER__SHIFT 0
236static inline uint32_t DSI_TRIG_CTRL_DMA_TRIGGER(enum dsi_cmd_trigger val)
237{
238 return ((val) << DSI_TRIG_CTRL_DMA_TRIGGER__SHIFT) & DSI_TRIG_CTRL_DMA_TRIGGER__MASK;
239}
240#define DSI_TRIG_CTRL_MDP_TRIGGER__MASK 0x000000f0
241#define DSI_TRIG_CTRL_MDP_TRIGGER__SHIFT 4
242static inline uint32_t DSI_TRIG_CTRL_MDP_TRIGGER(enum dsi_cmd_trigger val)
243{
244 return ((val) << DSI_TRIG_CTRL_MDP_TRIGGER__SHIFT) & DSI_TRIG_CTRL_MDP_TRIGGER__MASK;
245}
246#define DSI_TRIG_CTRL_STREAM 0x00000100
247#define DSI_TRIG_CTRL_TE 0x80000000
248
249#define REG_DSI_TRIG_DMA 0x0000008c
250
251#define REG_DSI_DLN0_PHY_ERR 0x000000b0
252
253#define REG_DSI_TIMEOUT_STATUS 0x000000bc
254
255#define REG_DSI_CLKOUT_TIMING_CTRL 0x000000c0
256#define DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__MASK 0x0000003f
257#define DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__SHIFT 0
258static inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE(uint32_t val)
259{
260 return ((val) << DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__SHIFT) & DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__MASK;
261}
262#define DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__MASK 0x00003f00
263#define DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__SHIFT 8
264static inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_POST(uint32_t val)
265{
266 return ((val) << DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__SHIFT) & DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__MASK;
267}
268
269#define REG_DSI_EOT_PACKET_CTRL 0x000000c8
270#define DSI_EOT_PACKET_CTRL_TX_EOT_APPEND 0x00000001
271#define DSI_EOT_PACKET_CTRL_RX_EOT_IGNORE 0x00000010
272
273#define REG_DSI_LANE_SWAP_CTRL 0x000000ac
274
275#define REG_DSI_ERR_INT_MASK0 0x00000108
276
277#define REG_DSI_INTR_CTRL 0x0000010c
278
279#define REG_DSI_RESET 0x00000114
280
281#define REG_DSI_CLK_CTRL 0x00000118
282
283#define REG_DSI_PHY_RESET 0x00000128
284
285#define REG_DSI_PHY_PLL_CTRL_0 0x00000200
286#define DSI_PHY_PLL_CTRL_0_ENABLE 0x00000001
287
288#define REG_DSI_PHY_PLL_CTRL_1 0x00000204
289
290#define REG_DSI_PHY_PLL_CTRL_2 0x00000208
291
292#define REG_DSI_PHY_PLL_CTRL_3 0x0000020c
293
294#define REG_DSI_PHY_PLL_CTRL_4 0x00000210
295
296#define REG_DSI_PHY_PLL_CTRL_5 0x00000214
297
298#define REG_DSI_PHY_PLL_CTRL_6 0x00000218
299
300#define REG_DSI_PHY_PLL_CTRL_7 0x0000021c
301
302#define REG_DSI_PHY_PLL_CTRL_8 0x00000220
303
304#define REG_DSI_PHY_PLL_CTRL_9 0x00000224
305
306#define REG_DSI_PHY_PLL_CTRL_10 0x00000228
307
308#define REG_DSI_PHY_PLL_CTRL_11 0x0000022c
309
310#define REG_DSI_PHY_PLL_CTRL_12 0x00000230
311
312#define REG_DSI_PHY_PLL_CTRL_13 0x00000234
313
314#define REG_DSI_PHY_PLL_CTRL_14 0x00000238
315
316#define REG_DSI_PHY_PLL_CTRL_15 0x0000023c
317
318#define REG_DSI_PHY_PLL_CTRL_16 0x00000240
319
320#define REG_DSI_PHY_PLL_CTRL_17 0x00000244
321
322#define REG_DSI_PHY_PLL_CTRL_18 0x00000248
323
324#define REG_DSI_PHY_PLL_CTRL_19 0x0000024c
325
326#define REG_DSI_PHY_PLL_CTRL_20 0x00000250
327
328#define REG_DSI_PHY_PLL_STATUS 0x00000280
329#define DSI_PHY_PLL_STATUS_PLL_BUSY 0x00000001
330
331#define REG_DSI_8x60_PHY_TPA_CTRL_1 0x00000258
332
333#define REG_DSI_8x60_PHY_TPA_CTRL_2 0x0000025c
334
335#define REG_DSI_8x60_PHY_TIMING_CTRL_0 0x00000260
336
337#define REG_DSI_8x60_PHY_TIMING_CTRL_1 0x00000264
338
339#define REG_DSI_8x60_PHY_TIMING_CTRL_2 0x00000268
340
341#define REG_DSI_8x60_PHY_TIMING_CTRL_3 0x0000026c
342
343#define REG_DSI_8x60_PHY_TIMING_CTRL_4 0x00000270
344
345#define REG_DSI_8x60_PHY_TIMING_CTRL_5 0x00000274
346
347#define REG_DSI_8x60_PHY_TIMING_CTRL_6 0x00000278
348
349#define REG_DSI_8x60_PHY_TIMING_CTRL_7 0x0000027c
350
351#define REG_DSI_8x60_PHY_TIMING_CTRL_8 0x00000280
352
353#define REG_DSI_8x60_PHY_TIMING_CTRL_9 0x00000284
354
355#define REG_DSI_8x60_PHY_TIMING_CTRL_10 0x00000288
356
357#define REG_DSI_8x60_PHY_TIMING_CTRL_11 0x0000028c
358
359#define REG_DSI_8x60_PHY_CTRL_0 0x00000290
360
361#define REG_DSI_8x60_PHY_CTRL_1 0x00000294
362
363#define REG_DSI_8x60_PHY_CTRL_2 0x00000298
364
365#define REG_DSI_8x60_PHY_CTRL_3 0x0000029c
366
367#define REG_DSI_8x60_PHY_STRENGTH_0 0x000002a0
368
369#define REG_DSI_8x60_PHY_STRENGTH_1 0x000002a4
370
371#define REG_DSI_8x60_PHY_STRENGTH_2 0x000002a8
372
373#define REG_DSI_8x60_PHY_STRENGTH_3 0x000002ac
374
375#define REG_DSI_8x60_PHY_REGULATOR_CTRL_0 0x000002cc
376
377#define REG_DSI_8x60_PHY_REGULATOR_CTRL_1 0x000002d0
378
379#define REG_DSI_8x60_PHY_REGULATOR_CTRL_2 0x000002d4
380
381#define REG_DSI_8x60_PHY_REGULATOR_CTRL_3 0x000002d8
382
383#define REG_DSI_8x60_PHY_REGULATOR_CTRL_4 0x000002dc
384
385#define REG_DSI_8x60_PHY_CAL_HW_TRIGGER 0x000000f0
386
387#define REG_DSI_8x60_PHY_CAL_CTRL 0x000000f4
388
389#define REG_DSI_8x60_PHY_CAL_STATUS 0x000000fc
390#define DSI_8x60_PHY_CAL_STATUS_CAL_BUSY 0x10000000
391
392static inline uint32_t REG_DSI_8960_LN(uint32_t i0) { return 0x00000300 + 0x40*i0; }
393
394static inline uint32_t REG_DSI_8960_LN_CFG_0(uint32_t i0) { return 0x00000300 + 0x40*i0; }
395
396static inline uint32_t REG_DSI_8960_LN_CFG_1(uint32_t i0) { return 0x00000304 + 0x40*i0; }
397
398static inline uint32_t REG_DSI_8960_LN_CFG_2(uint32_t i0) { return 0x00000308 + 0x40*i0; }
399
400static inline uint32_t REG_DSI_8960_LN_TEST_DATAPATH(uint32_t i0) { return 0x0000030c + 0x40*i0; }
401
402static inline uint32_t REG_DSI_8960_LN_TEST_STR_0(uint32_t i0) { return 0x00000314 + 0x40*i0; }
403
404static inline uint32_t REG_DSI_8960_LN_TEST_STR_1(uint32_t i0) { return 0x00000318 + 0x40*i0; }
405
406#define REG_DSI_8960_PHY_LNCK_CFG_0 0x00000400
407
408#define REG_DSI_8960_PHY_LNCK_CFG_1 0x00000404
409
410#define REG_DSI_8960_PHY_LNCK_CFG_2 0x00000408
411
412#define REG_DSI_8960_PHY_LNCK_TEST_DATAPATH 0x0000040c
413
414#define REG_DSI_8960_PHY_LNCK_TEST_STR0 0x00000414
415
416#define REG_DSI_8960_PHY_LNCK_TEST_STR1 0x00000418
417
418#define REG_DSI_8960_PHY_TIMING_CTRL_0 0x00000440
419
420#define REG_DSI_8960_PHY_TIMING_CTRL_1 0x00000444
421
422#define REG_DSI_8960_PHY_TIMING_CTRL_2 0x00000448
423
424#define REG_DSI_8960_PHY_TIMING_CTRL_3 0x0000044c
425
426#define REG_DSI_8960_PHY_TIMING_CTRL_4 0x00000450
427
428#define REG_DSI_8960_PHY_TIMING_CTRL_5 0x00000454
429
430#define REG_DSI_8960_PHY_TIMING_CTRL_6 0x00000458
431
432#define REG_DSI_8960_PHY_TIMING_CTRL_7 0x0000045c
433
434#define REG_DSI_8960_PHY_TIMING_CTRL_8 0x00000460
435
436#define REG_DSI_8960_PHY_TIMING_CTRL_9 0x00000464
437
438#define REG_DSI_8960_PHY_TIMING_CTRL_10 0x00000468
439
440#define REG_DSI_8960_PHY_TIMING_CTRL_11 0x0000046c
441
442#define REG_DSI_8960_PHY_CTRL_0 0x00000470
443
444#define REG_DSI_8960_PHY_CTRL_1 0x00000474
445
446#define REG_DSI_8960_PHY_CTRL_2 0x00000478
447
448#define REG_DSI_8960_PHY_CTRL_3 0x0000047c
449
450#define REG_DSI_8960_PHY_STRENGTH_0 0x00000480
451
452#define REG_DSI_8960_PHY_STRENGTH_1 0x00000484
453
454#define REG_DSI_8960_PHY_STRENGTH_2 0x00000488
455
456#define REG_DSI_8960_PHY_BIST_CTRL_0 0x0000048c
457
458#define REG_DSI_8960_PHY_BIST_CTRL_1 0x00000490
459
460#define REG_DSI_8960_PHY_BIST_CTRL_2 0x00000494
461
462#define REG_DSI_8960_PHY_BIST_CTRL_3 0x00000498
463
464#define REG_DSI_8960_PHY_BIST_CTRL_4 0x0000049c
465
466#define REG_DSI_8960_PHY_LDO_CTRL 0x000004b0
467
468#define REG_DSI_8960_PHY_REGULATOR_CTRL_0 0x00000500
469
470#define REG_DSI_8960_PHY_REGULATOR_CTRL_1 0x00000504
471
472#define REG_DSI_8960_PHY_REGULATOR_CTRL_2 0x00000508
473
474#define REG_DSI_8960_PHY_REGULATOR_CTRL_3 0x0000050c
475
476#define REG_DSI_8960_PHY_REGULATOR_CTRL_4 0x00000510
477
478#define REG_DSI_8960_PHY_REGULATOR_CAL_PWR_CFG 0x00000518
479
480#define REG_DSI_8960_PHY_CAL_HW_TRIGGER 0x00000528
481
482#define REG_DSI_8960_PHY_CAL_SW_CFG_0 0x0000052c
483
484#define REG_DSI_8960_PHY_CAL_SW_CFG_1 0x00000530
485
486#define REG_DSI_8960_PHY_CAL_SW_CFG_2 0x00000534
487
488#define REG_DSI_8960_PHY_CAL_HW_CFG_0 0x00000538
489
490#define REG_DSI_8960_PHY_CAL_HW_CFG_1 0x0000053c
491
492#define REG_DSI_8960_PHY_CAL_HW_CFG_2 0x00000540
493
494#define REG_DSI_8960_PHY_CAL_HW_CFG_3 0x00000544
495
496#define REG_DSI_8960_PHY_CAL_HW_CFG_4 0x00000548
497
498#define REG_DSI_8960_PHY_CAL_STATUS 0x00000550
499#define DSI_8960_PHY_CAL_STATUS_CAL_BUSY 0x00000010
500
501
502#endif /* DSI_XML */
diff --git a/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h b/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h
new file mode 100644
index 000000000000..aefc1b8feae9
--- /dev/null
+++ b/drivers/gpu/drm/msm/dsi/mmss_cc.xml.h
@@ -0,0 +1,114 @@
1#ifndef MMSS_CC_XML
2#define MMSS_CC_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The rules-ng-ng source files this header was generated from are:
11- /home/robclark/src/freedreno/envytools/rnndb/msm.xml ( 595 bytes, from 2013-07-05 19:21:12)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/mdp4/mdp4.xml ( 19332 bytes, from 2013-08-16 22:16:36)
14- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml ( 11712 bytes, from 2013-08-17 17:13:43)
15- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml ( 344 bytes, from 2013-08-11 19:26:32)
16- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml ( 1544 bytes, from 2013-08-16 19:17:05)
17- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2013-07-05 19:21:12)
18- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml ( 19288 bytes, from 2013-08-11 18:14:15)
19
20Copyright (C) 2013 by the following authors:
21- Rob Clark <robdclark@gmail.com> (robclark)
22
23Permission is hereby granted, free of charge, to any person obtaining
24a copy of this software and associated documentation files (the
25"Software"), to deal in the Software without restriction, including
26without limitation the rights to use, copy, modify, merge, publish,
27distribute, sublicense, and/or sell copies of the Software, and to
28permit persons to whom the Software is furnished to do so, subject to
29the following conditions:
30
31The above copyright notice and this permission notice (including the
32next paragraph) shall be included in all copies or substantial
33portions of the Software.
34
35THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
39LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42*/
43
44
45enum mmss_cc_clk {
46 CLK = 0,
47 PCLK = 1,
48};
49
50#define REG_MMSS_CC_AHB 0x00000008
51
52static inline uint32_t __offset_CLK(enum mmss_cc_clk idx)
53{
54 switch (idx) {
55 case CLK: return 0x0000004c;
56 case PCLK: return 0x00000130;
57 default: return INVALID_IDX(idx);
58 }
59}
60static inline uint32_t REG_MMSS_CC_CLK(enum mmss_cc_clk i0) { return 0x00000000 + __offset_CLK(i0); }
61
62static inline uint32_t REG_MMSS_CC_CLK_CC(enum mmss_cc_clk i0) { return 0x00000000 + __offset_CLK(i0); }
63#define MMSS_CC_CLK_CC_CLK_EN 0x00000001
64#define MMSS_CC_CLK_CC_ROOT_EN 0x00000004
65#define MMSS_CC_CLK_CC_MND_EN 0x00000020
66#define MMSS_CC_CLK_CC_MND_MODE__MASK 0x000000c0
67#define MMSS_CC_CLK_CC_MND_MODE__SHIFT 6
68static inline uint32_t MMSS_CC_CLK_CC_MND_MODE(uint32_t val)
69{
70 return ((val) << MMSS_CC_CLK_CC_MND_MODE__SHIFT) & MMSS_CC_CLK_CC_MND_MODE__MASK;
71}
72#define MMSS_CC_CLK_CC_PMXO_SEL__MASK 0x00000300
73#define MMSS_CC_CLK_CC_PMXO_SEL__SHIFT 8
74static inline uint32_t MMSS_CC_CLK_CC_PMXO_SEL(uint32_t val)
75{
76 return ((val) << MMSS_CC_CLK_CC_PMXO_SEL__SHIFT) & MMSS_CC_CLK_CC_PMXO_SEL__MASK;
77}
78
79static inline uint32_t REG_MMSS_CC_CLK_MD(enum mmss_cc_clk i0) { return 0x00000004 + __offset_CLK(i0); }
80#define MMSS_CC_CLK_MD_D__MASK 0x000000ff
81#define MMSS_CC_CLK_MD_D__SHIFT 0
82static inline uint32_t MMSS_CC_CLK_MD_D(uint32_t val)
83{
84 return ((val) << MMSS_CC_CLK_MD_D__SHIFT) & MMSS_CC_CLK_MD_D__MASK;
85}
86#define MMSS_CC_CLK_MD_M__MASK 0x0000ff00
87#define MMSS_CC_CLK_MD_M__SHIFT 8
88static inline uint32_t MMSS_CC_CLK_MD_M(uint32_t val)
89{
90 return ((val) << MMSS_CC_CLK_MD_M__SHIFT) & MMSS_CC_CLK_MD_M__MASK;
91}
92
93static inline uint32_t REG_MMSS_CC_CLK_NS(enum mmss_cc_clk i0) { return 0x00000008 + __offset_CLK(i0); }
94#define MMSS_CC_CLK_NS_SRC__MASK 0x0000000f
95#define MMSS_CC_CLK_NS_SRC__SHIFT 0
96static inline uint32_t MMSS_CC_CLK_NS_SRC(uint32_t val)
97{
98 return ((val) << MMSS_CC_CLK_NS_SRC__SHIFT) & MMSS_CC_CLK_NS_SRC__MASK;
99}
100#define MMSS_CC_CLK_NS_PRE_DIV_FUNC__MASK 0x00fff000
101#define MMSS_CC_CLK_NS_PRE_DIV_FUNC__SHIFT 12
102static inline uint32_t MMSS_CC_CLK_NS_PRE_DIV_FUNC(uint32_t val)
103{
104 return ((val) << MMSS_CC_CLK_NS_PRE_DIV_FUNC__SHIFT) & MMSS_CC_CLK_NS_PRE_DIV_FUNC__MASK;
105}
106#define MMSS_CC_CLK_NS_VAL__MASK 0xff000000
107#define MMSS_CC_CLK_NS_VAL__SHIFT 24
108static inline uint32_t MMSS_CC_CLK_NS_VAL(uint32_t val)
109{
110 return ((val) << MMSS_CC_CLK_NS_VAL__SHIFT) & MMSS_CC_CLK_NS_VAL__MASK;
111}
112
113
114#endif /* MMSS_CC_XML */
diff --git a/drivers/gpu/drm/msm/dsi/sfpb.xml.h b/drivers/gpu/drm/msm/dsi/sfpb.xml.h
new file mode 100644
index 000000000000..a225e8170b2a
--- /dev/null
+++ b/drivers/gpu/drm/msm/dsi/sfpb.xml.h
@@ -0,0 +1,48 @@
1#ifndef SFPB_XML
2#define SFPB_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The rules-ng-ng source files this header was generated from are:
11- /home/robclark/src/freedreno/envytools/rnndb/msm.xml ( 595 bytes, from 2013-07-05 19:21:12)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/mdp4/mdp4.xml ( 19332 bytes, from 2013-08-16 22:16:36)
14- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml ( 11712 bytes, from 2013-08-17 17:13:43)
15- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml ( 344 bytes, from 2013-08-11 19:26:32)
16- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml ( 1544 bytes, from 2013-08-16 19:17:05)
17- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2013-07-05 19:21:12)
18- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml ( 19288 bytes, from 2013-08-11 18:14:15)
19
20Copyright (C) 2013 by the following authors:
21- Rob Clark <robdclark@gmail.com> (robclark)
22
23Permission is hereby granted, free of charge, to any person obtaining
24a copy of this software and associated documentation files (the
25"Software"), to deal in the Software without restriction, including
26without limitation the rights to use, copy, modify, merge, publish,
27distribute, sublicense, and/or sell copies of the Software, and to
28permit persons to whom the Software is furnished to do so, subject to
29the following conditions:
30
31The above copyright notice and this permission notice (including the
32next paragraph) shall be included in all copies or substantial
33portions of the Software.
34
35THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
39LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42*/
43
44
45#define REG_SFPB_CFG 0x00000058
46
47
48#endif /* SFPB_XML */
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.xml.h b/drivers/gpu/drm/msm/hdmi/hdmi.xml.h
new file mode 100644
index 000000000000..f5fa4865e059
--- /dev/null
+++ b/drivers/gpu/drm/msm/hdmi/hdmi.xml.h
@@ -0,0 +1,508 @@
1#ifndef HDMI_XML
2#define HDMI_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The rules-ng-ng source files this header was generated from are:
11- /home/robclark/src/freedreno/envytools/rnndb/msm.xml ( 595 bytes, from 2013-07-05 19:21:12)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/mdp4/mdp4.xml ( 19332 bytes, from 2013-08-16 22:16:36)
14- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml ( 11712 bytes, from 2013-08-17 17:13:43)
15- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml ( 344 bytes, from 2013-08-11 19:26:32)
16- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml ( 1544 bytes, from 2013-08-16 19:17:05)
17- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2013-07-05 19:21:12)
18- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml ( 19288 bytes, from 2013-08-11 18:14:15)
19
20Copyright (C) 2013 by the following authors:
21- Rob Clark <robdclark@gmail.com> (robclark)
22
23Permission is hereby granted, free of charge, to any person obtaining
24a copy of this software and associated documentation files (the
25"Software"), to deal in the Software without restriction, including
26without limitation the rights to use, copy, modify, merge, publish,
27distribute, sublicense, and/or sell copies of the Software, and to
28permit persons to whom the Software is furnished to do so, subject to
29the following conditions:
30
31The above copyright notice and this permission notice (including the
32next paragraph) shall be included in all copies or substantial
33portions of the Software.
34
35THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
39LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42*/
43
44
45enum hdmi_hdcp_key_state {
46 NO_KEYS = 0,
47 NOT_CHECKED = 1,
48 CHECKING = 2,
49 KEYS_VALID = 3,
50 AKSV_INVALID = 4,
51 CHECKSUM_MISMATCH = 5,
52};
53
54enum hdmi_ddc_read_write {
55 DDC_WRITE = 0,
56 DDC_READ = 1,
57};
58
59enum hdmi_acr_cts {
60 ACR_NONE = 0,
61 ACR_32 = 1,
62 ACR_44 = 2,
63 ACR_48 = 3,
64};
65
66#define REG_HDMI_CTRL 0x00000000
67#define HDMI_CTRL_ENABLE 0x00000001
68#define HDMI_CTRL_HDMI 0x00000002
69#define HDMI_CTRL_ENCRYPTED 0x00000004
70
71#define REG_HDMI_AUDIO_PKT_CTRL1 0x00000020
72#define HDMI_AUDIO_PKT_CTRL1_AUDIO_SAMPLE_SEND 0x00000001
73
74#define REG_HDMI_ACR_PKT_CTRL 0x00000024
75#define HDMI_ACR_PKT_CTRL_CONT 0x00000001
76#define HDMI_ACR_PKT_CTRL_SEND 0x00000002
77#define HDMI_ACR_PKT_CTRL_SELECT__MASK 0x00000030
78#define HDMI_ACR_PKT_CTRL_SELECT__SHIFT 4
79static inline uint32_t HDMI_ACR_PKT_CTRL_SELECT(enum hdmi_acr_cts val)
80{
81 return ((val) << HDMI_ACR_PKT_CTRL_SELECT__SHIFT) & HDMI_ACR_PKT_CTRL_SELECT__MASK;
82}
83#define HDMI_ACR_PKT_CTRL_SOURCE 0x00000100
84#define HDMI_ACR_PKT_CTRL_N_MULTIPLIER__MASK 0x00070000
85#define HDMI_ACR_PKT_CTRL_N_MULTIPLIER__SHIFT 16
86static inline uint32_t HDMI_ACR_PKT_CTRL_N_MULTIPLIER(uint32_t val)
87{
88 return ((val) << HDMI_ACR_PKT_CTRL_N_MULTIPLIER__SHIFT) & HDMI_ACR_PKT_CTRL_N_MULTIPLIER__MASK;
89}
90#define HDMI_ACR_PKT_CTRL_AUDIO_PRIORITY 0x80000000
91
92#define REG_HDMI_VBI_PKT_CTRL 0x00000028
93#define HDMI_VBI_PKT_CTRL_GC_ENABLE 0x00000010
94#define HDMI_VBI_PKT_CTRL_GC_EVERY_FRAME 0x00000020
95#define HDMI_VBI_PKT_CTRL_ISRC_SEND 0x00000100
96#define HDMI_VBI_PKT_CTRL_ISRC_CONTINUOUS 0x00000200
97#define HDMI_VBI_PKT_CTRL_ACP_SEND 0x00001000
98#define HDMI_VBI_PKT_CTRL_ACP_SRC_SW 0x00002000
99
100#define REG_HDMI_INFOFRAME_CTRL0 0x0000002c
101#define HDMI_INFOFRAME_CTRL0_AVI_SEND 0x00000001
102#define HDMI_INFOFRAME_CTRL0_AVI_CONT 0x00000002
103#define HDMI_INFOFRAME_CTRL0_AUDIO_INFO_SEND 0x00000010
104#define HDMI_INFOFRAME_CTRL0_AUDIO_INFO_CONT 0x00000020
105#define HDMI_INFOFRAME_CTRL0_AUDIO_INFO_SOURCE 0x00000040
106#define HDMI_INFOFRAME_CTRL0_AUDIO_INFO_UPDATE 0x00000080
107
108#define REG_HDMI_GEN_PKT_CTRL 0x00000034
109#define HDMI_GEN_PKT_CTRL_GENERIC0_SEND 0x00000001
110#define HDMI_GEN_PKT_CTRL_GENERIC0_CONT 0x00000002
111#define HDMI_GEN_PKT_CTRL_GENERIC0_UPDATE__MASK 0x0000000c
112#define HDMI_GEN_PKT_CTRL_GENERIC0_UPDATE__SHIFT 2
113static inline uint32_t HDMI_GEN_PKT_CTRL_GENERIC0_UPDATE(uint32_t val)
114{
115 return ((val) << HDMI_GEN_PKT_CTRL_GENERIC0_UPDATE__SHIFT) & HDMI_GEN_PKT_CTRL_GENERIC0_UPDATE__MASK;
116}
117#define HDMI_GEN_PKT_CTRL_GENERIC1_SEND 0x00000010
118#define HDMI_GEN_PKT_CTRL_GENERIC1_CONT 0x00000020
119#define HDMI_GEN_PKT_CTRL_GENERIC0_LINE__MASK 0x003f0000
120#define HDMI_GEN_PKT_CTRL_GENERIC0_LINE__SHIFT 16
121static inline uint32_t HDMI_GEN_PKT_CTRL_GENERIC0_LINE(uint32_t val)
122{
123 return ((val) << HDMI_GEN_PKT_CTRL_GENERIC0_LINE__SHIFT) & HDMI_GEN_PKT_CTRL_GENERIC0_LINE__MASK;
124}
125#define HDMI_GEN_PKT_CTRL_GENERIC1_LINE__MASK 0x3f000000
126#define HDMI_GEN_PKT_CTRL_GENERIC1_LINE__SHIFT 24
127static inline uint32_t HDMI_GEN_PKT_CTRL_GENERIC1_LINE(uint32_t val)
128{
129 return ((val) << HDMI_GEN_PKT_CTRL_GENERIC1_LINE__SHIFT) & HDMI_GEN_PKT_CTRL_GENERIC1_LINE__MASK;
130}
131
132#define REG_HDMI_GC 0x00000040
133#define HDMI_GC_MUTE 0x00000001
134
135#define REG_HDMI_AUDIO_PKT_CTRL2 0x00000044
136#define HDMI_AUDIO_PKT_CTRL2_OVERRIDE 0x00000001
137#define HDMI_AUDIO_PKT_CTRL2_LAYOUT 0x00000002
138
139static inline uint32_t REG_HDMI_AVI_INFO(uint32_t i0) { return 0x0000006c + 0x4*i0; }
140
141#define REG_HDMI_GENERIC0_HDR 0x00000084
142
143static inline uint32_t REG_HDMI_GENERIC0(uint32_t i0) { return 0x00000088 + 0x4*i0; }
144
145#define REG_HDMI_GENERIC1_HDR 0x000000a4
146
147static inline uint32_t REG_HDMI_GENERIC1(uint32_t i0) { return 0x000000a8 + 0x4*i0; }
148
149static inline uint32_t REG_HDMI_ACR(uint32_t i0) { return 0x000000c4 + 0x8*i0; }
150
151static inline uint32_t REG_HDMI_ACR_0(uint32_t i0) { return 0x000000c4 + 0x8*i0; }
152#define HDMI_ACR_0_CTS__MASK 0xfffff000
153#define HDMI_ACR_0_CTS__SHIFT 12
154static inline uint32_t HDMI_ACR_0_CTS(uint32_t val)
155{
156 return ((val) << HDMI_ACR_0_CTS__SHIFT) & HDMI_ACR_0_CTS__MASK;
157}
158
159static inline uint32_t REG_HDMI_ACR_1(uint32_t i0) { return 0x000000c8 + 0x8*i0; }
160#define HDMI_ACR_1_N__MASK 0xffffffff
161#define HDMI_ACR_1_N__SHIFT 0
162static inline uint32_t HDMI_ACR_1_N(uint32_t val)
163{
164 return ((val) << HDMI_ACR_1_N__SHIFT) & HDMI_ACR_1_N__MASK;
165}
166
167#define REG_HDMI_AUDIO_INFO0 0x000000e4
168#define HDMI_AUDIO_INFO0_CHECKSUM__MASK 0x000000ff
169#define HDMI_AUDIO_INFO0_CHECKSUM__SHIFT 0
170static inline uint32_t HDMI_AUDIO_INFO0_CHECKSUM(uint32_t val)
171{
172 return ((val) << HDMI_AUDIO_INFO0_CHECKSUM__SHIFT) & HDMI_AUDIO_INFO0_CHECKSUM__MASK;
173}
174#define HDMI_AUDIO_INFO0_CC__MASK 0x00000700
175#define HDMI_AUDIO_INFO0_CC__SHIFT 8
176static inline uint32_t HDMI_AUDIO_INFO0_CC(uint32_t val)
177{
178 return ((val) << HDMI_AUDIO_INFO0_CC__SHIFT) & HDMI_AUDIO_INFO0_CC__MASK;
179}
180
181#define REG_HDMI_AUDIO_INFO1 0x000000e8
182#define HDMI_AUDIO_INFO1_CA__MASK 0x000000ff
183#define HDMI_AUDIO_INFO1_CA__SHIFT 0
184static inline uint32_t HDMI_AUDIO_INFO1_CA(uint32_t val)
185{
186 return ((val) << HDMI_AUDIO_INFO1_CA__SHIFT) & HDMI_AUDIO_INFO1_CA__MASK;
187}
188#define HDMI_AUDIO_INFO1_LSV__MASK 0x00007800
189#define HDMI_AUDIO_INFO1_LSV__SHIFT 11
190static inline uint32_t HDMI_AUDIO_INFO1_LSV(uint32_t val)
191{
192 return ((val) << HDMI_AUDIO_INFO1_LSV__SHIFT) & HDMI_AUDIO_INFO1_LSV__MASK;
193}
194#define HDMI_AUDIO_INFO1_DM_INH 0x00008000
195
196#define REG_HDMI_HDCP_CTRL 0x00000110
197#define HDMI_HDCP_CTRL_ENABLE 0x00000001
198#define HDMI_HDCP_CTRL_ENCRYPTION_ENABLE 0x00000100
199
200#define REG_HDMI_HDCP_INT_CTRL 0x00000118
201
202#define REG_HDMI_HDCP_LINK0_STATUS 0x0000011c
203#define HDMI_HDCP_LINK0_STATUS_AN_0_READY 0x00000100
204#define HDMI_HDCP_LINK0_STATUS_AN_1_READY 0x00000200
205#define HDMI_HDCP_LINK0_STATUS_KEY_STATE__MASK 0x70000000
206#define HDMI_HDCP_LINK0_STATUS_KEY_STATE__SHIFT 28
207static inline uint32_t HDMI_HDCP_LINK0_STATUS_KEY_STATE(enum hdmi_hdcp_key_state val)
208{
209 return ((val) << HDMI_HDCP_LINK0_STATUS_KEY_STATE__SHIFT) & HDMI_HDCP_LINK0_STATUS_KEY_STATE__MASK;
210}
211
212#define REG_HDMI_HDCP_RESET 0x00000130
213#define HDMI_HDCP_RESET_LINK0_DEAUTHENTICATE 0x00000001
214
215#define REG_HDMI_AUDIO_CFG 0x000001d0
216#define HDMI_AUDIO_CFG_ENGINE_ENABLE 0x00000001
217#define HDMI_AUDIO_CFG_FIFO_WATERMARK__MASK 0x000000f0
218#define HDMI_AUDIO_CFG_FIFO_WATERMARK__SHIFT 4
219static inline uint32_t HDMI_AUDIO_CFG_FIFO_WATERMARK(uint32_t val)
220{
221 return ((val) << HDMI_AUDIO_CFG_FIFO_WATERMARK__SHIFT) & HDMI_AUDIO_CFG_FIFO_WATERMARK__MASK;
222}
223
224#define REG_HDMI_USEC_REFTIMER 0x00000208
225
226#define REG_HDMI_DDC_CTRL 0x0000020c
227#define HDMI_DDC_CTRL_GO 0x00000001
228#define HDMI_DDC_CTRL_SOFT_RESET 0x00000002
229#define HDMI_DDC_CTRL_SEND_RESET 0x00000004
230#define HDMI_DDC_CTRL_SW_STATUS_RESET 0x00000008
231#define HDMI_DDC_CTRL_TRANSACTION_CNT__MASK 0x00300000
232#define HDMI_DDC_CTRL_TRANSACTION_CNT__SHIFT 20
233static inline uint32_t HDMI_DDC_CTRL_TRANSACTION_CNT(uint32_t val)
234{
235 return ((val) << HDMI_DDC_CTRL_TRANSACTION_CNT__SHIFT) & HDMI_DDC_CTRL_TRANSACTION_CNT__MASK;
236}
237
238#define REG_HDMI_DDC_INT_CTRL 0x00000214
239#define HDMI_DDC_INT_CTRL_SW_DONE_INT 0x00000001
240#define HDMI_DDC_INT_CTRL_SW_DONE_ACK 0x00000002
241#define HDMI_DDC_INT_CTRL_SW_DONE_MASK 0x00000004
242
243#define REG_HDMI_DDC_SW_STATUS 0x00000218
244#define HDMI_DDC_SW_STATUS_NACK0 0x00001000
245#define HDMI_DDC_SW_STATUS_NACK1 0x00002000
246#define HDMI_DDC_SW_STATUS_NACK2 0x00004000
247#define HDMI_DDC_SW_STATUS_NACK3 0x00008000
248
249#define REG_HDMI_DDC_HW_STATUS 0x0000021c
250
251#define REG_HDMI_DDC_SPEED 0x00000220
252#define HDMI_DDC_SPEED_THRESHOLD__MASK 0x00000003
253#define HDMI_DDC_SPEED_THRESHOLD__SHIFT 0
254static inline uint32_t HDMI_DDC_SPEED_THRESHOLD(uint32_t val)
255{
256 return ((val) << HDMI_DDC_SPEED_THRESHOLD__SHIFT) & HDMI_DDC_SPEED_THRESHOLD__MASK;
257}
258#define HDMI_DDC_SPEED_PRESCALE__MASK 0xffff0000
259#define HDMI_DDC_SPEED_PRESCALE__SHIFT 16
260static inline uint32_t HDMI_DDC_SPEED_PRESCALE(uint32_t val)
261{
262 return ((val) << HDMI_DDC_SPEED_PRESCALE__SHIFT) & HDMI_DDC_SPEED_PRESCALE__MASK;
263}
264
265#define REG_HDMI_DDC_SETUP 0x00000224
266#define HDMI_DDC_SETUP_TIMEOUT__MASK 0xff000000
267#define HDMI_DDC_SETUP_TIMEOUT__SHIFT 24
268static inline uint32_t HDMI_DDC_SETUP_TIMEOUT(uint32_t val)
269{
270 return ((val) << HDMI_DDC_SETUP_TIMEOUT__SHIFT) & HDMI_DDC_SETUP_TIMEOUT__MASK;
271}
272
273static inline uint32_t REG_HDMI_I2C_TRANSACTION(uint32_t i0) { return 0x00000228 + 0x4*i0; }
274
275static inline uint32_t REG_HDMI_I2C_TRANSACTION_REG(uint32_t i0) { return 0x00000228 + 0x4*i0; }
276#define HDMI_I2C_TRANSACTION_REG_RW__MASK 0x00000001
277#define HDMI_I2C_TRANSACTION_REG_RW__SHIFT 0
278static inline uint32_t HDMI_I2C_TRANSACTION_REG_RW(enum hdmi_ddc_read_write val)
279{
280 return ((val) << HDMI_I2C_TRANSACTION_REG_RW__SHIFT) & HDMI_I2C_TRANSACTION_REG_RW__MASK;
281}
282#define HDMI_I2C_TRANSACTION_REG_STOP_ON_NACK 0x00000100
283#define HDMI_I2C_TRANSACTION_REG_START 0x00001000
284#define HDMI_I2C_TRANSACTION_REG_STOP 0x00002000
285#define HDMI_I2C_TRANSACTION_REG_CNT__MASK 0x00ff0000
286#define HDMI_I2C_TRANSACTION_REG_CNT__SHIFT 16
287static inline uint32_t HDMI_I2C_TRANSACTION_REG_CNT(uint32_t val)
288{
289 return ((val) << HDMI_I2C_TRANSACTION_REG_CNT__SHIFT) & HDMI_I2C_TRANSACTION_REG_CNT__MASK;
290}
291
292#define REG_HDMI_DDC_DATA 0x00000238
293#define HDMI_DDC_DATA_DATA_RW__MASK 0x00000001
294#define HDMI_DDC_DATA_DATA_RW__SHIFT 0
295static inline uint32_t HDMI_DDC_DATA_DATA_RW(enum hdmi_ddc_read_write val)
296{
297 return ((val) << HDMI_DDC_DATA_DATA_RW__SHIFT) & HDMI_DDC_DATA_DATA_RW__MASK;
298}
299#define HDMI_DDC_DATA_DATA__MASK 0x0000ff00
300#define HDMI_DDC_DATA_DATA__SHIFT 8
301static inline uint32_t HDMI_DDC_DATA_DATA(uint32_t val)
302{
303 return ((val) << HDMI_DDC_DATA_DATA__SHIFT) & HDMI_DDC_DATA_DATA__MASK;
304}
305#define HDMI_DDC_DATA_INDEX__MASK 0x00ff0000
306#define HDMI_DDC_DATA_INDEX__SHIFT 16
307static inline uint32_t HDMI_DDC_DATA_INDEX(uint32_t val)
308{
309 return ((val) << HDMI_DDC_DATA_INDEX__SHIFT) & HDMI_DDC_DATA_INDEX__MASK;
310}
311#define HDMI_DDC_DATA_INDEX_WRITE 0x80000000
312
313#define REG_HDMI_HPD_INT_STATUS 0x00000250
314#define HDMI_HPD_INT_STATUS_INT 0x00000001
315#define HDMI_HPD_INT_STATUS_CABLE_DETECTED 0x00000002
316
317#define REG_HDMI_HPD_INT_CTRL 0x00000254
318#define HDMI_HPD_INT_CTRL_INT_ACK 0x00000001
319#define HDMI_HPD_INT_CTRL_INT_CONNECT 0x00000002
320#define HDMI_HPD_INT_CTRL_INT_EN 0x00000004
321#define HDMI_HPD_INT_CTRL_RX_INT_ACK 0x00000010
322#define HDMI_HPD_INT_CTRL_RX_INT_EN 0x00000020
323#define HDMI_HPD_INT_CTRL_RCV_PLUGIN_DET_MASK 0x00000200
324
325#define REG_HDMI_HPD_CTRL 0x00000258
326#define HDMI_HPD_CTRL_TIMEOUT__MASK 0x00001fff
327#define HDMI_HPD_CTRL_TIMEOUT__SHIFT 0
328static inline uint32_t HDMI_HPD_CTRL_TIMEOUT(uint32_t val)
329{
330 return ((val) << HDMI_HPD_CTRL_TIMEOUT__SHIFT) & HDMI_HPD_CTRL_TIMEOUT__MASK;
331}
332#define HDMI_HPD_CTRL_ENABLE 0x10000000
333
334#define REG_HDMI_DDC_REF 0x0000027c
335#define HDMI_DDC_REF_REFTIMER_ENABLE 0x00010000
336#define HDMI_DDC_REF_REFTIMER__MASK 0x0000ffff
337#define HDMI_DDC_REF_REFTIMER__SHIFT 0
338static inline uint32_t HDMI_DDC_REF_REFTIMER(uint32_t val)
339{
340 return ((val) << HDMI_DDC_REF_REFTIMER__SHIFT) & HDMI_DDC_REF_REFTIMER__MASK;
341}
342
343#define REG_HDMI_ACTIVE_HSYNC 0x000002b4
344#define HDMI_ACTIVE_HSYNC_START__MASK 0x00000fff
345#define HDMI_ACTIVE_HSYNC_START__SHIFT 0
346static inline uint32_t HDMI_ACTIVE_HSYNC_START(uint32_t val)
347{
348 return ((val) << HDMI_ACTIVE_HSYNC_START__SHIFT) & HDMI_ACTIVE_HSYNC_START__MASK;
349}
350#define HDMI_ACTIVE_HSYNC_END__MASK 0x0fff0000
351#define HDMI_ACTIVE_HSYNC_END__SHIFT 16
352static inline uint32_t HDMI_ACTIVE_HSYNC_END(uint32_t val)
353{
354 return ((val) << HDMI_ACTIVE_HSYNC_END__SHIFT) & HDMI_ACTIVE_HSYNC_END__MASK;
355}
356
357#define REG_HDMI_ACTIVE_VSYNC 0x000002b8
358#define HDMI_ACTIVE_VSYNC_START__MASK 0x00000fff
359#define HDMI_ACTIVE_VSYNC_START__SHIFT 0
360static inline uint32_t HDMI_ACTIVE_VSYNC_START(uint32_t val)
361{
362 return ((val) << HDMI_ACTIVE_VSYNC_START__SHIFT) & HDMI_ACTIVE_VSYNC_START__MASK;
363}
364#define HDMI_ACTIVE_VSYNC_END__MASK 0x0fff0000
365#define HDMI_ACTIVE_VSYNC_END__SHIFT 16
366static inline uint32_t HDMI_ACTIVE_VSYNC_END(uint32_t val)
367{
368 return ((val) << HDMI_ACTIVE_VSYNC_END__SHIFT) & HDMI_ACTIVE_VSYNC_END__MASK;
369}
370
371#define REG_HDMI_VSYNC_ACTIVE_F2 0x000002bc
372#define HDMI_VSYNC_ACTIVE_F2_START__MASK 0x00000fff
373#define HDMI_VSYNC_ACTIVE_F2_START__SHIFT 0
374static inline uint32_t HDMI_VSYNC_ACTIVE_F2_START(uint32_t val)
375{
376 return ((val) << HDMI_VSYNC_ACTIVE_F2_START__SHIFT) & HDMI_VSYNC_ACTIVE_F2_START__MASK;
377}
378#define HDMI_VSYNC_ACTIVE_F2_END__MASK 0x0fff0000
379#define HDMI_VSYNC_ACTIVE_F2_END__SHIFT 16
380static inline uint32_t HDMI_VSYNC_ACTIVE_F2_END(uint32_t val)
381{
382 return ((val) << HDMI_VSYNC_ACTIVE_F2_END__SHIFT) & HDMI_VSYNC_ACTIVE_F2_END__MASK;
383}
384
385#define REG_HDMI_TOTAL 0x000002c0
386#define HDMI_TOTAL_H_TOTAL__MASK 0x00000fff
387#define HDMI_TOTAL_H_TOTAL__SHIFT 0
388static inline uint32_t HDMI_TOTAL_H_TOTAL(uint32_t val)
389{
390 return ((val) << HDMI_TOTAL_H_TOTAL__SHIFT) & HDMI_TOTAL_H_TOTAL__MASK;
391}
392#define HDMI_TOTAL_V_TOTAL__MASK 0x0fff0000
393#define HDMI_TOTAL_V_TOTAL__SHIFT 16
394static inline uint32_t HDMI_TOTAL_V_TOTAL(uint32_t val)
395{
396 return ((val) << HDMI_TOTAL_V_TOTAL__SHIFT) & HDMI_TOTAL_V_TOTAL__MASK;
397}
398
399#define REG_HDMI_VSYNC_TOTAL_F2 0x000002c4
400#define HDMI_VSYNC_TOTAL_F2_V_TOTAL__MASK 0x00000fff
401#define HDMI_VSYNC_TOTAL_F2_V_TOTAL__SHIFT 0
402static inline uint32_t HDMI_VSYNC_TOTAL_F2_V_TOTAL(uint32_t val)
403{
404 return ((val) << HDMI_VSYNC_TOTAL_F2_V_TOTAL__SHIFT) & HDMI_VSYNC_TOTAL_F2_V_TOTAL__MASK;
405}
406
407#define REG_HDMI_FRAME_CTRL 0x000002c8
408#define HDMI_FRAME_CTRL_RGB_MUX_SEL_BGR 0x00001000
409#define HDMI_FRAME_CTRL_VSYNC_LOW 0x10000000
410#define HDMI_FRAME_CTRL_HSYNC_LOW 0x20000000
411#define HDMI_FRAME_CTRL_INTERLACED_EN 0x80000000
412
413#define REG_HDMI_PHY_CTRL 0x000002d4
414#define HDMI_PHY_CTRL_SW_RESET_PLL 0x00000001
415#define HDMI_PHY_CTRL_SW_RESET_PLL_LOW 0x00000002
416#define HDMI_PHY_CTRL_SW_RESET 0x00000004
417#define HDMI_PHY_CTRL_SW_RESET_LOW 0x00000008
418
419#define REG_HDMI_AUD_INT 0x000002cc
420#define HDMI_AUD_INT_AUD_FIFO_URUN_INT 0x00000001
421#define HDMI_AUD_INT_AUD_FIFO_URAN_MASK 0x00000002
422#define HDMI_AUD_INT_AUD_SAM_DROP_INT 0x00000004
423#define HDMI_AUD_INT_AUD_SAM_DROP_MASK 0x00000008
424
425#define REG_HDMI_8x60_PHY_REG0 0x00000300
426#define HDMI_8x60_PHY_REG0_DESER_DEL_CTRL__MASK 0x0000001c
427#define HDMI_8x60_PHY_REG0_DESER_DEL_CTRL__SHIFT 2
428static inline uint32_t HDMI_8x60_PHY_REG0_DESER_DEL_CTRL(uint32_t val)
429{
430 return ((val) << HDMI_8x60_PHY_REG0_DESER_DEL_CTRL__SHIFT) & HDMI_8x60_PHY_REG0_DESER_DEL_CTRL__MASK;
431}
432
433#define REG_HDMI_8x60_PHY_REG1 0x00000304
434#define HDMI_8x60_PHY_REG1_DTEST_MUX_SEL__MASK 0x000000f0
435#define HDMI_8x60_PHY_REG1_DTEST_MUX_SEL__SHIFT 4
436static inline uint32_t HDMI_8x60_PHY_REG1_DTEST_MUX_SEL(uint32_t val)
437{
438 return ((val) << HDMI_8x60_PHY_REG1_DTEST_MUX_SEL__SHIFT) & HDMI_8x60_PHY_REG1_DTEST_MUX_SEL__MASK;
439}
440#define HDMI_8x60_PHY_REG1_OUTVOL_SWING_CTRL__MASK 0x0000000f
441#define HDMI_8x60_PHY_REG1_OUTVOL_SWING_CTRL__SHIFT 0
442static inline uint32_t HDMI_8x60_PHY_REG1_OUTVOL_SWING_CTRL(uint32_t val)
443{
444 return ((val) << HDMI_8x60_PHY_REG1_OUTVOL_SWING_CTRL__SHIFT) & HDMI_8x60_PHY_REG1_OUTVOL_SWING_CTRL__MASK;
445}
446
447#define REG_HDMI_8x60_PHY_REG2 0x00000308
448#define HDMI_8x60_PHY_REG2_PD_DESER 0x00000001
449#define HDMI_8x60_PHY_REG2_PD_DRIVE_1 0x00000002
450#define HDMI_8x60_PHY_REG2_PD_DRIVE_2 0x00000004
451#define HDMI_8x60_PHY_REG2_PD_DRIVE_3 0x00000008
452#define HDMI_8x60_PHY_REG2_PD_DRIVE_4 0x00000010
453#define HDMI_8x60_PHY_REG2_PD_PLL 0x00000020
454#define HDMI_8x60_PHY_REG2_PD_PWRGEN 0x00000040
455#define HDMI_8x60_PHY_REG2_RCV_SENSE_EN 0x00000080
456
457#define REG_HDMI_8x60_PHY_REG3 0x0000030c
458#define HDMI_8x60_PHY_REG3_PLL_ENABLE 0x00000001
459
460#define REG_HDMI_8x60_PHY_REG4 0x00000310
461
462#define REG_HDMI_8x60_PHY_REG5 0x00000314
463
464#define REG_HDMI_8x60_PHY_REG6 0x00000318
465
466#define REG_HDMI_8x60_PHY_REG7 0x0000031c
467
468#define REG_HDMI_8x60_PHY_REG8 0x00000320
469
470#define REG_HDMI_8x60_PHY_REG9 0x00000324
471
472#define REG_HDMI_8x60_PHY_REG10 0x00000328
473
474#define REG_HDMI_8x60_PHY_REG11 0x0000032c
475
476#define REG_HDMI_8x60_PHY_REG12 0x00000330
477#define HDMI_8x60_PHY_REG12_RETIMING_EN 0x00000001
478#define HDMI_8x60_PHY_REG12_PLL_LOCK_DETECT_EN 0x00000002
479#define HDMI_8x60_PHY_REG12_FORCE_LOCK 0x00000010
480
481#define REG_HDMI_8960_PHY_REG0 0x00000400
482
483#define REG_HDMI_8960_PHY_REG1 0x00000404
484
485#define REG_HDMI_8960_PHY_REG2 0x00000408
486
487#define REG_HDMI_8960_PHY_REG3 0x0000040c
488
489#define REG_HDMI_8960_PHY_REG4 0x00000410
490
491#define REG_HDMI_8960_PHY_REG5 0x00000414
492
493#define REG_HDMI_8960_PHY_REG6 0x00000418
494
495#define REG_HDMI_8960_PHY_REG7 0x0000041c
496
497#define REG_HDMI_8960_PHY_REG8 0x00000420
498
499#define REG_HDMI_8960_PHY_REG9 0x00000424
500
501#define REG_HDMI_8960_PHY_REG10 0x00000428
502
503#define REG_HDMI_8960_PHY_REG11 0x0000042c
504
505#define REG_HDMI_8960_PHY_REG12 0x00000430
506
507
508#endif /* HDMI_XML */
diff --git a/drivers/gpu/drm/msm/hdmi/qfprom.xml.h b/drivers/gpu/drm/msm/hdmi/qfprom.xml.h
new file mode 100644
index 000000000000..bee36363bcd0
--- /dev/null
+++ b/drivers/gpu/drm/msm/hdmi/qfprom.xml.h
@@ -0,0 +1,50 @@
1#ifndef QFPROM_XML
2#define QFPROM_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The rules-ng-ng source files this header was generated from are:
11- /home/robclark/src/freedreno/envytools/rnndb/msm.xml ( 595 bytes, from 2013-07-05 19:21:12)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/mdp4/mdp4.xml ( 19332 bytes, from 2013-08-16 22:16:36)
14- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml ( 11712 bytes, from 2013-08-17 17:13:43)
15- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml ( 344 bytes, from 2013-08-11 19:26:32)
16- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml ( 1544 bytes, from 2013-08-16 19:17:05)
17- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2013-07-05 19:21:12)
18- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml ( 19288 bytes, from 2013-08-11 18:14:15)
19
20Copyright (C) 2013 by the following authors:
21- Rob Clark <robdclark@gmail.com> (robclark)
22
23Permission is hereby granted, free of charge, to any person obtaining
24a copy of this software and associated documentation files (the
25"Software"), to deal in the Software without restriction, including
26without limitation the rights to use, copy, modify, merge, publish,
27distribute, sublicense, and/or sell copies of the Software, and to
28permit persons to whom the Software is furnished to do so, subject to
29the following conditions:
30
31The above copyright notice and this permission notice (including the
32next paragraph) shall be included in all copies or substantial
33portions of the Software.
34
35THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
39LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42*/
43
44
45#define REG_QFPROM_CONFIG_ROW0_LSB 0x00000238
46#define QFPROM_CONFIG_ROW0_LSB_HDMI_DISABLE 0x00200000
47#define QFPROM_CONFIG_ROW0_LSB_HDCP_DISABLE 0x00400000
48
49
50#endif /* QFPROM_XML */
diff --git a/drivers/gpu/drm/msm/mdp4/mdp4.xml.h b/drivers/gpu/drm/msm/mdp4/mdp4.xml.h
new file mode 100644
index 000000000000..bbeeebe2db55
--- /dev/null
+++ b/drivers/gpu/drm/msm/mdp4/mdp4.xml.h
@@ -0,0 +1,1061 @@
1#ifndef MDP4_XML
2#define MDP4_XML
3
4/* Autogenerated file, DO NOT EDIT manually!
5
6This file was generated by the rules-ng-ng headergen tool in this git repository:
7http://0x04.net/cgit/index.cgi/rules-ng-ng
8git clone git://0x04.net/rules-ng-ng
9
10The rules-ng-ng source files this header was generated from are:
11- /home/robclark/src/freedreno/envytools/rnndb/msm.xml ( 595 bytes, from 2013-07-05 19:21:12)
12- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1453 bytes, from 2013-03-31 16:51:27)
13- /home/robclark/src/freedreno/envytools/rnndb/mdp4/mdp4.xml ( 19332 bytes, from 2013-08-16 22:16:36)
14- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml ( 11712 bytes, from 2013-08-17 17:13:43)
15- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml ( 344 bytes, from 2013-08-11 19:26:32)
16- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml ( 1544 bytes, from 2013-08-16 19:17:05)
17- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml ( 600 bytes, from 2013-07-05 19:21:12)
18- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml ( 19288 bytes, from 2013-08-11 18:14:15)
19
20Copyright (C) 2013 by the following authors:
21- Rob Clark <robdclark@gmail.com> (robclark)
22
23Permission is hereby granted, free of charge, to any person obtaining
24a copy of this software and associated documentation files (the
25"Software"), to deal in the Software without restriction, including
26without limitation the rights to use, copy, modify, merge, publish,
27distribute, sublicense, and/or sell copies of the Software, and to
28permit persons to whom the Software is furnished to do so, subject to
29the following conditions:
30
31The above copyright notice and this permission notice (including the
32next paragraph) shall be included in all copies or substantial
33portions of the Software.
34
35THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
39LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42*/
43
44
45enum mpd4_bpc {
46 BPC1 = 0,
47 BPC5 = 1,
48 BPC6 = 2,
49 BPC8 = 3,
50};
51
52enum mpd4_bpc_alpha {
53 BPC1A = 0,
54 BPC4A = 1,
55 BPC6A = 2,
56 BPC8A = 3,
57};
58
59enum mpd4_alpha_type {
60 FG_CONST = 0,
61 BG_CONST = 1,
62 FG_PIXEL = 2,
63 BG_PIXEL = 3,
64};
65
66enum mpd4_pipe {
67 VG1 = 0,
68 VG2 = 1,
69 RGB1 = 2,
70 RGB2 = 3,
71 RGB3 = 4,
72 VG3 = 5,
73 VG4 = 6,
74};
75
76enum mpd4_mixer {
77 MIXER0 = 0,
78 MIXER1 = 1,
79 MIXER2 = 2,
80};
81
82enum mpd4_mixer_stage_id {
83 STAGE_UNUSED = 0,
84 STAGE_BASE = 1,
85 STAGE0 = 2,
86 STAGE1 = 3,
87 STAGE2 = 4,
88 STAGE3 = 5,
89};
90
91enum mdp4_intf {
92 INTF_LCDC_DTV = 0,
93 INTF_DSI_VIDEO = 1,
94 INTF_DSI_CMD = 2,
95 INTF_EBI2_TV = 3,
96};
97
98enum mdp4_cursor_format {
99 CURSOR_ARGB = 1,
100 CURSOR_XRGB = 2,
101};
102
103enum mdp4_dma {
104 DMA_P = 0,
105 DMA_S = 1,
106 DMA_E = 2,
107};
108
109#define MDP4_IRQ_OVERLAY0_DONE 0x00000001
110#define MDP4_IRQ_OVERLAY1_DONE 0x00000002
111#define MDP4_IRQ_DMA_S_DONE 0x00000004
112#define MDP4_IRQ_DMA_E_DONE 0x00000008
113#define MDP4_IRQ_DMA_P_DONE 0x00000010
114#define MDP4_IRQ_VG1_HISTOGRAM 0x00000020
115#define MDP4_IRQ_VG2_HISTOGRAM 0x00000040
116#define MDP4_IRQ_PRIMARY_VSYNC 0x00000080
117#define MDP4_IRQ_PRIMARY_INTF_UDERRUN 0x00000100
118#define MDP4_IRQ_EXTERNAL_VSYNC 0x00000200
119#define MDP4_IRQ_EXTERNAL_INTF_UDERRUN 0x00000400
120#define MDP4_IRQ_PRIMARY_RDPTR 0x00000800
121#define MDP4_IRQ_DMA_P_HISTOGRAM 0x00020000
122#define MDP4_IRQ_DMA_S_HISTOGRAM 0x04000000
123#define MDP4_IRQ_OVERLAY2_DONE 0x40000000
124#define REG_MDP4_VERSION 0x00000000
125#define MDP4_VERSION_MINOR__MASK 0x00ff0000
126#define MDP4_VERSION_MINOR__SHIFT 16
127static inline uint32_t MDP4_VERSION_MINOR(uint32_t val)
128{
129 return ((val) << MDP4_VERSION_MINOR__SHIFT) & MDP4_VERSION_MINOR__MASK;
130}
131#define MDP4_VERSION_MAJOR__MASK 0xff000000
132#define MDP4_VERSION_MAJOR__SHIFT 24
133static inline uint32_t MDP4_VERSION_MAJOR(uint32_t val)
134{
135 return ((val) << MDP4_VERSION_MAJOR__SHIFT) & MDP4_VERSION_MAJOR__MASK;
136}
137
138#define REG_MDP4_OVLP0_KICK 0x00000004
139
140#define REG_MDP4_OVLP1_KICK 0x00000008
141
142#define REG_MDP4_OVLP2_KICK 0x000000d0
143
144#define REG_MDP4_DMA_P_KICK 0x0000000c
145
146#define REG_MDP4_DMA_S_KICK 0x00000010
147
148#define REG_MDP4_DMA_E_KICK 0x00000014
149
150#define REG_MDP4_DISP_STATUS 0x00000018
151
152#define REG_MDP4_DISP_INTF_SEL 0x00000038
153#define MDP4_DISP_INTF_SEL_PRIM__MASK 0x00000003
154#define MDP4_DISP_INTF_SEL_PRIM__SHIFT 0
155static inline uint32_t MDP4_DISP_INTF_SEL_PRIM(enum mdp4_intf val)
156{
157 return ((val) << MDP4_DISP_INTF_SEL_PRIM__SHIFT) & MDP4_DISP_INTF_SEL_PRIM__MASK;
158}
159#define MDP4_DISP_INTF_SEL_SEC__MASK 0x0000000c
160#define MDP4_DISP_INTF_SEL_SEC__SHIFT 2
161static inline uint32_t MDP4_DISP_INTF_SEL_SEC(enum mdp4_intf val)
162{
163 return ((val) << MDP4_DISP_INTF_SEL_SEC__SHIFT) & MDP4_DISP_INTF_SEL_SEC__MASK;
164}
165#define MDP4_DISP_INTF_SEL_EXT__MASK 0x00000030
166#define MDP4_DISP_INTF_SEL_EXT__SHIFT 4
167static inline uint32_t MDP4_DISP_INTF_SEL_EXT(enum mdp4_intf val)
168{
169 return ((val) << MDP4_DISP_INTF_SEL_EXT__SHIFT) & MDP4_DISP_INTF_SEL_EXT__MASK;
170}
171#define MDP4_DISP_INTF_SEL_DSI_VIDEO 0x00000040
172#define MDP4_DISP_INTF_SEL_DSI_CMD 0x00000080
173
174#define REG_MDP4_RESET_STATUS 0x0000003c
175
176#define REG_MDP4_READ_CNFG 0x0000004c
177
178#define REG_MDP4_INTR_ENABLE 0x00000050
179
180#define REG_MDP4_INTR_STATUS 0x00000054
181
182#define REG_MDP4_INTR_CLEAR 0x00000058
183
184#define REG_MDP4_EBI2_LCD0 0x00000060
185
186#define REG_MDP4_EBI2_LCD1 0x00000064
187
188#define REG_MDP4_PORTMAP_MODE 0x00000070
189
190#define REG_MDP4_CS_CONTROLLER0 0x000000c0
191
192#define REG_MDP4_CS_CONTROLLER1 0x000000c4
193
194#define REG_MDP4_LAYERMIXER2_IN_CFG 0x000100f0
195#define MDP4_LAYERMIXER2_IN_CFG_PIPE0__MASK 0x00000007
196#define MDP4_LAYERMIXER2_IN_CFG_PIPE0__SHIFT 0
197static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE0(enum mpd4_mixer_stage_id val)
198{
199 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE0__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE0__MASK;
200}
201#define MDP4_LAYERMIXER2_IN_CFG_PIPE0_MIXER1 0x00000008
202#define MDP4_LAYERMIXER2_IN_CFG_PIPE1__MASK 0x00000070
203#define MDP4_LAYERMIXER2_IN_CFG_PIPE1__SHIFT 4
204static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE1(enum mpd4_mixer_stage_id val)
205{
206 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE1__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE1__MASK;
207}
208#define MDP4_LAYERMIXER2_IN_CFG_PIPE1_MIXER1 0x00000080
209#define MDP4_LAYERMIXER2_IN_CFG_PIPE2__MASK 0x00000700
210#define MDP4_LAYERMIXER2_IN_CFG_PIPE2__SHIFT 8
211static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE2(enum mpd4_mixer_stage_id val)
212{
213 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE2__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE2__MASK;
214}
215#define MDP4_LAYERMIXER2_IN_CFG_PIPE2_MIXER1 0x00000800
216#define MDP4_LAYERMIXER2_IN_CFG_PIPE3__MASK 0x00007000
217#define MDP4_LAYERMIXER2_IN_CFG_PIPE3__SHIFT 12
218static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE3(enum mpd4_mixer_stage_id val)
219{
220 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE3__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE3__MASK;
221}
222#define MDP4_LAYERMIXER2_IN_CFG_PIPE3_MIXER1 0x00008000
223#define MDP4_LAYERMIXER2_IN_CFG_PIPE4__MASK 0x00070000
224#define MDP4_LAYERMIXER2_IN_CFG_PIPE4__SHIFT 16
225static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE4(enum mpd4_mixer_stage_id val)
226{
227 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE4__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE4__MASK;
228}
229#define MDP4_LAYERMIXER2_IN_CFG_PIPE4_MIXER1 0x00080000
230#define MDP4_LAYERMIXER2_IN_CFG_PIPE5__MASK 0x00700000
231#define MDP4_LAYERMIXER2_IN_CFG_PIPE5__SHIFT 20
232static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE5(enum mpd4_mixer_stage_id val)
233{
234 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE5__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE5__MASK;
235}
236#define MDP4_LAYERMIXER2_IN_CFG_PIPE5_MIXER1 0x00800000
237#define MDP4_LAYERMIXER2_IN_CFG_PIPE6__MASK 0x07000000
238#define MDP4_LAYERMIXER2_IN_CFG_PIPE6__SHIFT 24
239static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE6(enum mpd4_mixer_stage_id val)
240{
241 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE6__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE6__MASK;
242}
243#define MDP4_LAYERMIXER2_IN_CFG_PIPE6_MIXER1 0x08000000
244#define MDP4_LAYERMIXER2_IN_CFG_PIPE7__MASK 0x70000000
245#define MDP4_LAYERMIXER2_IN_CFG_PIPE7__SHIFT 28
246static inline uint32_t MDP4_LAYERMIXER2_IN_CFG_PIPE7(enum mpd4_mixer_stage_id val)
247{
248 return ((val) << MDP4_LAYERMIXER2_IN_CFG_PIPE7__SHIFT) & MDP4_LAYERMIXER2_IN_CFG_PIPE7__MASK;
249}
250#define MDP4_LAYERMIXER2_IN_CFG_PIPE7_MIXER1 0x80000000
251
252#define REG_MDP4_LAYERMIXER_IN_CFG_UPDATE_METHOD 0x000100fc
253
254#define REG_MDP4_LAYERMIXER_IN_CFG 0x00010100
255#define MDP4_LAYERMIXER_IN_CFG_PIPE0__MASK 0x00000007
256#define MDP4_LAYERMIXER_IN_CFG_PIPE0__SHIFT 0
257static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE0(enum mpd4_mixer_stage_id val)
258{
259 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE0__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE0__MASK;
260}
261#define MDP4_LAYERMIXER_IN_CFG_PIPE0_MIXER1 0x00000008
262#define MDP4_LAYERMIXER_IN_CFG_PIPE1__MASK 0x00000070
263#define MDP4_LAYERMIXER_IN_CFG_PIPE1__SHIFT 4
264static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE1(enum mpd4_mixer_stage_id val)
265{
266 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE1__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE1__MASK;
267}
268#define MDP4_LAYERMIXER_IN_CFG_PIPE1_MIXER1 0x00000080
269#define MDP4_LAYERMIXER_IN_CFG_PIPE2__MASK 0x00000700
270#define MDP4_LAYERMIXER_IN_CFG_PIPE2__SHIFT 8
271static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE2(enum mpd4_mixer_stage_id val)
272{
273 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE2__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE2__MASK;
274}
275#define MDP4_LAYERMIXER_IN_CFG_PIPE2_MIXER1 0x00000800
276#define MDP4_LAYERMIXER_IN_CFG_PIPE3__MASK 0x00007000
277#define MDP4_LAYERMIXER_IN_CFG_PIPE3__SHIFT 12
278static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE3(enum mpd4_mixer_stage_id val)
279{
280 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE3__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE3__MASK;
281}
282#define MDP4_LAYERMIXER_IN_CFG_PIPE3_MIXER1 0x00008000
283#define MDP4_LAYERMIXER_IN_CFG_PIPE4__MASK 0x00070000
284#define MDP4_LAYERMIXER_IN_CFG_PIPE4__SHIFT 16
285static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE4(enum mpd4_mixer_stage_id val)
286{
287 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE4__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE4__MASK;
288}
289#define MDP4_LAYERMIXER_IN_CFG_PIPE4_MIXER1 0x00080000
290#define MDP4_LAYERMIXER_IN_CFG_PIPE5__MASK 0x00700000
291#define MDP4_LAYERMIXER_IN_CFG_PIPE5__SHIFT 20
292static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE5(enum mpd4_mixer_stage_id val)
293{
294 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE5__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE5__MASK;
295}
296#define MDP4_LAYERMIXER_IN_CFG_PIPE5_MIXER1 0x00800000
297#define MDP4_LAYERMIXER_IN_CFG_PIPE6__MASK 0x07000000
298#define MDP4_LAYERMIXER_IN_CFG_PIPE6__SHIFT 24
299static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE6(enum mpd4_mixer_stage_id val)
300{
301 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE6__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE6__MASK;
302}
303#define MDP4_LAYERMIXER_IN_CFG_PIPE6_MIXER1 0x08000000
304#define MDP4_LAYERMIXER_IN_CFG_PIPE7__MASK 0x70000000
305#define MDP4_LAYERMIXER_IN_CFG_PIPE7__SHIFT 28
306static inline uint32_t MDP4_LAYERMIXER_IN_CFG_PIPE7(enum mpd4_mixer_stage_id val)
307{
308 return ((val) << MDP4_LAYERMIXER_IN_CFG_PIPE7__SHIFT) & MDP4_LAYERMIXER_IN_CFG_PIPE7__MASK;
309}
310#define MDP4_LAYERMIXER_IN_CFG_PIPE7_MIXER1 0x80000000
311
312#define REG_MDP4_VG2_SRC_FORMAT 0x00030050
313
314#define REG_MDP4_VG2_CONST_COLOR 0x00031008
315
316#define REG_MDP4_OVERLAY_FLUSH 0x00018000
317#define MDP4_OVERLAY_FLUSH_OVLP0 0x00000001
318#define MDP4_OVERLAY_FLUSH_OVLP1 0x00000002
319#define MDP4_OVERLAY_FLUSH_VG1 0x00000004
320#define MDP4_OVERLAY_FLUSH_VG2 0x00000008
321#define MDP4_OVERLAY_FLUSH_RGB1 0x00000010
322#define MDP4_OVERLAY_FLUSH_RGB2 0x00000020
323
324static inline uint32_t __offset_OVLP(uint32_t idx)
325{
326 switch (idx) {
327 case 0: return 0x00010000;
328 case 1: return 0x00018000;
329 case 2: return 0x00088000;
330 default: return INVALID_IDX(idx);
331 }
332}
333static inline uint32_t REG_MDP4_OVLP(uint32_t i0) { return 0x00000000 + __offset_OVLP(i0); }
334
335static inline uint32_t REG_MDP4_OVLP_CFG(uint32_t i0) { return 0x00000004 + __offset_OVLP(i0); }
336
337static inline uint32_t REG_MDP4_OVLP_SIZE(uint32_t i0) { return 0x00000008 + __offset_OVLP(i0); }
338#define MDP4_OVLP_SIZE_HEIGHT__MASK 0xffff0000
339#define MDP4_OVLP_SIZE_HEIGHT__SHIFT 16
340static inline uint32_t MDP4_OVLP_SIZE_HEIGHT(uint32_t val)
341{
342 return ((val) << MDP4_OVLP_SIZE_HEIGHT__SHIFT) & MDP4_OVLP_SIZE_HEIGHT__MASK;
343}
344#define MDP4_OVLP_SIZE_WIDTH__MASK 0x0000ffff
345#define MDP4_OVLP_SIZE_WIDTH__SHIFT 0
346static inline uint32_t MDP4_OVLP_SIZE_WIDTH(uint32_t val)
347{
348 return ((val) << MDP4_OVLP_SIZE_WIDTH__SHIFT) & MDP4_OVLP_SIZE_WIDTH__MASK;
349}
350
351static inline uint32_t REG_MDP4_OVLP_BASE(uint32_t i0) { return 0x0000000c + __offset_OVLP(i0); }
352
353static inline uint32_t REG_MDP4_OVLP_STRIDE(uint32_t i0) { return 0x00000010 + __offset_OVLP(i0); }
354
355static inline uint32_t REG_MDP4_OVLP_OPMODE(uint32_t i0) { return 0x00000014 + __offset_OVLP(i0); }
356
357static inline uint32_t __offset_STAGE(uint32_t idx)
358{
359 switch (idx) {
360 case 0: return 0x00000104;
361 case 1: return 0x00000124;
362 case 2: return 0x00000144;
363 case 3: return 0x00000160;
364 default: return INVALID_IDX(idx);
365 }
366}
367static inline uint32_t REG_MDP4_OVLP_STAGE(uint32_t i0, uint32_t i1) { return 0x00000000 + __offset_OVLP(i0) + __offset_STAGE(i1); }
368
369static inline uint32_t REG_MDP4_OVLP_STAGE_OP(uint32_t i0, uint32_t i1) { return 0x00000000 + __offset_OVLP(i0) + __offset_STAGE(i1); }
370#define MDP4_OVLP_STAGE_OP_FG_ALPHA__MASK 0x00000003
371#define MDP4_OVLP_STAGE_OP_FG_ALPHA__SHIFT 0
372static inline uint32_t MDP4_OVLP_STAGE_OP_FG_ALPHA(enum mpd4_alpha_type val)
373{
374 return ((val) << MDP4_OVLP_STAGE_OP_FG_ALPHA__SHIFT) & MDP4_OVLP_STAGE_OP_FG_ALPHA__MASK;
375}
376#define MDP4_OVLP_STAGE_OP_FG_INV_ALPHA 0x00000004
377#define MDP4_OVLP_STAGE_OP_FG_MOD_ALPHA 0x00000008
378#define MDP4_OVLP_STAGE_OP_BG_ALPHA__MASK 0x00000030
379#define MDP4_OVLP_STAGE_OP_BG_ALPHA__SHIFT 4
380static inline uint32_t MDP4_OVLP_STAGE_OP_BG_ALPHA(enum mpd4_alpha_type val)
381{
382 return ((val) << MDP4_OVLP_STAGE_OP_BG_ALPHA__SHIFT) & MDP4_OVLP_STAGE_OP_BG_ALPHA__MASK;
383}
384#define MDP4_OVLP_STAGE_OP_BG_INV_ALPHA 0x00000040
385#define MDP4_OVLP_STAGE_OP_BG_MOD_ALPHA 0x00000080
386#define MDP4_OVLP_STAGE_OP_FG_TRANSP 0x00000100
387#define MDP4_OVLP_STAGE_OP_BG_TRANSP 0x00000200
388
389static inline uint32_t REG_MDP4_OVLP_STAGE_FG_ALPHA(uint32_t i0, uint32_t i1) { return 0x00000004 + __offset_OVLP(i0) + __offset_STAGE(i1); }
390
391static inline uint32_t REG_MDP4_OVLP_STAGE_BG_ALPHA(uint32_t i0, uint32_t i1) { return 0x00000008 + __offset_OVLP(i0) + __offset_STAGE(i1); }
392
393static inline uint32_t REG_MDP4_OVLP_STAGE_TRANSP_LOW0(uint32_t i0, uint32_t i1) { return 0x0000000c + __offset_OVLP(i0) + __offset_STAGE(i1); }
394
395static inline uint32_t REG_MDP4_OVLP_STAGE_TRANSP_LOW1(uint32_t i0, uint32_t i1) { return 0x00000010 + __offset_OVLP(i0) + __offset_STAGE(i1); }
396
397static inline uint32_t REG_MDP4_OVLP_STAGE_TRANSP_HIGH0(uint32_t i0, uint32_t i1) { return 0x00000014 + __offset_OVLP(i0) + __offset_STAGE(i1); }
398
399static inline uint32_t REG_MDP4_OVLP_STAGE_TRANSP_HIGH1(uint32_t i0, uint32_t i1) { return 0x00000018 + __offset_OVLP(i0) + __offset_STAGE(i1); }
400
401static inline uint32_t __offset_STAGE_CO3(uint32_t idx)
402{
403 switch (idx) {
404 case 0: return 0x00001004;
405 case 1: return 0x00001404;
406 case 2: return 0x00001804;
407 case 3: return 0x00001b84;
408 default: return INVALID_IDX(idx);
409 }
410}
411static inline uint32_t REG_MDP4_OVLP_STAGE_CO3(uint32_t i0, uint32_t i1) { return 0x00000000 + __offset_OVLP(i0) + __offset_STAGE_CO3(i1); }
412
413static inline uint32_t REG_MDP4_OVLP_STAGE_CO3_SEL(uint32_t i0, uint32_t i1) { return 0x00000000 + __offset_OVLP(i0) + __offset_STAGE_CO3(i1); }
414#define MDP4_OVLP_STAGE_CO3_SEL_FG_ALPHA 0x00000001
415
416static inline uint32_t REG_MDP4_OVLP_TRANSP_LOW0(uint32_t i0) { return 0x00000180 + __offset_OVLP(i0); }
417
418static inline uint32_t REG_MDP4_OVLP_TRANSP_LOW1(uint32_t i0) { return 0x00000184 + __offset_OVLP(i0); }
419
420static inline uint32_t REG_MDP4_OVLP_TRANSP_HIGH0(uint32_t i0) { return 0x00000188 + __offset_OVLP(i0); }
421
422static inline uint32_t REG_MDP4_OVLP_TRANSP_HIGH1(uint32_t i0) { return 0x0000018c + __offset_OVLP(i0); }
423
424static inline uint32_t REG_MDP4_OVLP_CSC_CONFIG(uint32_t i0) { return 0x00000200 + __offset_OVLP(i0); }
425
426static inline uint32_t REG_MDP4_OVLP_CSC(uint32_t i0) { return 0x00002000 + __offset_OVLP(i0); }
427
428
429static inline uint32_t REG_MDP4_OVLP_CSC_MV(uint32_t i0, uint32_t i1) { return 0x00002400 + __offset_OVLP(i0) + 0x4*i1; }
430
431static inline uint32_t REG_MDP4_OVLP_CSC_MV_VAL(uint32_t i0, uint32_t i1) { return 0x00002400 + __offset_OVLP(i0) + 0x4*i1; }
432
433static inline uint32_t REG_MDP4_OVLP_CSC_PRE_BV(uint32_t i0, uint32_t i1) { return 0x00002500 + __offset_OVLP(i0) + 0x4*i1; }
434
435static inline uint32_t REG_MDP4_OVLP_CSC_PRE_BV_VAL(uint32_t i0, uint32_t i1) { return 0x00002500 + __offset_OVLP(i0) + 0x4*i1; }
436
437static inline uint32_t REG_MDP4_OVLP_CSC_POST_BV(uint32_t i0, uint32_t i1) { return 0x00002580 + __offset_OVLP(i0) + 0x4*i1; }
438
439static inline uint32_t REG_MDP4_OVLP_CSC_POST_BV_VAL(uint32_t i0, uint32_t i1) { return 0x00002580 + __offset_OVLP(i0) + 0x4*i1; }
440
441static inline uint32_t REG_MDP4_OVLP_CSC_PRE_LV(uint32_t i0, uint32_t i1) { return 0x00002600 + __offset_OVLP(i0) + 0x4*i1; }
442
443static inline uint32_t REG_MDP4_OVLP_CSC_PRE_LV_VAL(uint32_t i0, uint32_t i1) { return 0x00002600 + __offset_OVLP(i0) + 0x4*i1; }
444
445static inline uint32_t REG_MDP4_OVLP_CSC_POST_LV(uint32_t i0, uint32_t i1) { return 0x00002680 + __offset_OVLP(i0) + 0x4*i1; }
446
447static inline uint32_t REG_MDP4_OVLP_CSC_POST_LV_VAL(uint32_t i0, uint32_t i1) { return 0x00002680 + __offset_OVLP(i0) + 0x4*i1; }
448
449#define REG_MDP4_DMA_P_OP_MODE 0x00090070
450
451static inline uint32_t REG_MDP4_LUTN(uint32_t i0) { return 0x00094800 + 0x400*i0; }
452
453static inline uint32_t REG_MDP4_LUTN_LUT(uint32_t i0, uint32_t i1) { return 0x00094800 + 0x400*i0 + 0x4*i1; }
454
455static inline uint32_t REG_MDP4_LUTN_LUT_VAL(uint32_t i0, uint32_t i1) { return 0x00094800 + 0x400*i0 + 0x4*i1; }
456
457#define REG_MDP4_DMA_S_OP_MODE 0x000a0028
458
459static inline uint32_t REG_MDP4_DMA_E_QUANT(uint32_t i0) { return 0x000b0070 + 0x4*i0; }
460
461static inline uint32_t __offset_DMA(enum mdp4_dma idx)
462{
463 switch (idx) {
464 case DMA_P: return 0x00090000;
465 case DMA_S: return 0x000a0000;
466 case DMA_E: return 0x000b0000;
467 default: return INVALID_IDX(idx);
468 }
469}
470static inline uint32_t REG_MDP4_DMA(enum mdp4_dma i0) { return 0x00000000 + __offset_DMA(i0); }
471
472static inline uint32_t REG_MDP4_DMA_CONFIG(enum mdp4_dma i0) { return 0x00000000 + __offset_DMA(i0); }
473#define MDP4_DMA_CONFIG_G_BPC__MASK 0x00000003
474#define MDP4_DMA_CONFIG_G_BPC__SHIFT 0
475static inline uint32_t MDP4_DMA_CONFIG_G_BPC(enum mpd4_bpc val)
476{
477 return ((val) << MDP4_DMA_CONFIG_G_BPC__SHIFT) & MDP4_DMA_CONFIG_G_BPC__MASK;
478}
479#define MDP4_DMA_CONFIG_B_BPC__MASK 0x0000000c
480#define MDP4_DMA_CONFIG_B_BPC__SHIFT 2
481static inline uint32_t MDP4_DMA_CONFIG_B_BPC(enum mpd4_bpc val)
482{
483 return ((val) << MDP4_DMA_CONFIG_B_BPC__SHIFT) & MDP4_DMA_CONFIG_B_BPC__MASK;
484}
485#define MDP4_DMA_CONFIG_R_BPC__MASK 0x00000030
486#define MDP4_DMA_CONFIG_R_BPC__SHIFT 4
487static inline uint32_t MDP4_DMA_CONFIG_R_BPC(enum mpd4_bpc val)
488{
489 return ((val) << MDP4_DMA_CONFIG_R_BPC__SHIFT) & MDP4_DMA_CONFIG_R_BPC__MASK;
490}
491#define MDP4_DMA_CONFIG_PACK_ALIGN_MSB 0x00000080
492#define MDP4_DMA_CONFIG_PACK__MASK 0x0000ff00
493#define MDP4_DMA_CONFIG_PACK__SHIFT 8
494static inline uint32_t MDP4_DMA_CONFIG_PACK(uint32_t val)
495{
496 return ((val) << MDP4_DMA_CONFIG_PACK__SHIFT) & MDP4_DMA_CONFIG_PACK__MASK;
497}
498#define MDP4_DMA_CONFIG_DEFLKR_EN 0x01000000
499#define MDP4_DMA_CONFIG_DITHER_EN 0x01000000
500
501static inline uint32_t REG_MDP4_DMA_SRC_SIZE(enum mdp4_dma i0) { return 0x00000004 + __offset_DMA(i0); }
502#define MDP4_DMA_SRC_SIZE_HEIGHT__MASK 0xffff0000
503#define MDP4_DMA_SRC_SIZE_HEIGHT__SHIFT 16
504static inline uint32_t MDP4_DMA_SRC_SIZE_HEIGHT(uint32_t val)
505{
506 return ((val) << MDP4_DMA_SRC_SIZE_HEIGHT__SHIFT) & MDP4_DMA_SRC_SIZE_HEIGHT__MASK;
507}
508#define MDP4_DMA_SRC_SIZE_WIDTH__MASK 0x0000ffff
509#define MDP4_DMA_SRC_SIZE_WIDTH__SHIFT 0
510static inline uint32_t MDP4_DMA_SRC_SIZE_WIDTH(uint32_t val)
511{
512 return ((val) << MDP4_DMA_SRC_SIZE_WIDTH__SHIFT) & MDP4_DMA_SRC_SIZE_WIDTH__MASK;
513}
514
515static inline uint32_t REG_MDP4_DMA_SRC_BASE(enum mdp4_dma i0) { return 0x00000008 + __offset_DMA(i0); }
516
517static inline uint32_t REG_MDP4_DMA_SRC_STRIDE(enum mdp4_dma i0) { return 0x0000000c + __offset_DMA(i0); }
518
519static inline uint32_t REG_MDP4_DMA_DST_SIZE(enum mdp4_dma i0) { return 0x00000010 + __offset_DMA(i0); }
520#define MDP4_DMA_DST_SIZE_HEIGHT__MASK 0xffff0000
521#define MDP4_DMA_DST_SIZE_HEIGHT__SHIFT 16
522static inline uint32_t MDP4_DMA_DST_SIZE_HEIGHT(uint32_t val)
523{
524 return ((val) << MDP4_DMA_DST_SIZE_HEIGHT__SHIFT) & MDP4_DMA_DST_SIZE_HEIGHT__MASK;
525}
526#define MDP4_DMA_DST_SIZE_WIDTH__MASK 0x0000ffff
527#define MDP4_DMA_DST_SIZE_WIDTH__SHIFT 0
528static inline uint32_t MDP4_DMA_DST_SIZE_WIDTH(uint32_t val)
529{
530 return ((val) << MDP4_DMA_DST_SIZE_WIDTH__SHIFT) & MDP4_DMA_DST_SIZE_WIDTH__MASK;
531}
532
533static inline uint32_t REG_MDP4_DMA_CURSOR_SIZE(enum mdp4_dma i0) { return 0x00000044 + __offset_DMA(i0); }
534#define MDP4_DMA_CURSOR_SIZE_WIDTH__MASK 0x0000007f
535#define MDP4_DMA_CURSOR_SIZE_WIDTH__SHIFT 0
536static inline uint32_t MDP4_DMA_CURSOR_SIZE_WIDTH(uint32_t val)
537{
538 return ((val) << MDP4_DMA_CURSOR_SIZE_WIDTH__SHIFT) & MDP4_DMA_CURSOR_SIZE_WIDTH__MASK;
539}
540#define MDP4_DMA_CURSOR_SIZE_HEIGHT__MASK 0x007f0000
541#define MDP4_DMA_CURSOR_SIZE_HEIGHT__SHIFT 16
542static inline uint32_t MDP4_DMA_CURSOR_SIZE_HEIGHT(uint32_t val)
543{
544 return ((val) << MDP4_DMA_CURSOR_SIZE_HEIGHT__SHIFT) & MDP4_DMA_CURSOR_SIZE_HEIGHT__MASK;
545}
546
547static inline uint32_t REG_MDP4_DMA_CURSOR_BASE(enum mdp4_dma i0) { return 0x00000048 + __offset_DMA(i0); }
548
549static inline uint32_t REG_MDP4_DMA_CURSOR_POS(enum mdp4_dma i0) { return 0x0000004c + __offset_DMA(i0); }
550#define MDP4_DMA_CURSOR_POS_X__MASK 0x0000ffff
551#define MDP4_DMA_CURSOR_POS_X__SHIFT 0
552static inline uint32_t MDP4_DMA_CURSOR_POS_X(uint32_t val)
553{
554 return ((val) << MDP4_DMA_CURSOR_POS_X__SHIFT) & MDP4_DMA_CURSOR_POS_X__MASK;
555}
556#define MDP4_DMA_CURSOR_POS_Y__MASK 0xffff0000
557#define MDP4_DMA_CURSOR_POS_Y__SHIFT 16
558static inline uint32_t MDP4_DMA_CURSOR_POS_Y(uint32_t val)
559{
560 return ((val) << MDP4_DMA_CURSOR_POS_Y__SHIFT) & MDP4_DMA_CURSOR_POS_Y__MASK;
561}
562
563static inline uint32_t REG_MDP4_DMA_CURSOR_BLEND_CONFIG(enum mdp4_dma i0) { return 0x00000060 + __offset_DMA(i0); }
564#define MDP4_DMA_CURSOR_BLEND_CONFIG_CURSOR_EN 0x00000001
565#define MDP4_DMA_CURSOR_BLEND_CONFIG_FORMAT__MASK 0x00000006
566#define MDP4_DMA_CURSOR_BLEND_CONFIG_FORMAT__SHIFT 1
567static inline uint32_t MDP4_DMA_CURSOR_BLEND_CONFIG_FORMAT(enum mdp4_cursor_format val)
568{
569 return ((val) << MDP4_DMA_CURSOR_BLEND_CONFIG_FORMAT__SHIFT) & MDP4_DMA_CURSOR_BLEND_CONFIG_FORMAT__MASK;
570}
571#define MDP4_DMA_CURSOR_BLEND_CONFIG_TRANSP_EN 0x00000008
572
573static inline uint32_t REG_MDP4_DMA_CURSOR_BLEND_PARAM(enum mdp4_dma i0) { return 0x00000064 + __offset_DMA(i0); }
574
575static inline uint32_t REG_MDP4_DMA_BLEND_TRANS_LOW(enum mdp4_dma i0) { return 0x00000068 + __offset_DMA(i0); }
576
577static inline uint32_t REG_MDP4_DMA_BLEND_TRANS_HIGH(enum mdp4_dma i0) { return 0x0000006c + __offset_DMA(i0); }
578
579static inline uint32_t REG_MDP4_DMA_FETCH_CONFIG(enum mdp4_dma i0) { return 0x00001004 + __offset_DMA(i0); }
580
581static inline uint32_t REG_MDP4_DMA_CSC(enum mdp4_dma i0) { return 0x00003000 + __offset_DMA(i0); }
582
583
584static inline uint32_t REG_MDP4_DMA_CSC_MV(enum mdp4_dma i0, uint32_t i1) { return 0x00003400 + __offset_DMA(i0) + 0x4*i1; }
585
586static inline uint32_t REG_MDP4_DMA_CSC_MV_VAL(enum mdp4_dma i0, uint32_t i1) { return 0x00003400 + __offset_DMA(i0) + 0x4*i1; }
587
588static inline uint32_t REG_MDP4_DMA_CSC_PRE_BV(enum mdp4_dma i0, uint32_t i1) { return 0x00003500 + __offset_DMA(i0) + 0x4*i1; }
589
590static inline uint32_t REG_MDP4_DMA_CSC_PRE_BV_VAL(enum mdp4_dma i0, uint32_t i1) { return 0x00003500 + __offset_DMA(i0) + 0x4*i1; }
591
592static inline uint32_t REG_MDP4_DMA_CSC_POST_BV(enum mdp4_dma i0, uint32_t i1) { return 0x00003580 + __offset_DMA(i0) + 0x4*i1; }
593
594static inline uint32_t REG_MDP4_DMA_CSC_POST_BV_VAL(enum mdp4_dma i0, uint32_t i1) { return 0x00003580 + __offset_DMA(i0) + 0x4*i1; }
595
596static inline uint32_t REG_MDP4_DMA_CSC_PRE_LV(enum mdp4_dma i0, uint32_t i1) { return 0x00003600 + __offset_DMA(i0) + 0x4*i1; }
597
598static inline uint32_t REG_MDP4_DMA_CSC_PRE_LV_VAL(enum mdp4_dma i0, uint32_t i1) { return 0x00003600 + __offset_DMA(i0) + 0x4*i1; }
599
600static inline uint32_t REG_MDP4_DMA_CSC_POST_LV(enum mdp4_dma i0, uint32_t i1) { return 0x00003680 + __offset_DMA(i0) + 0x4*i1; }
601
602static inline uint32_t REG_MDP4_DMA_CSC_POST_LV_VAL(enum mdp4_dma i0, uint32_t i1) { return 0x00003680 + __offset_DMA(i0) + 0x4*i1; }
603
604static inline uint32_t REG_MDP4_PIPE(enum mpd4_pipe i0) { return 0x00020000 + 0x10000*i0; }
605
606static inline uint32_t REG_MDP4_PIPE_SRC_SIZE(enum mpd4_pipe i0) { return 0x00020000 + 0x10000*i0; }
607#define MDP4_PIPE_SRC_SIZE_HEIGHT__MASK 0xffff0000
608#define MDP4_PIPE_SRC_SIZE_HEIGHT__SHIFT 16
609static inline uint32_t MDP4_PIPE_SRC_SIZE_HEIGHT(uint32_t val)
610{
611 return ((val) << MDP4_PIPE_SRC_SIZE_HEIGHT__SHIFT) & MDP4_PIPE_SRC_SIZE_HEIGHT__MASK;
612}
613#define MDP4_PIPE_SRC_SIZE_WIDTH__MASK 0x0000ffff
614#define MDP4_PIPE_SRC_SIZE_WIDTH__SHIFT 0
615static inline uint32_t MDP4_PIPE_SRC_SIZE_WIDTH(uint32_t val)
616{
617 return ((val) << MDP4_PIPE_SRC_SIZE_WIDTH__SHIFT) & MDP4_PIPE_SRC_SIZE_WIDTH__MASK;
618}
619
620static inline uint32_t REG_MDP4_PIPE_SRC_XY(enum mpd4_pipe i0) { return 0x00020004 + 0x10000*i0; }
621#define MDP4_PIPE_SRC_XY_Y__MASK 0xffff0000
622#define MDP4_PIPE_SRC_XY_Y__SHIFT 16
623static inline uint32_t MDP4_PIPE_SRC_XY_Y(uint32_t val)
624{
625 return ((val) << MDP4_PIPE_SRC_XY_Y__SHIFT) & MDP4_PIPE_SRC_XY_Y__MASK;
626}
627#define MDP4_PIPE_SRC_XY_X__MASK 0x0000ffff
628#define MDP4_PIPE_SRC_XY_X__SHIFT 0
629static inline uint32_t MDP4_PIPE_SRC_XY_X(uint32_t val)
630{
631 return ((val) << MDP4_PIPE_SRC_XY_X__SHIFT) & MDP4_PIPE_SRC_XY_X__MASK;
632}
633
634static inline uint32_t REG_MDP4_PIPE_DST_SIZE(enum mpd4_pipe i0) { return 0x00020008 + 0x10000*i0; }
635#define MDP4_PIPE_DST_SIZE_HEIGHT__MASK 0xffff0000
636#define MDP4_PIPE_DST_SIZE_HEIGHT__SHIFT 16
637static inline uint32_t MDP4_PIPE_DST_SIZE_HEIGHT(uint32_t val)
638{
639 return ((val) << MDP4_PIPE_DST_SIZE_HEIGHT__SHIFT) & MDP4_PIPE_DST_SIZE_HEIGHT__MASK;
640}
641#define MDP4_PIPE_DST_SIZE_WIDTH__MASK 0x0000ffff
642#define MDP4_PIPE_DST_SIZE_WIDTH__SHIFT 0
643static inline uint32_t MDP4_PIPE_DST_SIZE_WIDTH(uint32_t val)
644{
645 return ((val) << MDP4_PIPE_DST_SIZE_WIDTH__SHIFT) & MDP4_PIPE_DST_SIZE_WIDTH__MASK;
646}
647
648static inline uint32_t REG_MDP4_PIPE_DST_XY(enum mpd4_pipe i0) { return 0x0002000c + 0x10000*i0; }
649#define MDP4_PIPE_DST_XY_Y__MASK 0xffff0000
650#define MDP4_PIPE_DST_XY_Y__SHIFT 16
651static inline uint32_t MDP4_PIPE_DST_XY_Y(uint32_t val)
652{
653 return ((val) << MDP4_PIPE_DST_XY_Y__SHIFT) & MDP4_PIPE_DST_XY_Y__MASK;
654}
655#define MDP4_PIPE_DST_XY_X__MASK 0x0000ffff
656#define MDP4_PIPE_DST_XY_X__SHIFT 0
657static inline uint32_t MDP4_PIPE_DST_XY_X(uint32_t val)
658{
659 return ((val) << MDP4_PIPE_DST_XY_X__SHIFT) & MDP4_PIPE_DST_XY_X__MASK;
660}
661
662static inline uint32_t REG_MDP4_PIPE_SRCP0_BASE(enum mpd4_pipe i0) { return 0x00020010 + 0x10000*i0; }
663
664static inline uint32_t REG_MDP4_PIPE_SRCP1_BASE(enum mpd4_pipe i0) { return 0x00020014 + 0x10000*i0; }
665
666static inline uint32_t REG_MDP4_PIPE_SRCP2_BASE(enum mpd4_pipe i0) { return 0x00020018 + 0x10000*i0; }
667
668static inline uint32_t REG_MDP4_PIPE_SRC_STRIDE_A(enum mpd4_pipe i0) { return 0x00020040 + 0x10000*i0; }
669#define MDP4_PIPE_SRC_STRIDE_A_P0__MASK 0x0000ffff
670#define MDP4_PIPE_SRC_STRIDE_A_P0__SHIFT 0
671static inline uint32_t MDP4_PIPE_SRC_STRIDE_A_P0(uint32_t val)
672{
673 return ((val) << MDP4_PIPE_SRC_STRIDE_A_P0__SHIFT) & MDP4_PIPE_SRC_STRIDE_A_P0__MASK;
674}
675#define MDP4_PIPE_SRC_STRIDE_A_P1__MASK 0xffff0000
676#define MDP4_PIPE_SRC_STRIDE_A_P1__SHIFT 16
677static inline uint32_t MDP4_PIPE_SRC_STRIDE_A_P1(uint32_t val)
678{
679 return ((val) << MDP4_PIPE_SRC_STRIDE_A_P1__SHIFT) & MDP4_PIPE_SRC_STRIDE_A_P1__MASK;
680}
681
682static inline uint32_t REG_MDP4_PIPE_SRC_STRIDE_B(enum mpd4_pipe i0) { return 0x00020044 + 0x10000*i0; }
683#define MDP4_PIPE_SRC_STRIDE_B_P2__MASK 0x0000ffff
684#define MDP4_PIPE_SRC_STRIDE_B_P2__SHIFT 0
685static inline uint32_t MDP4_PIPE_SRC_STRIDE_B_P2(uint32_t val)
686{
687 return ((val) << MDP4_PIPE_SRC_STRIDE_B_P2__SHIFT) & MDP4_PIPE_SRC_STRIDE_B_P2__MASK;
688}
689#define MDP4_PIPE_SRC_STRIDE_B_P3__MASK 0xffff0000
690#define MDP4_PIPE_SRC_STRIDE_B_P3__SHIFT 16
691static inline uint32_t MDP4_PIPE_SRC_STRIDE_B_P3(uint32_t val)
692{
693 return ((val) << MDP4_PIPE_SRC_STRIDE_B_P3__SHIFT) & MDP4_PIPE_SRC_STRIDE_B_P3__MASK;
694}
695
696static inline uint32_t REG_MDP4_PIPE_FRAME_SIZE(enum mpd4_pipe i0) { return 0x00020048 + 0x10000*i0; }
697#define MDP4_PIPE_FRAME_SIZE_HEIGHT__MASK 0xffff0000
698#define MDP4_PIPE_FRAME_SIZE_HEIGHT__SHIFT 16
699static inline uint32_t MDP4_PIPE_FRAME_SIZE_HEIGHT(uint32_t val)
700{
701 return ((val) << MDP4_PIPE_FRAME_SIZE_HEIGHT__SHIFT) & MDP4_PIPE_FRAME_SIZE_HEIGHT__MASK;
702}
703#define MDP4_PIPE_FRAME_SIZE_WIDTH__MASK 0x0000ffff
704#define MDP4_PIPE_FRAME_SIZE_WIDTH__SHIFT 0
705static inline uint32_t MDP4_PIPE_FRAME_SIZE_WIDTH(uint32_t val)
706{
707 return ((val) << MDP4_PIPE_FRAME_SIZE_WIDTH__SHIFT) & MDP4_PIPE_FRAME_SIZE_WIDTH__MASK;
708}
709
710static inline uint32_t REG_MDP4_PIPE_SRC_FORMAT(enum mpd4_pipe i0) { return 0x00020050 + 0x10000*i0; }
711#define MDP4_PIPE_SRC_FORMAT_G_BPC__MASK 0x00000003
712#define MDP4_PIPE_SRC_FORMAT_G_BPC__SHIFT 0
713static inline uint32_t MDP4_PIPE_SRC_FORMAT_G_BPC(enum mpd4_bpc val)
714{
715 return ((val) << MDP4_PIPE_SRC_FORMAT_G_BPC__SHIFT) & MDP4_PIPE_SRC_FORMAT_G_BPC__MASK;
716}
717#define MDP4_PIPE_SRC_FORMAT_B_BPC__MASK 0x0000000c
718#define MDP4_PIPE_SRC_FORMAT_B_BPC__SHIFT 2
719static inline uint32_t MDP4_PIPE_SRC_FORMAT_B_BPC(enum mpd4_bpc val)
720{
721 return ((val) << MDP4_PIPE_SRC_FORMAT_B_BPC__SHIFT) & MDP4_PIPE_SRC_FORMAT_B_BPC__MASK;
722}
723#define MDP4_PIPE_SRC_FORMAT_R_BPC__MASK 0x00000030
724#define MDP4_PIPE_SRC_FORMAT_R_BPC__SHIFT 4
725static inline uint32_t MDP4_PIPE_SRC_FORMAT_R_BPC(enum mpd4_bpc val)
726{
727 return ((val) << MDP4_PIPE_SRC_FORMAT_R_BPC__SHIFT) & MDP4_PIPE_SRC_FORMAT_R_BPC__MASK;
728}
729#define MDP4_PIPE_SRC_FORMAT_A_BPC__MASK 0x000000c0
730#define MDP4_PIPE_SRC_FORMAT_A_BPC__SHIFT 6
731static inline uint32_t MDP4_PIPE_SRC_FORMAT_A_BPC(enum mpd4_bpc_alpha val)
732{
733 return ((val) << MDP4_PIPE_SRC_FORMAT_A_BPC__SHIFT) & MDP4_PIPE_SRC_FORMAT_A_BPC__MASK;
734}
735#define MDP4_PIPE_SRC_FORMAT_ALPHA_ENABLE 0x00000100
736#define MDP4_PIPE_SRC_FORMAT_CPP__MASK 0x00000600
737#define MDP4_PIPE_SRC_FORMAT_CPP__SHIFT 9
738static inline uint32_t MDP4_PIPE_SRC_FORMAT_CPP(uint32_t val)
739{
740 return ((val) << MDP4_PIPE_SRC_FORMAT_CPP__SHIFT) & MDP4_PIPE_SRC_FORMAT_CPP__MASK;
741}
742#define MDP4_PIPE_SRC_FORMAT_ROTATED_90 0x00001000
743#define MDP4_PIPE_SRC_FORMAT_UNPACK_COUNT__MASK 0x00006000
744#define MDP4_PIPE_SRC_FORMAT_UNPACK_COUNT__SHIFT 13
745static inline uint32_t MDP4_PIPE_SRC_FORMAT_UNPACK_COUNT(uint32_t val)
746{
747 return ((val) << MDP4_PIPE_SRC_FORMAT_UNPACK_COUNT__SHIFT) & MDP4_PIPE_SRC_FORMAT_UNPACK_COUNT__MASK;
748}
749#define MDP4_PIPE_SRC_FORMAT_UNPACK_TIGHT 0x00020000
750#define MDP4_PIPE_SRC_FORMAT_UNPACK_ALIGN_MSB 0x00040000
751#define MDP4_PIPE_SRC_FORMAT_SOLID_FILL 0x00400000
752
753static inline uint32_t REG_MDP4_PIPE_SRC_UNPACK(enum mpd4_pipe i0) { return 0x00020054 + 0x10000*i0; }
754#define MDP4_PIPE_SRC_UNPACK_ELEM0__MASK 0x000000ff
755#define MDP4_PIPE_SRC_UNPACK_ELEM0__SHIFT 0
756static inline uint32_t MDP4_PIPE_SRC_UNPACK_ELEM0(uint32_t val)
757{
758 return ((val) << MDP4_PIPE_SRC_UNPACK_ELEM0__SHIFT) & MDP4_PIPE_SRC_UNPACK_ELEM0__MASK;
759}
760#define MDP4_PIPE_SRC_UNPACK_ELEM1__MASK 0x0000ff00
761#define MDP4_PIPE_SRC_UNPACK_ELEM1__SHIFT 8
762static inline uint32_t MDP4_PIPE_SRC_UNPACK_ELEM1(uint32_t val)
763{
764 return ((val) << MDP4_PIPE_SRC_UNPACK_ELEM1__SHIFT) & MDP4_PIPE_SRC_UNPACK_ELEM1__MASK;
765}
766#define MDP4_PIPE_SRC_UNPACK_ELEM2__MASK 0x00ff0000
767#define MDP4_PIPE_SRC_UNPACK_ELEM2__SHIFT 16
768static inline uint32_t MDP4_PIPE_SRC_UNPACK_ELEM2(uint32_t val)
769{
770 return ((val) << MDP4_PIPE_SRC_UNPACK_ELEM2__SHIFT) & MDP4_PIPE_SRC_UNPACK_ELEM2__MASK;
771}
772#define MDP4_PIPE_SRC_UNPACK_ELEM3__MASK 0xff000000
773#define MDP4_PIPE_SRC_UNPACK_ELEM3__SHIFT 24
774static inline uint32_t MDP4_PIPE_SRC_UNPACK_ELEM3(uint32_t val)
775{
776 return ((val) << MDP4_PIPE_SRC_UNPACK_ELEM3__SHIFT) & MDP4_PIPE_SRC_UNPACK_ELEM3__MASK;
777}
778
779static inline uint32_t REG_MDP4_PIPE_OP_MODE(enum mpd4_pipe i0) { return 0x00020058 + 0x10000*i0; }
780#define MDP4_PIPE_OP_MODE_SCALEX_EN 0x00000001
781#define MDP4_PIPE_OP_MODE_SCALEY_EN 0x00000002
782#define MDP4_PIPE_OP_MODE_SRC_YCBCR 0x00000200
783#define MDP4_PIPE_OP_MODE_DST_YCBCR 0x00000400
784#define MDP4_PIPE_OP_MODE_CSC_EN 0x00000800
785#define MDP4_PIPE_OP_MODE_FLIP_LR 0x00002000
786#define MDP4_PIPE_OP_MODE_FLIP_UD 0x00004000
787#define MDP4_PIPE_OP_MODE_DITHER_EN 0x00008000
788#define MDP4_PIPE_OP_MODE_IGC_LUT_EN 0x00010000
789#define MDP4_PIPE_OP_MODE_DEINT_EN 0x00040000
790#define MDP4_PIPE_OP_MODE_DEINT_ODD_REF 0x00080000
791
792static inline uint32_t REG_MDP4_PIPE_PHASEX_STEP(enum mpd4_pipe i0) { return 0x0002005c + 0x10000*i0; }
793
794static inline uint32_t REG_MDP4_PIPE_PHASEY_STEP(enum mpd4_pipe i0) { return 0x00020060 + 0x10000*i0; }
795
796static inline uint32_t REG_MDP4_PIPE_FETCH_CONFIG(enum mpd4_pipe i0) { return 0x00021004 + 0x10000*i0; }
797
798static inline uint32_t REG_MDP4_PIPE_SOLID_COLOR(enum mpd4_pipe i0) { return 0x00021008 + 0x10000*i0; }
799
800static inline uint32_t REG_MDP4_PIPE_CSC(enum mpd4_pipe i0) { return 0x00024000 + 0x10000*i0; }
801
802
803static inline uint32_t REG_MDP4_PIPE_CSC_MV(enum mpd4_pipe i0, uint32_t i1) { return 0x00024400 + 0x10000*i0 + 0x4*i1; }
804
805static inline uint32_t REG_MDP4_PIPE_CSC_MV_VAL(enum mpd4_pipe i0, uint32_t i1) { return 0x00024400 + 0x10000*i0 + 0x4*i1; }
806
807static inline uint32_t REG_MDP4_PIPE_CSC_PRE_BV(enum mpd4_pipe i0, uint32_t i1) { return 0x00024500 + 0x10000*i0 + 0x4*i1; }
808
809static inline uint32_t REG_MDP4_PIPE_CSC_PRE_BV_VAL(enum mpd4_pipe i0, uint32_t i1) { return 0x00024500 + 0x10000*i0 + 0x4*i1; }
810
811static inline uint32_t REG_MDP4_PIPE_CSC_POST_BV(enum mpd4_pipe i0, uint32_t i1) { return 0x00024580 + 0x10000*i0 + 0x4*i1; }
812
813static inline uint32_t REG_MDP4_PIPE_CSC_POST_BV_VAL(enum mpd4_pipe i0, uint32_t i1) { return 0x00024580 + 0x10000*i0 + 0x4*i1; }
814
815static inline uint32_t REG_MDP4_PIPE_CSC_PRE_LV(enum mpd4_pipe i0, uint32_t i1) { return 0x00024600 + 0x10000*i0 + 0x4*i1; }
816
817static inline uint32_t REG_MDP4_PIPE_CSC_PRE_LV_VAL(enum mpd4_pipe i0, uint32_t i1) { return 0x00024600 + 0x10000*i0 + 0x4*i1; }
818
819static inline uint32_t REG_MDP4_PIPE_CSC_POST_LV(enum mpd4_pipe i0, uint32_t i1) { return 0x00024680 + 0x10000*i0 + 0x4*i1; }
820
821static inline uint32_t REG_MDP4_PIPE_CSC_POST_LV_VAL(enum mpd4_pipe i0, uint32_t i1) { return 0x00024680 + 0x10000*i0 + 0x4*i1; }
822
823#define REG_MDP4_LCDC 0x000c0000
824
825#define REG_MDP4_LCDC_ENABLE 0x000c0000
826
827#define REG_MDP4_LCDC_HSYNC_CTRL 0x000c0004
828#define MDP4_LCDC_HSYNC_CTRL_PULSEW__MASK 0x0000ffff
829#define MDP4_LCDC_HSYNC_CTRL_PULSEW__SHIFT 0
830static inline uint32_t MDP4_LCDC_HSYNC_CTRL_PULSEW(uint32_t val)
831{
832 return ((val) << MDP4_LCDC_HSYNC_CTRL_PULSEW__SHIFT) & MDP4_LCDC_HSYNC_CTRL_PULSEW__MASK;
833}
834#define MDP4_LCDC_HSYNC_CTRL_PERIOD__MASK 0xffff0000
835#define MDP4_LCDC_HSYNC_CTRL_PERIOD__SHIFT 16
836static inline uint32_t MDP4_LCDC_HSYNC_CTRL_PERIOD(uint32_t val)
837{
838 return ((val) << MDP4_LCDC_HSYNC_CTRL_PERIOD__SHIFT) & MDP4_LCDC_HSYNC_CTRL_PERIOD__MASK;
839}
840
841#define REG_MDP4_LCDC_VSYNC_PERIOD 0x000c0008
842
843#define REG_MDP4_LCDC_VSYNC_LEN 0x000c000c
844
845#define REG_MDP4_LCDC_DISPLAY_HCTRL 0x000c0010
846#define MDP4_LCDC_DISPLAY_HCTRL_START__MASK 0x0000ffff
847#define MDP4_LCDC_DISPLAY_HCTRL_START__SHIFT 0
848static inline uint32_t MDP4_LCDC_DISPLAY_HCTRL_START(uint32_t val)
849{
850 return ((val) << MDP4_LCDC_DISPLAY_HCTRL_START__SHIFT) & MDP4_LCDC_DISPLAY_HCTRL_START__MASK;
851}
852#define MDP4_LCDC_DISPLAY_HCTRL_END__MASK 0xffff0000
853#define MDP4_LCDC_DISPLAY_HCTRL_END__SHIFT 16
854static inline uint32_t MDP4_LCDC_DISPLAY_HCTRL_END(uint32_t val)
855{
856 return ((val) << MDP4_LCDC_DISPLAY_HCTRL_END__SHIFT) & MDP4_LCDC_DISPLAY_HCTRL_END__MASK;
857}
858
859#define REG_MDP4_LCDC_DISPLAY_VSTART 0x000c0014
860
861#define REG_MDP4_LCDC_DISPLAY_VEND 0x000c0018
862
863#define REG_MDP4_LCDC_ACTIVE_HCTL 0x000c001c
864#define MDP4_LCDC_ACTIVE_HCTL_START__MASK 0x00007fff
865#define MDP4_LCDC_ACTIVE_HCTL_START__SHIFT 0
866static inline uint32_t MDP4_LCDC_ACTIVE_HCTL_START(uint32_t val)
867{
868 return ((val) << MDP4_LCDC_ACTIVE_HCTL_START__SHIFT) & MDP4_LCDC_ACTIVE_HCTL_START__MASK;
869}
870#define MDP4_LCDC_ACTIVE_HCTL_END__MASK 0x7fff0000
871#define MDP4_LCDC_ACTIVE_HCTL_END__SHIFT 16
872static inline uint32_t MDP4_LCDC_ACTIVE_HCTL_END(uint32_t val)
873{
874 return ((val) << MDP4_LCDC_ACTIVE_HCTL_END__SHIFT) & MDP4_LCDC_ACTIVE_HCTL_END__MASK;
875}
876#define MDP4_LCDC_ACTIVE_HCTL_ACTIVE_START_X 0x80000000
877
878#define REG_MDP4_LCDC_ACTIVE_VSTART 0x000c0020
879
880#define REG_MDP4_LCDC_ACTIVE_VEND 0x000c0024
881
882#define REG_MDP4_LCDC_BORDER_CLR 0x000c0028
883
884#define REG_MDP4_LCDC_UNDERFLOW_CLR 0x000c002c
885#define MDP4_LCDC_UNDERFLOW_CLR_COLOR__MASK 0x00ffffff
886#define MDP4_LCDC_UNDERFLOW_CLR_COLOR__SHIFT 0
887static inline uint32_t MDP4_LCDC_UNDERFLOW_CLR_COLOR(uint32_t val)
888{
889 return ((val) << MDP4_LCDC_UNDERFLOW_CLR_COLOR__SHIFT) & MDP4_LCDC_UNDERFLOW_CLR_COLOR__MASK;
890}
891#define MDP4_LCDC_UNDERFLOW_CLR_ENABLE_RECOVERY 0x80000000
892
893#define REG_MDP4_LCDC_HSYNC_SKEW 0x000c0030
894
895#define REG_MDP4_LCDC_TEST_CNTL 0x000c0034
896
897#define REG_MDP4_LCDC_CTRL_POLARITY 0x000c0038
898#define MDP4_LCDC_CTRL_POLARITY_HSYNC_LOW 0x00000001
899#define MDP4_LCDC_CTRL_POLARITY_VSYNC_LOW 0x00000002
900#define MDP4_LCDC_CTRL_POLARITY_DATA_EN_LOW 0x00000004
901
902#define REG_MDP4_DTV 0x000d0000
903
904#define REG_MDP4_DTV_ENABLE 0x000d0000
905
906#define REG_MDP4_DTV_HSYNC_CTRL 0x000d0004
907#define MDP4_DTV_HSYNC_CTRL_PULSEW__MASK 0x0000ffff
908#define MDP4_DTV_HSYNC_CTRL_PULSEW__SHIFT 0
909static inline uint32_t MDP4_DTV_HSYNC_CTRL_PULSEW(uint32_t val)
910{
911 return ((val) << MDP4_DTV_HSYNC_CTRL_PULSEW__SHIFT) & MDP4_DTV_HSYNC_CTRL_PULSEW__MASK;
912}
913#define MDP4_DTV_HSYNC_CTRL_PERIOD__MASK 0xffff0000
914#define MDP4_DTV_HSYNC_CTRL_PERIOD__SHIFT 16
915static inline uint32_t MDP4_DTV_HSYNC_CTRL_PERIOD(uint32_t val)
916{
917 return ((val) << MDP4_DTV_HSYNC_CTRL_PERIOD__SHIFT) & MDP4_DTV_HSYNC_CTRL_PERIOD__MASK;
918}
919
920#define REG_MDP4_DTV_VSYNC_PERIOD 0x000d0008
921
922#define REG_MDP4_DTV_VSYNC_LEN 0x000d000c
923
924#define REG_MDP4_DTV_DISPLAY_HCTRL 0x000d0018
925#define MDP4_DTV_DISPLAY_HCTRL_START__MASK 0x0000ffff
926#define MDP4_DTV_DISPLAY_HCTRL_START__SHIFT 0
927static inline uint32_t MDP4_DTV_DISPLAY_HCTRL_START(uint32_t val)
928{
929 return ((val) << MDP4_DTV_DISPLAY_HCTRL_START__SHIFT) & MDP4_DTV_DISPLAY_HCTRL_START__MASK;
930}
931#define MDP4_DTV_DISPLAY_HCTRL_END__MASK 0xffff0000
932#define MDP4_DTV_DISPLAY_HCTRL_END__SHIFT 16
933static inline uint32_t MDP4_DTV_DISPLAY_HCTRL_END(uint32_t val)
934{
935 return ((val) << MDP4_DTV_DISPLAY_HCTRL_END__SHIFT) & MDP4_DTV_DISPLAY_HCTRL_END__MASK;
936}
937
938#define REG_MDP4_DTV_DISPLAY_VSTART 0x000d001c
939
940#define REG_MDP4_DTV_DISPLAY_VEND 0x000d0020
941
942#define REG_MDP4_DTV_ACTIVE_HCTL 0x000d002c
943#define MDP4_DTV_ACTIVE_HCTL_START__MASK 0x00007fff
944#define MDP4_DTV_ACTIVE_HCTL_START__SHIFT 0
945static inline uint32_t MDP4_DTV_ACTIVE_HCTL_START(uint32_t val)
946{
947 return ((val) << MDP4_DTV_ACTIVE_HCTL_START__SHIFT) & MDP4_DTV_ACTIVE_HCTL_START__MASK;
948}
949#define MDP4_DTV_ACTIVE_HCTL_END__MASK 0x7fff0000
950#define MDP4_DTV_ACTIVE_HCTL_END__SHIFT 16
951static inline uint32_t MDP4_DTV_ACTIVE_HCTL_END(uint32_t val)
952{
953 return ((val) << MDP4_DTV_ACTIVE_HCTL_END__SHIFT) & MDP4_DTV_ACTIVE_HCTL_END__MASK;
954}
955#define MDP4_DTV_ACTIVE_HCTL_ACTIVE_START_X 0x80000000
956
957#define REG_MDP4_DTV_ACTIVE_VSTART 0x000d0030
958
959#define REG_MDP4_DTV_ACTIVE_VEND 0x000d0038
960
961#define REG_MDP4_DTV_BORDER_CLR 0x000d0040
962
963#define REG_MDP4_DTV_UNDERFLOW_CLR 0x000d0044
964#define MDP4_DTV_UNDERFLOW_CLR_COLOR__MASK 0x00ffffff
965#define MDP4_DTV_UNDERFLOW_CLR_COLOR__SHIFT 0
966static inline uint32_t MDP4_DTV_UNDERFLOW_CLR_COLOR(uint32_t val)
967{
968 return ((val) << MDP4_DTV_UNDERFLOW_CLR_COLOR__SHIFT) & MDP4_DTV_UNDERFLOW_CLR_COLOR__MASK;
969}
970#define MDP4_DTV_UNDERFLOW_CLR_ENABLE_RECOVERY 0x80000000
971
972#define REG_MDP4_DTV_HSYNC_SKEW 0x000d0048
973
974#define REG_MDP4_DTV_TEST_CNTL 0x000d004c
975
976#define REG_MDP4_DTV_CTRL_POLARITY 0x000d0050
977#define MDP4_DTV_CTRL_POLARITY_HSYNC_LOW 0x00000001
978#define MDP4_DTV_CTRL_POLARITY_VSYNC_LOW 0x00000002
979#define MDP4_DTV_CTRL_POLARITY_DATA_EN_LOW 0x00000004
980
981#define REG_MDP4_DSI 0x000e0000
982
983#define REG_MDP4_DSI_ENABLE 0x000e0000
984
985#define REG_MDP4_DSI_HSYNC_CTRL 0x000e0004
986#define MDP4_DSI_HSYNC_CTRL_PULSEW__MASK 0x0000ffff
987#define MDP4_DSI_HSYNC_CTRL_PULSEW__SHIFT 0
988static inline uint32_t MDP4_DSI_HSYNC_CTRL_PULSEW(uint32_t val)
989{
990 return ((val) << MDP4_DSI_HSYNC_CTRL_PULSEW__SHIFT) & MDP4_DSI_HSYNC_CTRL_PULSEW__MASK;
991}
992#define MDP4_DSI_HSYNC_CTRL_PERIOD__MASK 0xffff0000
993#define MDP4_DSI_HSYNC_CTRL_PERIOD__SHIFT 16
994static inline uint32_t MDP4_DSI_HSYNC_CTRL_PERIOD(uint32_t val)
995{
996 return ((val) << MDP4_DSI_HSYNC_CTRL_PERIOD__SHIFT) & MDP4_DSI_HSYNC_CTRL_PERIOD__MASK;
997}
998
999#define REG_MDP4_DSI_VSYNC_PERIOD 0x000e0008
1000
1001#define REG_MDP4_DSI_VSYNC_LEN 0x000e000c
1002
1003#define REG_MDP4_DSI_DISPLAY_HCTRL 0x000e0010
1004#define MDP4_DSI_DISPLAY_HCTRL_START__MASK 0x0000ffff
1005#define MDP4_DSI_DISPLAY_HCTRL_START__SHIFT 0
1006static inline uint32_t MDP4_DSI_DISPLAY_HCTRL_START(uint32_t val)
1007{
1008 return ((val) << MDP4_DSI_DISPLAY_HCTRL_START__SHIFT) & MDP4_DSI_DISPLAY_HCTRL_START__MASK;
1009}
1010#define MDP4_DSI_DISPLAY_HCTRL_END__MASK 0xffff0000
1011#define MDP4_DSI_DISPLAY_HCTRL_END__SHIFT 16
1012static inline uint32_t MDP4_DSI_DISPLAY_HCTRL_END(uint32_t val)
1013{
1014 return ((val) << MDP4_DSI_DISPLAY_HCTRL_END__SHIFT) & MDP4_DSI_DISPLAY_HCTRL_END__MASK;
1015}
1016
1017#define REG_MDP4_DSI_DISPLAY_VSTART 0x000e0014
1018
1019#define REG_MDP4_DSI_DISPLAY_VEND 0x000e0018
1020
1021#define REG_MDP4_DSI_ACTIVE_HCTL 0x000e001c
1022#define MDP4_DSI_ACTIVE_HCTL_START__MASK 0x00007fff
1023#define MDP4_DSI_ACTIVE_HCTL_START__SHIFT 0
1024static inline uint32_t MDP4_DSI_ACTIVE_HCTL_START(uint32_t val)
1025{
1026 return ((val) << MDP4_DSI_ACTIVE_HCTL_START__SHIFT) & MDP4_DSI_ACTIVE_HCTL_START__MASK;
1027}
1028#define MDP4_DSI_ACTIVE_HCTL_END__MASK 0x7fff0000
1029#define MDP4_DSI_ACTIVE_HCTL_END__SHIFT 16
1030static inline uint32_t MDP4_DSI_ACTIVE_HCTL_END(uint32_t val)
1031{
1032 return ((val) << MDP4_DSI_ACTIVE_HCTL_END__SHIFT) & MDP4_DSI_ACTIVE_HCTL_END__MASK;
1033}
1034#define MDP4_DSI_ACTIVE_HCTL_ACTIVE_START_X 0x80000000
1035
1036#define REG_MDP4_DSI_ACTIVE_VSTART 0x000e0020
1037
1038#define REG_MDP4_DSI_ACTIVE_VEND 0x000e0024
1039
1040#define REG_MDP4_DSI_BORDER_CLR 0x000e0028
1041
1042#define REG_MDP4_DSI_UNDERFLOW_CLR 0x000e002c
1043#define MDP4_DSI_UNDERFLOW_CLR_COLOR__MASK 0x00ffffff
1044#define MDP4_DSI_UNDERFLOW_CLR_COLOR__SHIFT 0
1045static inline uint32_t MDP4_DSI_UNDERFLOW_CLR_COLOR(uint32_t val)
1046{
1047 return ((val) << MDP4_DSI_UNDERFLOW_CLR_COLOR__SHIFT) & MDP4_DSI_UNDERFLOW_CLR_COLOR__MASK;
1048}
1049#define MDP4_DSI_UNDERFLOW_CLR_ENABLE_RECOVERY 0x80000000
1050
1051#define REG_MDP4_DSI_HSYNC_SKEW 0x000e0030
1052
1053#define REG_MDP4_DSI_TEST_CNTL 0x000e0034
1054
1055#define REG_MDP4_DSI_CTRL_POLARITY 0x000e0038
1056#define MDP4_DSI_CTRL_POLARITY_HSYNC_LOW 0x00000001
1057#define MDP4_DSI_CTRL_POLARITY_VSYNC_LOW 0x00000002
1058#define MDP4_DSI_CTRL_POLARITY_DATA_EN_LOW 0x00000004
1059
1060
1061#endif /* MDP4_XML */