aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/mb862xx/mb862xxfb_accel.h
blob: 96a2dfef0f60a5c14ca8227c67406a75a919467b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#ifndef __MB826XXFB_ACCEL_H__
#define __MB826XXFB_ACCEL_H__

/* registers */
#define GDC_GEO_REG_INPUT_FIFO 0x00000400L

/* Special Registers */
#define GDC_REG_CTRL                0x00000400L
#define GDC_REG_FIFO_STATUS         0x00000404L
#define GDC_REG_FIFO_COUNT          0x00000408L
#define GDC_REG_SETUP_STATUS        0x0000040CL
#define GDC_REG_DDA_STATUS          0x00000410L
#define GDC_REG_ENGINE_STATUS       0x00000414L
#define GDC_REG_ERROR_STATUS        0x00000418L
#define GDC_REG_MODE_MISC           0x00000420L	/* MDR0 */
#define GDC_REG_MODE_LINE           0x00000424L	/* MDR1 */
#define GDC_REG_MODE_POLYGON        0x00000428L	/* MDR2 */
#define GDC_REG_MODE_TEXTURE        0x0000042CL	/* MDR3 */
#define GDC_REG_MODE_BITMAP         0x00000430L	/* MDR4 */
#define GDC_REG_MODE_EXTENSION      0x0000043CL	/* MDR7 */

/* Configuration Registers */
#define GDC_REG_DRAW_BASE           0x00000440L
#define GDC_REG_X_RESOLUTION        0x00000444L
#define GDC_REG_Z_BASE              0x00000448L
#define GDC_REG_TEXTURE_BASE        0x0000044CL
#define GDC_REG_POLYGON_FLAG_BASE   0x00000450L
#define GDC_REG_CLIP_XMIN           0x00000454L
#define GDC_REG_CLIP_XMAX           0x00000458L
#define GDC_REG_CLIP_YMIN           0x0000045CL
#define GDC_REG_CLIP_YMAX           0x00000460L
#define GDC_REG_TEXURE_SIZE         0x00000464L
#define GDC_REG_TILE_SIZE           0x00000468L
#define GDC_REG_TEX_BUF_OFFSET      0x0000046CL

/* for MB86293 or later */
#define GDC_REG_ALPHA_MAP_BASE      0x00000474L	/* ABR */

/* Constant Registers */
#define GDC_REG_FOREGROUND_COLOR    0x00000480L
#define GDC_REG_BACKGROUND_COLOR    0x00000484L
#define GDC_REG_ALPHA               0x00000488L
#define GDC_REG_LINE_PATTERN        0x0000048CL
#define GDC_REG_TEX_BORDER_COLOR    0x00000494L
#define GDC_REG_LINE_PATTERN_OFFSET 0x000003E0L

/* Coomand Code */
#define GDC_CMD_PIXEL                   0x00000000L
#define GDC_CMD_PIXEL_Z                 0x00000001L

#define GDC_CMD_X_VECTOR                0x00000020L
#define GDC_CMD_Y_VECTOR                0x00000021L
#define GDC_CMD_X_VECTOR_NOEND          0x00000022L
#define GDC_CMD_Y_VECTOR_NOEND          0x00000023L
#define GDC_CMD_X_VECTOR_BLPO           0x00000024L
#define GDC_CMD_Y_VECTOR_BLPO           0x00000025L
#define GDC_CMD_X_VECTOR_NOEND_BLPO     0x00000026L
#define GDC_CMD_Y_VECTOR_NOEND_BLPO     0x00000027L
#define GDC_CMD_AA_X_VECTOR             0x00000028L
#define GDC_CMD_AA_Y_VECTOR             0x00000029L
#define GDC_CMD_AA_X_VECTOR_NOEND       0x0000002AL
#define GDC_CMD_AA_Y_VECTOR_NOEND       0x0000002BL
#define GDC_CMD_AA_X_VECTOR_BLPO        0x0000002CL
#define GDC_CMD_AA_Y_VECTOR_BLPO        0x0000002DL
#define GDC_CMD_AA_X_VECTOR_NOEND_BLPO  0x0000002EL
#define GDC_CMD_AA_Y_VECTOR_NOEND_BLPO  0x0000002FL

#define GDC_CMD_0_VECTOR                0x00000030L
#define GDC_CMD_1_VECTOR                0x00000031L
#define GDC_CMD_0_VECTOR_NOEND          0x00000032L
#define GDC_CMD_1_VECTOR_NOEND          0x00000033L
#define GDC_CMD_0_VECTOR_BLPO           0x00000034L
#define GDC_CMD_1_VECTOR_BLPO           0x00000035L
#define GDC_CMD_0_VECTOR_NOEND_BLPO     0x00000036L
#define GDC_CMD_1_VECTOR_NOEND_BLPO     0x00000037L
#define GDC_CMD_AA_0_VECTOR             0x00000038L
#define GDC_CMD_AA_1_VECTOR             0x00000039L
#define GDC_CMD_AA_0_VECTOR_NOEND       0x0000003AL
#define GDC_CMD_AA_1_VECTOR_NOEND       0x0000003BL
#define GDC_CMD_AA_0_VECTOR_BLPO        0x0000003CL
#define GDC_CMD_AA_1_VECTOR_BLPO        0x0000003DL
#define GDC_CMD_AA_0_VECTOR_NOEND_BLPO  0x0000003EL
#define GDC_CMD_AA_1_VECTOR_NOEND_BLPO  0x0000003FL

#define GDC_CMD_BLT_FILL                0x00000041L
#define GDC_CMD_BLT_DRAW                0x00000042L
#define GDC_CMD_BITMAP                  0x00000043L
#define GDC_CMD_BLTCOPY_TOP_LEFT        0x00000044L
#define GDC_CMD_BLTCOPY_TOP_RIGHT       0x00000045L
#define GDC_CMD_BLTCOPY_BOTTOM_LEFT     0x00000046L
#define GDC_CMD_BLTCOPY_BOTTOM_RIGHT    0x00000047L
#define GDC_CMD_LOAD_TEXTURE            0x00000048L
#define GDC_CMD_LOAD_TILE               0x00000049L

#define GDC_CMD_TRAP_RIGHT              0x00000060L
#define GDC_CMD_TRAP_LEFT               0x00000061L
#define GDC_CMD_TRIANGLE_FAN            0x00000062L
#define GDC_CMD_FLAG_TRIANGLE_FAN       0x00000063L

#define GDC_CMD_FLUSH_FB                0x000000C1L
#define GDC_CMD_FLUSH_Z                 0x000000C2L

#define GDC_CMD_POLYGON_BEGIN           0x000000E0L
#define GDC_CMD_POLYGON_END             0x000000E1L
#define GDC_CMD_CLEAR_POLY_FLAG         0x000000E2L
#define GDC_CMD_NORMAL                  0x000000FFL

#define GDC_CMD_VECTOR_BLPO_FLAG        0x00040000L
#define GDC_CMD_FAST_VECTOR_BLPO_FLAG   0x00000004L

/* for MB86293 or later */
#define GDC_CMD_MDR1                            0x00000000L
#define GDC_CMD_MDR1S                           0x00000002L
#define GDC_CMD_MDR1B                           0x00000004L
#define GDC_CMD_MDR2                            0x00000001L
#define GDC_CMD_MDR2S                           0x00000003L
#define GDC_CMD_MDR2TL                          0x00000007L
#define GDC_CMD_GMDR1E                          0x00000010L
#define GDC_CMD_GMDR2E                          0x00000020L
#define GDC_CMD_OVERLAP_SHADOW_XY               0x00000000L
#define GDC_CMD_OVERLAP_SHADOW_XY_COMPOSITION   0x00000001L
#define GDC_CMD_OVERLAP_Z_PACKED_ONBS           0x00000007L
#define GDC_CMD_OVERLAP_Z_ORIGIN                0x00000000L
#define GDC_CMD_OVERLAP_Z_NON_TOPLEFT           0x00000001L
#define GDC_CMD_OVERLAP_Z_BORDER                0x00000002L
#define GDC_CMD_OVERLAP_Z_SHADOW                0x00000003L
#define GDC_CMD_BLTCOPY_ALT_ALPHA               0x00000000L	/* Reserverd */
#define GDC_CMD_DC_LOGOUT                       0x00000000L	/* Reserverd */
#define GDC_CMD_BODY_FORE_COLOR                 0x00000000L
#define GDC_CMD_BODY_BACK_COLOR                 0x00000001L
#define GDC_CMD_SHADOW_FORE_COLOR               0x00000002L
#define GDC_CMD_SHADOW_BACK_COLOR               0x00000003L
#define GDC_CMD_BORDER_FORE_COLOR               0x00000004L
#define GDC_CMD_BORDER_BACK_COLOR               0x00000005L

/* Type Code Table */
#define GDC_TYPE_G_NOP                                  0x00000020L
#define GDC_TYPE_G_BEGIN                                0x00000021L
#define GDC_TYPE_G_BEGINCONT                            0x00000022L
#define GDC_TYPE_G_END                                  0x00000023L
#define GDC_TYPE_G_VERTEX                               0x00000030L
#define GDC_TYPE_G_VERTEXLOG                            0x00000032L
#define GDC_TYPE_G_VERTEXNOPLOG                         0x00000033L
#define GDC_TYPE_G_INIT                                 0x00000040L
#define GDC_TYPE_G_VIEWPORT                             0x00000041L
#define GDC_TYPE_G_DEPTHRANGE                           0x00000042L
#define GDC_TYPE_G_LOADMATRIX                           0x00000043L
#define GDC_TYPE_G_VIEWVOLUMEXYCLIP                     0x00000044L
#define GDC_TYPE_G_VIEWVOLUMEZCLIP                      0x00000045L
#define GDC_TYPE_G_VIEWVOLUMEWCLIP                      0x00000046L
#define GDC_TYPE_SETLVERTEX2I                           0x00000072L
#define GDC_TYPE_SETLVERTEX2IP                          0x00000073L
#define GDC_TYPE_SETMODEREGISTER                        0x000000C0L
#define GDC_TYPE_SETGMODEREGISTER                       0x000000C1L
#define GDC_TYPE_OVERLAPXYOFFT                          0x000000C8L
#define GDC_TYPE_OVERLAPZOFFT                           0x000000C9L
#define GDC_TYPE_DC_LOGOUTADDR                          0x000000CCL
#define GDC_TYPE_SETCOLORREGISTER                       0x000000CEL
#define GDC_TYPE_G_BEGINE                               0x000000E1L
#define GDC_TYPE_G_BEGINCONTE                           0x000000E2L
#define GDC_TYPE_G_ENDE                                 0x000000E3L
#define GDC_TYPE_DRAWPIXEL                              0x00000000L
#define GDC_TYPE_DRAWPIXELZ                             0x00000001L
#define GDC_TYPE_DRAWLINE                               0x00000002L
#define GDC_TYPE_DRAWLINE2I                             0x00000003L
#define GDC_TYPE_DRAWLINE2IP                            0x00000004L
#define GDC_TYPE_DRAWTRAP                               0x00000005L
#define GDC_TYPE_DRAWVERTEX2I                           0x00000006L
#define GDC_TYPE_DRAWVERTEX2IP                          0x00000007L
#define GDC_TYPE_DRAWRECTP                              0x00000009L
#define GDC_TYPE_DRAWBITMAPP                            0x0000000BL
#define GDC_TYPE_BLTCOPYP                               0x0000000DL
#define GDC_TYPE_BLTCOPYALTERNATEP                      0x0000000FL
#define GDC_TYPE_LOADTEXTUREP                           0x00000011L
#define GDC_TYPE_BLTTEXTUREP                            0x00000013L
#define GDC_TYPE_BLTCOPYALTALPHABLENDP                  0x0000001FL
#define GDC_TYPE_SETVERTEX2I                            0x00000070L
#define GDC_TYPE_SETVERTEX2IP                           0x00000071L
#define GDC_TYPE_DRAW                                   0x000000F0L
#define GDC_TYPE_SETREGISTER                            0x000000F1L
#define GDC_TYPE_SYNC                                   0x000000FCL
#define GDC_TYPE_INTERRUPT                              0x000000FDL
#define GDC_TYPE_NOP                                    0x0

/* Raster operation */
#define GDC_ROP_CLEAR                   0x0000
#define GDC_ROP_AND                     0x0001
#define GDC_ROP_AND_REVERSE             0x0002
#define GDC_ROP_COPY                    0x0003
#define GDC_ROP_AND_INVERTED            0x0004
#define GDC_ROP_NOP                     0x0005
#define GDC_ROP_XOR                     0x0006
#define GDC_ROP_OR                      0x0007
#define GDC_ROP_NOR                     0x0008
#define GDC_ROP_EQUIV                   0x0009
#define GDC_ROP_INVERT                  0x000A
#define GDC_ROP_OR_REVERSE              0x000B
#define GDC_ROP_COPY_INVERTED           0x000C
#define GDC_ROP_OR_INVERTED             0x000D
#define GDC_ROP_NAND                    0x000E
#define GDC_ROP_SET                     0x000F

#endif