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