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