1 /*	$NetBSD: hd64461videoreg.h,v 1.1 2001/06/04 17:08:36 uch Exp $	*/
2 
3 /*-
4  * Copyright (c) 2001 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 /*
40  * LCD Controller Control Register
41  */
42 /* Base Address Register */
43 #define HD64461_LCDCBAR_REG16			0xb0001000
44 #define HD64461_LCDCBAR_MASK			0x3fff
45 #define HD64461_LCDCBAR_SHIFT			12
46 #define HD64461_LCDCBAR_BASEADDR(x)					\
47 	(((x) & HD64461_LCDCBAR_MASK) << HD64461_LCDCBAR_SHIFT)
48 
49 /* Line Address Offset Register */
50 #define HD64461_LCDCLOR_REG16			0xb0001002
51 #define HD64461_LCDCLOR_MASK			0x07ff
52 #define HD64461_LCDCLOR(x)	((x) & HD64461_LCDCLOR_MASK)
53 
54 /* LCDC Control Register */
55 #define HD64461_LCDCCR_REG16			0xb0001004
56 #define HD64461_LCDCCR_STBAK			0x0400
57 #define HD64461_LCDCCR_STREQ			0x0100
58 #define HD64461_LCDCCR_MOFF			0x0080
59 #define HD64461_LCDCCR_REFSEL			0x0040
60 #define HD64461_LCDCCR_EPON			0x0020
61 #define HD64461_LCDCCR_SPON			0x0010
62 #define HD64461_LCDCCR_DSPSEL_MASK		0x7
63 #define HD64461_LCDCCR_DSPSEL(x)	((x) & HD64461_LCDCCR_DSPSEL_MASK)
64 #define HD64461_LCDCCR_DSPSEL_LCD_CRT		0x4
65 #define HD64461_LCDCCR_DSPSEL_CRT		0x2
66 #define HD64461_LCDCCR_DSPSEL_LCD		0x1
67 
68 /* LCD Display Register */
69 /* 1 */
70 #define HD64461_LCDLDR1_REG16			0xb0001010
71 #define HD64461_LCDLDR1_DINV			0x0100
72 #define HD64461_LCDLDR1_DON			0x0001
73 /* 2 */
74 #define HD64461_LCDLDR2_REG16			0xb0001012
75 #define HD64461_LCDLDR2_CC1			0x0080
76 #define HD64461_LCDLDR2_CC2			0x0040
77 #define HD64461_LCDLDR2_LM_MASK			0x7
78 #define HD64461_LCDLDR2_LM(x)		((x) & HD64461_LCDLDR2_LM_MASK)
79 #define HD64461_LCDLDR2_LM_COLOR		0x4
80 #define HD64461_LCDLDR2_LM_GRAY8		0x1
81 #define HD64461_LCDLDR2_LM_GRAY4		0x0
82 /* 3 */
83 #define HD64461_LCDLDR3_REG16			0xb000101e
84 #define HD64461_LCDLDR3_CS_SHIFT		5
85 #define HD64461_LCDLDR3_CS_MASK			0x1f
86 #define HD64461_LCDLDR3_CS(cr)						\
87 	(((cr) >> HD64461_LCDLDR3_CS_SHIFT) &				\
88 	HD64461_LCDLDR3_CS_MASK)
89 #define HD64461_LCDLDR3_CS_SET(cr, val)					\
90 	((cr) | (((val) << HD64461_LCDLDR3_CS_SHIFT) &			\
91 	(HD64461_LCDLDR3_CS_MASK << HD64461_LCDLDR3_CS_SHIFT)))
92 #define HD64461_LCDLDR3_CG_MASK			0xf
93 #define HD64461_LCDLDR3_CG(cr)						\
94 	((cr)  & HD64461_LCDLDR3_CG_MASK)
95 #define HD64461_LCDLDR3_CG_CLR(cr)					\
96 	((cr)  & ~HD64461_LCDLDR3_CG_MASK)
97 #define HD64461_LCDLDR3_CG_SET(cr, val)					\
98 	((cr) | ((val) & HD64461_LCDLDR3_CG_MASK))
99 
100 /*
101  *	select CL2 frequency
102  *	0x0	15 MHz (color) 15/2 (monochrome)
103  *	0x1	2.5 MHz
104  *	0x2	3.75 Mhz
105  *	0x4	5 Mhz
106  *	0x8	7.5 Mhz
107  *	0x10	10 Mhz
108  */
109 #define HD64461_LCDLDR3_CG_COLOR16	0x8
110 #define HD64461_LCDLDR3_CG_COLOR8	0x4
111 #define HD64461_LCDLDR3_CG_GRAY6	0x3
112 #define HD64461_LCDLDR3_CG_GRAY4	0x2
113 #define HD64461_LCDLDR3_CG_GRAY2	0x1
114 #define HD64461_LCDLDR3_CG_GRAY1	0x0
115 
116 /* LCD Number of Characters in Horizontal Register */
117 #define HD64461_LCDLDHNCR_REG16			0xb0001014
118 #define HD64461_LCDLDHNCR_NHD_SHIFT		8
119 #define HD64461_LCDLDHNCR_NHD_MASK		0xff
120 #define HD64461_LCDLDHNCR_NHD(cr)					\
121 	(((cr) >> HD64461_LCDLDHNCR_NHD_SHIFT) &			\
122 	HD64461_LCDLDHNCR_NHD_MASK)
123 #define HD64461_LCDLDHNCR_NHD_SET(cr, val)				\
124 	((cr) | (((val) << HD64461_LCDLDHNCR_NHD_SHIFT) &		\
125 	(HD64461_LCDLDHNCR_NHD_MASK << HD64461_LCDLDHNCR_NHD_SHIFT)))
126 #define HD64461_LCDLDHNCR_NHT_SHIFT		0
127 #define HD64461_LCDLDHNCR_NHT_MASK		0xff
128 #define HD64461_LCDLDHNCR_NHT(cr)					\
129 	(((cr) >> HD64461_LCDLDHNCR_NHT_SHIFT) &			\
130 	HD64461_LCDLDHNCR_NHT_MASK)
131 #define HD64461_LCDLDHNCR_NHT_SET(cr, val)				\
132 	((cr) | (((val) << HD64461_LCDLDHNCR_NHT_SHIFT) &		\
133 	(HD64461_LCDLDHNCR_NHT_MASK << HD64461_LCDLDHNCR_NHT_SHIFT)))
134 
135 /* Start Position of Horizontal Register */
136 #define HD64461_LCDLDHNSR_REG16			0xb0001016
137 #define HD64461_LCDLDHNSR_HSW_SHIFT		8
138 #define HD64461_LCDLDHNSR_HSW_MASK		0xf
139 #define HD64461_LCDLDHNSR_HSW(cr)					\
140 	(((cr) >> HD64461_LCDLDHNSR_HSW_SHIFT) &			\
141 	HD64461_LCDLDHNSR_HSW_MASK)
142 #define HD64461_LCDLDHNSR_HSW_SET(cr, val)				\
143 	((cr) | (((val) << HD64461_LCDLDHNSR_HSW_SHIFT) &		\
144 	(HD64461_LCDLDHNSR_HSW_MASK << HD64461_LCDLDHNSR_HSW_SHIFT)))
145 #define HD64461_LCDLDHNSR_HSP_SHIFT		0
146 #define HD64461_LCDLDHNSR_HSP_MASK		0xff
147 #define HD64461_LCDLDHNSR_HSP(cr)					\
148 	(((cr) >> HD64461_LCDLDHNSR_HSP_SHIFT) &			\
149 	HD64461_LCDLDHNSR_HSP_MASK)
150 #define HD64461_LCDLDHNSR_HSP_SET(cr, val)				\
151 	((cr) | (((val) << HD64461_LCDLDHNSR_HSP_SHIFT) &		\
152 	(HD64461_LCDLDHNSR_HSP_MASK << HD64461_LCDLDHNSR_HSP_SHIFT)))
153 
154 /* Total Vertical Lines Register */
155 #define HD64461_LCDLDVNTR_REG16			0xb0001018
156 #define HD64461_LCDLDVNTR_VTL_SHIFT		0
157 #define HD64461_LCDLDVNTR_VTL_MASK		0x3ff
158 #define HD64461_LCDLDVNTR_VTL(cr)					\
159 	(((cr) >> HD64461_LCDLDVNTR_VTL_SHIFT) &			\
160 	HD64461_LCDLDVNTR_VTL_MASK)
161 #define HD64461_LCDLDVNTR_VTL_SET(cr, val)				\
162 	((cr) | (((val) << HD64461_LCDLDVNTR_VTL_SHIFT) &		\
163 	(HD64461_LCDLDVNTR_VTL_MASK << HD64461_LCDLDVNTR_VTL_SHIFT)))
164 
165 /* Display Vertical Lines Register */
166 #define HD64461_LCDLDVNDR_REG16			0xb000101a
167 #define HD64461_LCDLDVNDR_VDL_SHIFT		0
168 #define HD64461_LCDLDVNDR_VDL_MASK		0x3ff
169 #define HD64461_LCDLDVNDR_VDL(cr)					\
170 	(((cr) >> HD64461_LCDLDVNDR_VDL_SHIFT) &			\
171 	HD64461_LCDLDVNDR_VDL_MASK)
172 #define HD64461_LCDLDVNDR_VDL_SET(cr, val)				\
173 	((cr) | (((val) << HD64461_LCDLDVNDR_VDL_SHIFT) &		\
174 	(HD64461_LCDLDVNDR_VDL_MASK << HD64461_LCDLDVNDR_VDL_SHIFT)))
175 
176 /* Vertical Synchronization Position Register */
177 #define HD64461_LCDLDVSPR_REG16			0xb000101c
178 #define HD64461_LCDLDVSPR_VSP_SHIFT		0
179 #define HD64461_LCDLDVSPR_VSP_MASK		0x3ff
180 #define HD64461_LCDLDVSPR_VSP(cr)					\
181 	((cr) &	HD64461_LCDLDVSPR_VSP_MASK)
182 #define HD64461_LCDLDVSPR_VSP_SET(cr, val)				\
183 	((cr) | ((val) & HD64461_LCDLDVSPR_VSP_MASK))
184 
185 /*
186  * CRT Control Register
187  */
188 /* CRTC Total Vertical Lines Register */
189 #define HD64461_LCDCRTVTR_REG16			0xb0001020
190 #define HD64461_LCDCRTVTR_SHIFT		0
191 #define HD64461_LCDCRTVTR_MASK		0x3ff
192 #define HD64461_LCDCRTVTR(cr)						\
193 	(((cr) >> HD64461_LCDCRTVTR_SHIFT) &				\
194 	HD64461_LCDCRTVTR_MASK)
195 #define HD64461_LCDCRTVTR_SET(cr, val)					\
196 	((cr) | (((val) << HD64461_LCDCRTVTR_SHIFT) &			\
197 	(HD64461_LCDCRTVTR_MASK << HD64461_LCDCRTVTR_SHIFT)))
198 
199 /* CRTC Vertical Retrace Start Register */
200 #define HD64461_LCDCRTVRSR_REG16		0xb0001022
201 #define HD64461_LCDCRTVRSR_SHIFT	0
202 #define HD64461_LCDCRTVRSR_MASK		0x3ff
203 #define HD64461_LCDCRTVRSR(cr)						\
204 	(((cr) >> HD64461_LCDCRTVRSR_SHIFT) &				\
205 	HD64461_LCDCRTVRSR_MASK)
206 #define HD64461_LCDCRTVRSR_SET(cr, val)					\
207 	((cr) | (((val) << HD64461_LCDCRTVRSR_SHIFT) &			\
208 	(HD64461_LCDCRTVRSR_MASK << HD64461_LCDCRTVRSR_SHIFT)))
209 
210 /* CRTC Vertical Retrace End Register */
211 #define HD64461_LCDCRTVRER_REG16		0xb0001024
212 #define HD64461_LCDCRTVRER_SHIFT	0
213 #define HD64461_LCDCRTVRER_MASK		0xf
214 #define HD64461_LCDCRTVRER(cr)						\
215 	(((cr) >> HD64461_LCDCRTVRER_SHIFT) & HD64461_LCDCRTVRER_MASK)
216 
217 #define HD64461_LCDCRTVRER_SET(cr, val)					\
218 	((cr) | (((val) << HD64461_LCDCRTVRER_SHIFT) &			\
219 	(HD64461_LCDCRTVRER_MASK << HD64461_LCDCRTVRER_SHIFT)))
220 
221 /*
222  * Palette Register
223  */
224 /* Color Palette Write Address Register */
225 #define HD64461_LCDCPTWAR_REG16			0xb0001030
226 #define HD64461_LCDCPTWAR_SHIFT		8
227 #define HD64461_LCDCPTWAR_MASK		0xff
228 #define HD64461_LCDCPTWAR_SET(cr, val)					\
229 	((cr) | (((val) << HD64461_LCDCPTWAR_SHIFT) &			\
230 	(HD64461_LCDCPTWAR_MASK << HD64461_LCDCPTWAR_SHIFT)))
231 
232 /* Color Palette Write Data Register */
233 #define HD64461_LCDCPTWDR_REG16			0xb0001032
234 #define HD64461_LCDCPTWDR_SHIFT		0
235 #define HD64461_LCDCPTWDR_MASK		0x3f
236 #define HD64461_LCDCPTWDR_SET(cr, val)					\
237 	((cr) | ((val) & HD64461_LCDCPTWDR_MASK))
238 
239 /* Color Palette READ Address Register */
240 #define HD64461_LCDCPTRAR_REG16			0xb0001034
241 #define HD64461_LCDCPTRAR_SHIFT		8
242 #define HD64461_LCDCPTRAR_MASK		0xff
243 #define HD64461_LCDCPTRAR_SET(cr, val)					\
244 	((cr) | (((val) << HD64461_LCDCPTRAR_SHIFT) &			\
245 	(HD64461_LCDCPTRAR_MASK << HD64461_LCDCPTRAR_SHIFT)))
246 
247 /* Color Palette READ Data Register */
248 #define HD64461_LCDCPTRDR_REG16			0xb0001036
249 #define HD64461_LCDCPTRDR_SHIFT		0
250 #define HD64461_LCDCPTRDR_MASK		0x3f
251 #define HD64461_LCDCPTRDR(cr)	((cr) & HD64461_LCDCPTRDR_MASK)
252 
253 /*
254  * Acceleration Common Register
255  */
256 /* Display Resolution Offset Register */
257 #define HD64461_LCDGRDOR_REG16			0xb0001040
258 #define HD64461_LCDGRDOR_SHIFT		0
259 #define HD64461_LCDGRDOR_MASK		0x7ff
260 #define HD64461_LCDGRDOR(cr)						\
261 	(((cr) >> HD64461_LCDGRDOR_SHIFT) &				\
262 	HD64461_LCDGRDOR_MASK)
263 #define HD64461_LCDGRDOR_SET(cr, val)					\
264 	((cr) | (((val) << HD64461_LCDGRDOR_SHIFT) &			\
265 	(HD64461_LCDGRDOR_MASK << HD64461_LCDGRDOR_SHIFT)))
266 
267 /* Solid Color Register */
268 #define HD64461_LCDGRSCR_REG16			0xb0001042
269 
270 /* Accelerator Configuration Register */
271 #define HD64461_LCDGRCFGR_REG16			0xb0001044
272 #define HD64461_LCDGRCFGR_ACCSTATUS		0x0010
273 #define HD64461_LCDGRCFGR_ACCRESET		0x0008
274 #define HD64461_LCDGRCFGR_ACCSTART_MASK		0x6
275 #define HD64461_LCDGRCFGR_ACCSTART_BITBLT	0x0006
276 #define HD64461_LCDGRCFGR_ACCSTART_LINE		0x0004
277 #define HD64461_LCDGRCFGR_ACCSTART_OFF		0x0000
278 #define HD64461_LCDGRCFGR_COLORDEPTH_8BPP	0x0001
279 
280 /*
281  * Line Drawing Register
282  */
283 /* Line Start Address Register */
284 #define HD64461_LCDLNSARH_REG16			0xb0001046
285 #define HD64461_LCDLNSARH_MASK		0x0007
286 #define HD64461_LCDLNSARL_REG16			0xb0001048
287 #define HD64461_LCDLNSARL_MASK		0xffff
288 
289 /* Axis Pixel Length Register */
290 #define HD64461_LCDLNAXLR_REG16			0xb000104a
291 #define HD64461_LCDLNAXLR_MASK		0x07ff
292 
293 /* Diagonal Regsiter */
294 #define HD64461_LCDLNDGR_REG16			0xb000104c
295 #define HD64461_LCDLNDGR_LNDGR_SIGN		0x8000
296 #define HD64461_LCDLNDGR_LNDGR_MASK	0x07ff
297 #define HD64461_LCDLNDGR_LNDGR_SET(cr, x)				\
298 	((cr) | ((x) & HD64461_LCDLNDGR_LNDGR_MASK))
299 
300 /* Axial Register */
301 #define HD64461_LCDLNAXR_REG16			0xb000104e
302 #define HD64461_LCDLNAXR_LNAXR_MASK	0x0fff
303 #define HD64461_LCDLNAXR_LNAXR_SET(cr, x)				\
304 	((cr) | ((x) & HD64461_LCDLNAXR_LNAXR_MASK))
305 
306 /* Start Error Term Register */
307 #define HD64461_LCDLNERTR_REG16			0xb0001050
308 #define HD64461_LCDLNERTR_LNERTR_SIGN		0x8000
309 #define HD64461_LCDLNERTR_LNERTR_MASK	0x07ff
310 #define HD64461_LCDLNERTR_LNERTR_SET(cr, x)				\
311 	((cr) | ((x) & HD64461_LCDLNERTR_LNERTR_MASK))
312 
313 /* Line Mode Register */
314 #define HD64461_LCDLNMDR_REG16			0xb0001052
315 #define HD64461_LCDLNMDR_MASK		0x0003
316 /*
317  *    2  1
318  *  3      0
319  *  4      7
320  *    5  6
321  *
322  * 1 or 5 ... 3
323  * 2 or 6 ... 2
324  * 0 or 4 ... 1
325  * 3 or 7 ... 0
326  */
327 
328 /*
329  * BitBLT Register
330  */
331 /* Source Start Address Register (19 bit) */
332 #define HD64461_LCDBBTSSARH_REG16		0xb0001054
333 #define HD64461_LCDBBTSSARH_SHIFT	16
334 #define HD64461_LCDBBTSSARH_MASK	0x0007
335 #define HD64461_LCDBBTSSARL_REG16		0xb0001056
336 #define HD64461_LCDBBTSSARL_MASK	0xffff
337 #define HD64461_LCDBBTSSARH(x)						\
338 	(((x) >> HD64461_LCDBBTSSARH_SHIFT) & HD64461_LCDBBTSSARH_MASK)
339 #define HD64461_LCDBBTSSARL(x)	((x) & HD64461_LCDBBTSSARL_MASK)
340 
341 /* Destination Start Address Register (19 bit) */
342 #define HD64461_LCDBBTDSARH_REG16		0xb0001058
343 #define HD64461_LCDBBTDSARH_SHIFT	16
344 #define HD64461_LCDBBTDSARH_MASK	0x0007
345 #define HD64461_LCDBBTDSARL_REG16		0xb000105a
346 #define HD64461_LCDBBTDSARL_MASK	0xffff
347 #define HD64461_LCDBBTDSARH(x)						\
348 	(((x) >> HD64461_LCDBBTSSARH_SHIFT) & HD64461_LCDBBTSSARH_MASK)
349 #define HD64461_LCDBBTDSARL(x)	((x) & HD64461_LCDBBTSSARL_MASK)
350 
351 /* Destination Block Width Register */
352 #define HD64461_LCDBBTDWR_REG16			0xb000105c
353 #define HD64461_LCDBBTDWR_MASK		0x07ff
354 
355 /* Destination Block Height Register */
356 #define HD64461_LCDBBTDHR_REG16			0xb000105e
357 #define HD64461_LCDBBTDHR_MASK		0x07ff
358 
359 /* Pattern Start Address Register (19 bit) */
360 #define HD64461_LCDBBTPARH_REG16		0xb0001060
361 #define HD64461_LCDBBTPARH_MASK		0x0007
362 #define HD64461_LCDBBTPARL_REG16		0xb0001062
363 
364 /* Mask Start Address Register (19 bit) */
365 #define HD64461_LCDBBTMARH_REG16		0xb0001064
366 #define HD64461_LCDBBTMARH_MASK		0x0007
367 #define HD64461_LCDBBTMARL_REG16		0xb0001066
368 
369 /* ROP Register */
370 #define HD64461_LCDBBTROPR_REG16		0xb0001068
371 
372 /* BitBLT Mode Register */
373 #define HD64461_LCDBBTMDR_REG16			0xb000106a
374 #define HD64461_LCDBBTMDR_MASKENABLE		0x0020
375 #define HD64461_LCDBBTMDR_PATSELECT_SOLIDCOLOR	0x0010
376 #define HD64461_LCDBBTMDR_SHIFT		2
377 #define HD64461_LCDBBTMDR_MASK		0x3
378 #define HD64461_LCDBBTMDR(cr)						\
379 	(((cr) >> HD64461_LCDBBTMDR_SHIFT) & HD64461_LCDBBTMDR_MASK)
380 
381 #define HD64461_LCDBBTMDR_SET(cr, val)					\
382 	((cr) | (((val) << HD64461_LCDBBTMDR_SHIFT) &			\
383 	(HD64461_LCDBBTMDR_MASK << HD64461_LCDBBTMDR_SHIFT)))
384 #define HD64461_LCDBBTMDR_ON_SCREEN_TO_ON_SCREEN	0
385 #define HD64461_LCDBBTMDR_ON_SCREEN_TO_OFF_SCREEN	1
386 #define HD64461_LCDBBTMDR_OFF_SCREEN_TO_ON_SCREEN	3
387 
388 #define HD64461_LCDBBTMDR_SCANDRCT	0x0001
389 #define HD64461_LCDBBTMDR_SCANDRCT_RL_BT	0x1
390 #define HD64461_LCDBBTMDR_SCANDRCT_LR_TB	0x0
391 
392 /*
393  * BitBLT Function
394  */
395 #define HD64461_LCDC_BITBLT_SRCAND		0x0088
396 #define HD64461_LCDC_BITBLT_SRCCOPY		0x00cc
397 #define HD64461_LCDC_BITBLT_SRCINVERT		0x0066
398 #define HD64461_LCDC_BITBLT_SRCPAINT		0x00ee
399 #define HD64461_LCDC_BITBLT_PATCOPY		0x00f0
400 #define HD64461_LCDC_BITBLT_PATINVERT		0x005a
401 #define HD64461_LCDC_BITBLT_DSTINVERT		0x0055
402 #define HD64461_LCDC_BITBLT_BLACKNESS		0x0000
403 #define HD64461_LCDC_BITBLT_WHITENESS		0x00ff
404 #define HD64461_LCDC_BITBLT_MASKEDSRCCOPY	0xccaa
405