xref: /netbsd/sys/arch/hpcmips/tx/tx3912videoreg.h (revision bf9ec67e)
1 /*	$NetBSD: tx3912videoreg.h,v 1.5 2001/06/14 11:09:55 uch Exp $ */
2 
3 /*-
4  * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by UCHIYAMA Yasushi.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 3. All advertising materials mentioning features or use of this software
19  *    must display the following acknowledgement:
20  *        This product includes software developed by the NetBSD
21  *        Foundation, Inc. and its contributors.
22  * 4. Neither the name of The NetBSD Foundation nor the names of its
23  *    contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  * POSSIBILITY OF SUCH DAMAGE.
37  */
38 /*
39  *  TOSHIBA TMPR3912/05, Philips PR31700 Video module register
40  */
41 #define TX3912_VIDEOCTRL1_REG		0x28
42 #define TX3912_VIDEOCTRL2_REG		0x2c
43 #define TX3912_VIDEOCTRL3_REG		0x30
44 #define TX3912_VIDEOCTRL4_REG		0x34
45 #define TX3912_VIDEOCTRL5_REG		0x38
46 #define TX3912_VIDEOCTRL6_REG		0x3c
47 #define TX3912_VIDEOCTRL7_REG		0x40
48 #define TX3912_VIDEOCTRL8_REG		0x44
49 #define TX3912_VIDEOCTRL9_REG		0x48
50 #define TX3912_VIDEOCTRL10_REG		0x4c
51 #define TX3912_VIDEOCTRL11_REG		0x50
52 #define TX3912_VIDEOCTRL12_REG		0x54
53 #define TX3912_VIDEOCTRL13_REG		0x58
54 #define TX3912_VIDEOCTRL14_REG		0x5c
55 
56 #define TX3912_FRAMEBUFFER_ALIGNMENT	16
57 #define TX3912_FRAMEBUFFER_BOUNDARY	0x100000
58 #define TX3912_FRAMEBUFFER_MAX		(2048 * 1024 * 8)
59 
60 /*
61  *	Video Control 1 Register
62  */
63 /* R */
64 #define TX3912_VIDEOCTRL1_LINECNT_SHIFT 22
65 #define TX3912_VIDEOCTRL1_LINECNT_MASK	0x3ff
66 #define TX3912_VIDEOCTRL1_LINECNT(cr)					\
67 	(((cr) >> TX3912_VIDEOCTRL1_LINECNT_SHIFT) &			\
68 	TX3912_VIDEOCTRL1_LINECNT_MASK)
69 /* R/W */
70 #define TX3912_VIDEOCTRL1_LOADDLY	0x00200000
71 /* R/W */
72 /*
73  * CP Rate = 36.864MHz / (BAUDVAL * 2 + 2)
74  */
75 #define TX3912_VIDEOCTRL1_BAUDVAL_SHIFT 16
76 #define TX3912_VIDEOCTRL1_BAUDVAL_MASK	0x1f
77 #define TX3912_VIDEOCTRL1_BAUDVAL(cr)					\
78 	(((cr) >> TX3912_VIDEOCTRL1_BAUDVAL_SHIFT) &			\
79 	TX3912_VIDEOCTRL1_BAUDVAL_MASK)
80 #define TX3912_VIDEOCTRL1_BAUDVAL_SET(cr, val)				\
81 	((cr) | (((val) << TX3912_VIDEOCTRL1_BAUDVAL_SHIFT) &		\
82 	(TX3912_VIDEOCTRL1_BAUDVAL_MASK << TX3912_VIDEOCTRL1_BAUDVAL_SHIFT)))
83 
84 /* R/W */
85 #define TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT	9
86 #define TX3912_VIDEOCTRL1_VIDDONEVAL_MASK	0x7f
87 #define TX3912_VIDEOCTRL1_VIDDONEVAL(cr)				\
88 	(((cr) >> TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT) &			\
89 	TX3912_VIDEOCTRL1_VIDDONEVAL_MASK)
90 #define TX3912_VIDEOCTRL1_VIDDONEVAL_SET(cr, val)			\
91 	((cr) | (((val) << TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT) &	\
92 	(TX3912_VIDEOCTRL1_VIDDONEVAL_MASK << TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT)))
93 /* R/W */
94 #define TX3912_VIDEOCTRL1_ENFREEZEFRAME	0x00000100
95 /* R/W */
96 #define TX3912_VIDEOCTRL1_BITSEL_SHIFT	6
97 #define TX3912_VIDEOCTRL1_BITSEL_MASK	0x3
98 #define TX3912_VIDEOCTRL1_BITSEL(cr)					\
99 	(((cr) >> TX3912_VIDEOCTRL1_BITSEL_SHIFT) &			\
100 	TX3912_VIDEOCTRL1_BITSEL_MASK)
101 #define TX3912_VIDEOCTRL1_BITSEL_CLR(cr)				\
102 	((cr) &= ~(TX3912_VIDEOCTRL1_BITSEL_MASK <<			\
103 		   TX3912_VIDEOCTRL1_BITSEL_SHIFT))
104 #define TX3912_VIDEOCTRL1_BITSEL_SET(cr, val)				\
105 	((cr) | (((val) << TX3912_VIDEOCTRL1_BITSEL_SHIFT) &		\
106 	(TX3912_VIDEOCTRL1_BITSEL_MASK << TX3912_VIDEOCTRL1_BITSEL_SHIFT)))
107 #define TX3912_VIDEOCTRL1_BITSEL_8BITCOLOR	0x3
108 #define TX3912_VIDEOCTRL1_BITSEL_4BITGREYSCALE	0x2
109 #define TX3912_VIDEOCTRL1_BITSEL_2BITGREYSCALE	0x1
110 #define TX3912_VIDEOCTRL1_BITSEL_MONOCHROME	0x0
111 /* R/W */
112 #define TX3912_VIDEOCTRL1_DISPSPLIT	0x00000020
113 #define TX3912_VIDEOCTRL1_DISP8		0x00000010
114 #define TX3912_VIDEOCTRL1_DFMODE	0x00000008
115 #define TX3912_VIDEOCTRL1_INVVID	0x00000004
116 #define TX3912_VIDEOCTRL1_DISPON	0x00000002
117 #define TX3912_VIDEOCTRL1_ENVID		0x00000001
118 
119 /*
120  *	Video Control 2 Register
121  */
122 /* W */
123 #define TX3912_VIDEOCTRL2_VIDRATE_SHIFT 22
124 #define TX3912_VIDEOCTRL2_VIDRATE_MASK	0x3ff
125 #define TX3912_VIDEOCTRL2_VIDRATE(cr)					\
126 	(((cr) >> TX3912_VIDEOCTRL2_VIDRATE_SHIFT) &			\
127 	TX3912_VIDEOCTRL2_VIDRATE_MASK)
128 #define TX3912_VIDEOCTRL2_VIDRATE_SET(cr, val)				\
129 	((cr) | (((val) << TX3912_VIDEOCTRL2_VIDRATE_SHIFT) &		\
130 	(TX3912_VIDEOCTRL2_VIDRATE_MASK << TX3912_VIDEOCTRL2_VIDRATE_SHIFT)))
131 
132 /* W */
133 /*
134  * HORZVAL = (HorzSize4 - 1) for 4bit split or non-split LCD
135  * HORZVAL = (HorzSize8 - 1) for 8bit non-split LCD
136  */
137 #define TX3912_VIDEOCTRL2_HORZVAL_SHIFT 12
138 #define TX3912_VIDEOCTRL2_HORZVAL_MASK	0x1ff
139 #define TX3912_VIDEOCTRL2_HORZVAL(cr)					\
140 	(((cr) >> TX3912_VIDEOCTRL2_HORZVAL_SHIFT) &			\
141 	TX3912_VIDEOCTRL2_HORZVAL_MASK)
142 #define TX3912_VIDEOCTRL2_HORZVAL_SET(cr, val)				\
143 	((cr) | (((val) << TX3912_VIDEOCTRL2_HORZVAL_SHIFT) &		\
144 	(TX3912_VIDEOCTRL2_HORZVAL_MASK << TX3912_VIDEOCTRL2_HORZVAL_SHIFT)))
145 
146 /* W */
147 /*
148  * LINEVAL = (# of Lines - 1) for a non-split LCD
149  * LINEVAL = (# of Lins2 - 1) for a split LCD
150  */
151 #define TX3912_VIDEOCTRL2_LINEVAL_SHIFT 0
152 #define TX3912_VIDEOCTRL2_LINEVAL_MASK	0x3ff
153 #define TX3912_VIDEOCTRL2_LINEVAL(cr)					\
154 	(((cr) >> TX3912_VIDEOCTRL2_LINEVAL_SHIFT) &			\
155 	TX3912_VIDEOCTRL2_LINEVAL_MASK)
156 #define TX3912_VIDEOCTRL2_LINEVAL_SET(cr, val)				\
157 	((cr) | (((val) << TX3912_VIDEOCTRL2_LINEVAL_SHIFT) &		\
158 	(TX3912_VIDEOCTRL2_LINEVAL_MASK << TX3912_VIDEOCTRL2_LINEVAL_SHIFT)))
159 
160 /*
161  *	Video Control 3 Register
162  */
163 /* W */
164 #define TX3912_VIDEOCTRL3_VIDBANK_SHIFT		20
165 #define TX3912_VIDEOCTRL3_VIDBANK_MASK		0xfff
166 #define TX3912_VIDEOCTRL3_VIDBANK(cr)					\
167 	(((cr) >> TX3912_VIDEOCTRL3_VIDBANK_SHIFT) &			\
168 	TX3912_VIDEOCTRL3_VIDBANK_MASK)
169 #define TX3912_VIDEOCTRL3_VIDBANK_SET(cr, val)				\
170 	((cr) | (((val) << TX3912_VIDEOCTRL3_VIDBANK_SHIFT) &		\
171 	(TX3912_VIDEOCTRL3_VIDBANK_MASK << TX3912_VIDEOCTRL3_VIDBANK_SHIFT)))
172 
173 /* W */
174 #define TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT	4
175 #define TX3912_VIDEOCTRL3_VIDBASEHI_MASK	0xffff
176 #define TX3912_VIDEOCTRL3_VIDBASEHI(cr)					\
177 	(((cr) >> TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT) &			\
178 	TX3912_VIDEOCTRL3_VIDBASEHI_MASK)
179 #define TX3912_VIDEOCTRL3_VIDBASEHI_SET(cr, val)			\
180 	((cr) | (((val) << TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT) &		\
181 	(TX3912_VIDEOCTRL3_VIDBASEHI_MASK << TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT)))
182 
183 
184 /*
185  *	Video Control 4 Register
186  */
187 /* W */
188 /*
189  * DF Rate = LineRate / (DFVAL + 1)
190  */
191 #define TX3912_VIDEOCTRL4_DFVAL_SHIFT	24
192 #define TX3912_VIDEOCTRL4_DFVAL_MASK	0xff
193 #define TX3912_VIDEOCTRL4_DFVAL(cr)					\
194 	(((cr) >> TX3912_VIDEOCTRL4_DFVAL_SHIFT) &			\
195 	TX3912_VIDEOCTRL4_DFVAL_MASK)
196 #define TX3912_VIDEOCTRL4_DFVAL_SET(cr, val)				\
197 	((cr) | (((val) << TX3912_VIDEOCTRL4_DFVAL_SHIFT) &		\
198 	(TX3912_VIDEOCTRL4_DFVAL_MASK << TX3912_VIDEOCTRL4_DFVAL_SHIFT)))
199 
200 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT	20
201 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL_MASK	0xf
202 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL(cr)				\
203 	(((cr) >> TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT) &		\
204 	TX3912_VIDEOCTRL4_FRAMEMASKVAL_MASK)
205 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL_SET(cr, val)			\
206 	((cr) | (((val) << TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT) &	\
207 	(TX3912_VIDEOCTRL4_FRAMEMASKVAL_MASK << TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT)))
208 
209 #define TX3912_VIDEOCTRL4_VIDBASELO_SHIFT	4
210 #define TX3912_VIDEOCTRL4_VIDBASELO_MASK	0xffff
211 #define TX3912_VIDEOCTRL4_VIDBASELO(cr)					\
212 	(((cr) >> TX3912_VIDEOCTRL4_VIDBASELO_SHIFT) &			\
213 	TX3912_VIDEOCTRL4_VIDBASELO_MASK)
214 #define TX3912_VIDEOCTRL4_VIDBASELO_SET(cr, val)			\
215 	((cr) | (((val) << TX3912_VIDEOCTRL4_VIDBASELO_SHIFT) &		\
216 	(TX3912_VIDEOCTRL4_VIDBASELO_MASK << TX3912_VIDEOCTRL4_VIDBASELO_SHIFT)))
217 
218 /*
219  *	Video Control 5 Register
220  */
221 /* W */
222 /*
223  * TX3912_VIDEOCTRL5_REDSEL (31:0)
224  */
225 
226 /*
227  *	Video Control 6 Register
228  */
229 /* W */
230 /*
231  * TX3912_VIDEOCTRL6_GREENSEL (31:0)
232  */
233 
234 /*
235  *	Video Control 7 Register
236  */
237 /* W */
238 /*
239  * TX3912_VIDEOCTRL6_BLUESEL (31:0)
240  */
241 
242 /*
243  *	Video Control 8 Register
244  */
245 /* W */
246 /*
247  * 2_3 means `2 out of 3'
248  */
249 #define TX3912_VIDEOCTRL8_PAT2_3_SHIFT	0
250 #define TX3912_VIDEOCTRL8_PAT2_3_MASK	0xfff
251 #define TX3912_VIDEOCTRL8_PAT2_3(cr)					\
252 	(((cr) >> TX3912_VIDEOCTRL8_PAT2_3_SHIFT) &			\
253 	TX3912_VIDEOCTRL8_PAT2_3_MASK)
254 #define TX3912_VIDEOCTRL8_PAT2_3_SET(cr, val)				\
255 	((cr) | (((val) << TX3912_VIDEOCTRL8_PAT2_3_SHIFT) &		\
256 	(TX3912_VIDEOCTRL8_PAT2_3_MASK << TX3912_VIDEOCTRL8_PAT2_3_SHIFT)))
257 
258 /*
259  *	Video Control 9 Register
260  */
261 /* W */
262 #define TX3912_VIDEOCTRL9_PAT3_4_SHIFT	16
263 #define TX3912_VIDEOCTRL9_PAT3_4_MASK	0xffff
264 #define TX3912_VIDEOCTRL9_PAT3_4(cr)					\
265 	(((cr) >> TX3912_VIDEOCTRL9_PAT3_4_SHIFT) &			\
266 	TX3912_VIDEOCTRL9_PAT3_4_MASK)
267 #define TX3912_VIDEOCTRL9_PAT3_4_SET(cr, val)				\
268 	((cr) | (((val) << TX3912_VIDEOCTRL9_PAT3_4_SHIFT) &		\
269 	(TX3912_VIDEOCTRL9_PAT3_4_MASK << TX3912_VIDEOCTRL9_PAT3_4_SHIFT)))
270 /* W */
271 #define TX3912_VIDEOCTRL9_PAT2_4_SHIFT	0
272 #define TX3912_VIDEOCTRL9_PAT2_4_MASK	0xffff
273 #define TX3912_VIDEOCTRL9_PAT2_4(cr)					\
274 	(((cr) >> TX3912_VIDEOCTRL9_PAT2_4_SHIFT) &			\
275 	TX3912_VIDEOCTRL9_PAT2_4_MASK)
276 #define TX3912_VIDEOCTRL9_PAT2_4_SET(cr, val)				\
277 	((cr) | (((val) << TX3912_VIDEOCTRL9_PAT2_4_SHIFT) &		\
278 	(TX3912_VIDEOCTRL9_PAT2_4_MASK << TX3912_VIDEOCTRL9_PAT2_4_SHIFT)))
279 
280 /*
281  *	Video Control 10 Register
282  */
283 /* W */
284 #define TX3912_VIDEOCTRL10_PAT4_5_SHIFT	0
285 #define TX3912_VIDEOCTRL10_PAT4_5_MASK	0xfffff
286 #define TX3912_VIDEOCTRL10_PAT4_5(cr)					\
287 	(((cr) >> TX3912_VIDEOCTRL10_PAT4_5_SHIFT) &			\
288 	TX3912_VIDEOCTRL10_PAT4_5_MASK)
289 #define TX3912_VIDEOCTRL10_PAT4_5_SET(cr, val)				\
290 	((cr) | (((val) << TX3912_VIDEOCTRL10_PAT4_5_SHIFT) &		\
291 	(TX3912_VIDEOCTRL10_PAT4_5_MASK << TX3912_VIDEOCTRL10_PAT4_5_SHIFT)))
292 
293 /*
294  *	Video Control 11 Register
295  */
296 /* W */
297 #define TX3912_VIDEOCTRL11_PAT3_5_SHIFT	0
298 #define TX3912_VIDEOCTRL11_PAT3_5_MASK	0xfffff
299 #define TX3912_VIDEOCTRL11_PAT3_5(cr)					\
300 	(((cr) >> TX3912_VIDEOCTRL11_PAT3_5_SHIFT) &			\
301 	TX3912_VIDEOCTRL11_PAT3_5_MASK)
302 #define TX3912_VIDEOCTRL11_PAT3_5_SET(cr, val)				\
303 	((cr) | (((val) << TX3912_VIDEOCTRL11_PAT3_5_SHIFT) &		\
304 	(TX3912_VIDEOCTRL11_PAT3_5_MASK << TX3912_VIDEOCTRL11_PAT3_5_SHIFT)))
305 
306 /*
307  *	Video Control 12 Register
308  */
309 /* W */
310 #define TX3912_VIDEOCTRL12_PAT6_7_SHIFT	0
311 #define TX3912_VIDEOCTRL12_PAT6_7_MASK	0xfffffff
312 #define TX3912_VIDEOCTRL12_PAT6_7(cr)					\
313 	(((cr) >> TX3912_VIDEOCTRL12_PAT6_7_SHIFT) &			\
314 	TX3912_VIDEOCTRL12_PAT6_7_MASK)
315 #define TX3912_VIDEOCTRL12_PAT6_7_SET(cr, val)				\
316 	((cr) | (((val) << TX3912_VIDEOCTRL12_PAT6_7_SHIFT) &		\
317 	(TX3912_VIDEOCTRL12_PAT6_7_MASK << TX3912_VIDEOCTRL12_PAT6_7_SHIFT)))
318 
319 /*
320  *	Video Control 13 Register
321  */
322 /* W */
323 #define TX3912_VIDEOCTRL13_PAT5_7_SHIFT	0
324 #define TX3912_VIDEOCTRL13_PAT5_7_MASK	0xfffffff
325 #define TX3912_VIDEOCTRL13_PAT5_7(cr)					\
326 	(((cr) >> TX3912_VIDEOCTRL13_PAT5_7_SHIFT) &			\
327 	TX3912_VIDEOCTRL13_PAT5_7_MASK)
328 #define TX3912_VIDEOCTRL13_PAT5_7_SET(cr, val)				\
329 	((cr) | (((val) << TX3912_VIDEOCTRL13_PAT5_7_SHIFT) &		\
330 	(TX3912_VIDEOCTRL13_PAT5_7_MASK << TX3912_VIDEOCTRL13_PAT5_7_SHIFT)))
331 
332 /*
333  *	Video Control 14 Register
334  */
335 /* W */
336 #define TX3912_VIDEOCTRL14_PAT4_7_SHIFT	0
337 #define TX3912_VIDEOCTRL14_PAT4_7_MASK	0xfffffff
338 #define TX3912_VIDEOCTRL14_PAT4_7(cr)					\
339 	(((cr) >> TX3912_VIDEOCTRL14_PAT4_7_SHIFT) &			\
340 	TX3912_VIDEOCTRL14_PAT4_7_MASK)
341 #define TX3912_VIDEOCTRL14_PAT4_7_SET(cr, val)				\
342 	((cr) | (((val) << TX3912_VIDEOCTRL14_PAT4_7_SHIFT) &		\
343 	(TX3912_VIDEOCTRL14_PAT4_7_MASK << TX3912_VIDEOCTRL14_PAT4_7_SHIFT)))
344 
345 /*
346  *	Default dither pattern
347  */
348 #define P0000	0x0
349 #define P0001	0x1
350 #define P0010	0x2
351 #define P0011	0x3
352 #define P0100	0x4
353 #define P0101	0x5
354 #define P0110	0x6
355 #define P0111	0x7
356 #define P1000	0x8
357 #define P1001	0x9
358 #define P1010	0xa
359 #define P1011	0xb
360 #define P1100	0xc
361 #define P1101	0xd
362 #define P1110	0xe
363 #define P1111	0xf
364 
365 #define DITHER_PATTERN(p0, p1, p2, p3, p4, p5, p6)			\
366 	(((p0) << 24) | ((p1) << 20) | ((p2) << 16) | ((p3) << 12) |	\
367 	 ((p4) << 8) | ((p5) << 4) || (p6))
368 
369 #define TX3912_VIDEOCTRL8_PAT2_3_DEFAULT				\
370 	DITHER_PATTERN(0, 0, 0, 0, P0111, P1101, P1010)
371 #define TX3912_VIDEOCTRL9_PAT3_4_DEFAULT				\
372 	DITHER_PATTERN(0, 0, 0, P0111, P1101, P1011, P1110)
373 #define TX3912_VIDEOCTRL9_PAT2_4_DEFAULT				\
374 	DITHER_PATTERN(0, 0, 0, P1010, P0101, P1010, P0101)
375 #define TX3912_VIDEOCTRL10_PAT4_5_DEFAULT				\
376 	DITHER_PATTERN(0, 0, P0111, P1101, P1111, P1011, P1110)
377 #define TX3912_VIDEOCTRL11_PAT3_5_DEFAULT				\
378 	DITHER_PATTERN(0, 0, P0111, P1010, P0101, P1010, P1101)
379 #define TX3912_VIDEOCTRL12_PAT6_7_DEFAULT				\
380 	DITHER_PATTERN(P1111, P1011, P1111, P1101, P1111, P1110, P0111)
381 #define TX3912_VIDEOCTRL13_PAT5_7_DEFAULT				\
382 	DITHER_PATTERN(P0111, P1011, P0101, P1010, P1101, P1110, P1111)
383 #define TX3912_VIDEOCTRL14_PAT4_7_DEFAULT				\
384 	DITHER_PATTERN(P1011, P1001, P1101, P1100, P0110, P0110, P0011)
385 
386 /* dither duty cycle : pre-dithered data nible mapping */
387 #define TX3912_VIDEO_DITHER_DUTYCYCLE_1		15
388 #define TX3912_VIDEO_DITHER_DUTYCYCLE_6_7	14
389 #define TX3912_VIDEO_DITHER_DUTYCYCLE_4_5	13
390 #define TX3912_VIDEO_DITHER_DUTYCYCLE_3_4	12
391 #define TX3912_VIDEO_DITHER_DUTYCYCLE_5_7	11
392 #define TX3912_VIDEO_DITHER_DUTYCYCLE_2_3	10
393 #define TX3912_VIDEO_DITHER_DUTYCYCLE_3_5	9
394 #define TX3912_VIDEO_DITHER_DUTYCYCLE_4_7	8
395 #define TX3912_VIDEO_DITHER_DUTYCYCLE_2_4	7
396 #define TX3912_VIDEO_DITHER_DUTYCYCLE_3_7	6
397 #define TX3912_VIDEO_DITHER_DUTYCYCLE_2_5	5
398 #define TX3912_VIDEO_DITHER_DUTYCYCLE_1_3	4
399 #define TX3912_VIDEO_DITHER_DUTYCYCLE_2_7	3
400 #define TX3912_VIDEO_DITHER_DUTYCYCLE_1_5	2
401 #define TX3912_VIDEO_DITHER_DUTYCYCLE_1_7	1
402 #define TX3912_VIDEO_DITHER_DUTYCYCLE_0		0
403