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
|
/*
* PKUnity UNIGFX Registers
*/
#define UDE_BASE (PKUNITY_UNIGFX_BASE + 0x1400)
#define UGE_BASE (PKUNITY_UNIGFX_BASE + 0x0000)
/*
* command reg for UNIGFX DE
*/
/*
* control reg UDE_CFG
*/
#define UDE_CFG (UDE_BASE + 0x0000)
/*
* framebuffer start address reg UDE_FSA
*/
#define UDE_FSA (UDE_BASE + 0x0004)
/*
* line size reg UDE_LS
*/
#define UDE_LS (UDE_BASE + 0x0008)
/*
* pitch size reg UDE_PS
*/
#define UDE_PS (UDE_BASE + 0x000C)
/*
* horizontal active time reg UDE_HAT
*/
#define UDE_HAT (UDE_BASE + 0x0010)
/*
* horizontal blank time reg UDE_HBT
*/
#define UDE_HBT (UDE_BASE + 0x0014)
/*
* horizontal sync time reg UDE_HST
*/
#define UDE_HST (UDE_BASE + 0x0018)
/*
* vertival active time reg UDE_VAT
*/
#define UDE_VAT (UDE_BASE + 0x001C)
/*
* vertival blank time reg UDE_VBT
*/
#define UDE_VBT (UDE_BASE + 0x0020)
/*
* vertival sync time reg UDE_VST
*/
#define UDE_VST (UDE_BASE + 0x0024)
/*
* cursor position UDE_CXY
*/
#define UDE_CXY (UDE_BASE + 0x0028)
/*
* cursor front color UDE_CC0
*/
#define UDE_CC0 (UDE_BASE + 0x002C)
/*
* cursor background color UDE_CC1
*/
#define UDE_CC1 (UDE_BASE + 0x0030)
/*
* video position UDE_VXY
*/
#define UDE_VXY (UDE_BASE + 0x0034)
/*
* video start address reg UDE_VSA
*/
#define UDE_VSA (UDE_BASE + 0x0040)
/*
* video size reg UDE_VS
*/
#define UDE_VS (UDE_BASE + 0x004C)
/*
* command reg for UNIGFX GE
*/
/*
* src xy reg UGE_SRCXY
*/
#define UGE_SRCXY (UGE_BASE + 0x0000)
/*
* dst xy reg UGE_DSTXY
*/
#define UGE_DSTXY (UGE_BASE + 0x0004)
/*
* pitch reg UGE_PITCH
*/
#define UGE_PITCH (UGE_BASE + 0x0008)
/*
* src start reg UGE_SRCSTART
*/
#define UGE_SRCSTART (UGE_BASE + 0x000C)
/*
* dst start reg UGE_DSTSTART
*/
#define UGE_DSTSTART (UGE_BASE + 0x0010)
/*
* width height reg UGE_WIDHEIGHT
*/
#define UGE_WIDHEIGHT (UGE_BASE + 0x0014)
/*
* rop alpah reg UGE_ROPALPHA
*/
#define UGE_ROPALPHA (UGE_BASE + 0x0018)
/*
* front color UGE_FCOLOR
*/
#define UGE_FCOLOR (UGE_BASE + 0x001C)
/*
* background color UGE_BCOLOR
*/
#define UGE_BCOLOR (UGE_BASE + 0x0020)
/*
* src color key for high value UGE_SCH
*/
#define UGE_SCH (UGE_BASE + 0x0024)
/*
* dst color key for high value UGE_DCH
*/
#define UGE_DCH (UGE_BASE + 0x0028)
/*
* src color key for low value UGE_SCL
*/
#define UGE_SCL (UGE_BASE + 0x002C)
/*
* dst color key for low value UGE_DCL
*/
#define UGE_DCL (UGE_BASE + 0x0030)
/*
* clip 0 reg UGE_CLIP0
*/
#define UGE_CLIP0 (UGE_BASE + 0x0034)
/*
* clip 1 reg UGE_CLIP1
*/
#define UGE_CLIP1 (UGE_BASE + 0x0038)
/*
* command reg UGE_COMMAND
*/
#define UGE_COMMAND (UGE_BASE + 0x003C)
/*
* pattern 0 UGE_P0
*/
#define UGE_P0 (UGE_BASE + 0x0040)
#define UGE_P1 (UGE_BASE + 0x0044)
#define UGE_P2 (UGE_BASE + 0x0048)
#define UGE_P3 (UGE_BASE + 0x004C)
#define UGE_P4 (UGE_BASE + 0x0050)
#define UGE_P5 (UGE_BASE + 0x0054)
#define UGE_P6 (UGE_BASE + 0x0058)
#define UGE_P7 (UGE_BASE + 0x005C)
#define UGE_P8 (UGE_BASE + 0x0060)
#define UGE_P9 (UGE_BASE + 0x0064)
#define UGE_P10 (UGE_BASE + 0x0068)
#define UGE_P11 (UGE_BASE + 0x006C)
#define UGE_P12 (UGE_BASE + 0x0070)
#define UGE_P13 (UGE_BASE + 0x0074)
#define UGE_P14 (UGE_BASE + 0x0078)
#define UGE_P15 (UGE_BASE + 0x007C)
#define UGE_P16 (UGE_BASE + 0x0080)
#define UGE_P17 (UGE_BASE + 0x0084)
#define UGE_P18 (UGE_BASE + 0x0088)
#define UGE_P19 (UGE_BASE + 0x008C)
#define UGE_P20 (UGE_BASE + 0x0090)
#define UGE_P21 (UGE_BASE + 0x0094)
#define UGE_P22 (UGE_BASE + 0x0098)
#define UGE_P23 (UGE_BASE + 0x009C)
#define UGE_P24 (UGE_BASE + 0x00A0)
#define UGE_P25 (UGE_BASE + 0x00A4)
#define UGE_P26 (UGE_BASE + 0x00A8)
#define UGE_P27 (UGE_BASE + 0x00AC)
#define UGE_P28 (UGE_BASE + 0x00B0)
#define UGE_P29 (UGE_BASE + 0x00B4)
#define UGE_P30 (UGE_BASE + 0x00B8)
#define UGE_P31 (UGE_BASE + 0x00BC)
#define UDE_CFG_DST_MASK FMASK(2, 8)
#define UDE_CFG_DST8 FIELD(0x0, 2, 8)
#define UDE_CFG_DST16 FIELD(0x1, 2, 8)
#define UDE_CFG_DST24 FIELD(0x2, 2, 8)
#define UDE_CFG_DST32 FIELD(0x3, 2, 8)
/*
* GDEN enable UDE_CFG_GDEN_ENABLE
*/
#define UDE_CFG_GDEN_ENABLE FIELD(1, 1, 3)
/*
* VDEN enable UDE_CFG_VDEN_ENABLE
*/
#define UDE_CFG_VDEN_ENABLE FIELD(1, 1, 4)
/*
* CDEN enable UDE_CFG_CDEN_ENABLE
*/
#define UDE_CFG_CDEN_ENABLE FIELD(1, 1, 5)
/*
* TIMEUP enable UDE_CFG_TIMEUP_ENABLE
*/
#define UDE_CFG_TIMEUP_ENABLE FIELD(1, 1, 6)
|