Home | History | Annotate | Line # | Download | only in tx
tx3912videoreg.h revision 1.5
      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