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