1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * PKUnity UNIGFX Registers
4  */
5 
6 #define UDE_BASE      (PKUNITY_UNIGFX_BASE + 0x1400)
7 #define UGE_BASE      (PKUNITY_UNIGFX_BASE + 0x0000)
8 
9 /*
10  * command reg for UNIGFX DE
11  */
12 /*
13  * control reg UDE_CFG
14  */
15 #define UDE_CFG       (UDE_BASE + 0x0000)
16 /*
17  * framebuffer start address reg UDE_FSA
18  */
19 #define UDE_FSA       (UDE_BASE + 0x0004)
20 /*
21  * line size reg UDE_LS
22  */
23 #define UDE_LS        (UDE_BASE + 0x0008)
24 /*
25  * pitch size reg UDE_PS
26  */
27 #define UDE_PS        (UDE_BASE + 0x000C)
28 /*
29  * horizontal active time reg UDE_HAT
30  */
31 #define UDE_HAT       (UDE_BASE + 0x0010)
32 /*
33  * horizontal blank time reg UDE_HBT
34  */
35 #define UDE_HBT       (UDE_BASE + 0x0014)
36 /*
37  * horizontal sync time reg UDE_HST
38  */
39 #define UDE_HST       (UDE_BASE + 0x0018)
40 /*
41  * vertival active time reg UDE_VAT
42  */
43 #define UDE_VAT       (UDE_BASE + 0x001C)
44 /*
45  * vertival blank time reg UDE_VBT
46  */
47 #define UDE_VBT       (UDE_BASE + 0x0020)
48 /*
49  * vertival sync time reg UDE_VST
50  */
51 #define UDE_VST       (UDE_BASE + 0x0024)
52 /*
53  * cursor position UDE_CXY
54  */
55 #define UDE_CXY       (UDE_BASE + 0x0028)
56 /*
57  * cursor front color UDE_CC0
58  */
59 #define UDE_CC0       (UDE_BASE + 0x002C)
60 /*
61  * cursor background color UDE_CC1
62  */
63 #define UDE_CC1       (UDE_BASE + 0x0030)
64 /*
65  * video position UDE_VXY
66  */
67 #define UDE_VXY       (UDE_BASE + 0x0034)
68 /*
69  * video start address reg UDE_VSA
70  */
71 #define UDE_VSA       (UDE_BASE + 0x0040)
72 /*
73  * video size reg UDE_VS
74  */
75 #define UDE_VS        (UDE_BASE + 0x004C)
76 
77 /*
78  * command reg for UNIGFX GE
79  */
80 /*
81  * src xy reg UGE_SRCXY
82  */
83 #define UGE_SRCXY     (UGE_BASE + 0x0000)
84 /*
85  * dst xy reg UGE_DSTXY
86  */
87 #define UGE_DSTXY     (UGE_BASE + 0x0004)
88 /*
89  * pitch reg UGE_PITCH
90  */
91 #define UGE_PITCH     (UGE_BASE + 0x0008)
92 /*
93  * src start reg UGE_SRCSTART
94  */
95 #define UGE_SRCSTART  (UGE_BASE + 0x000C)
96 /*
97  * dst start reg UGE_DSTSTART
98  */
99 #define UGE_DSTSTART  (UGE_BASE + 0x0010)
100 /*
101  * width height reg UGE_WIDHEIGHT
102  */
103 #define UGE_WIDHEIGHT (UGE_BASE + 0x0014)
104 /*
105  * rop alpah reg UGE_ROPALPHA
106  */
107 #define UGE_ROPALPHA  (UGE_BASE + 0x0018)
108 /*
109  * front color UGE_FCOLOR
110  */
111 #define UGE_FCOLOR    (UGE_BASE + 0x001C)
112 /*
113  * background color UGE_BCOLOR
114  */
115 #define UGE_BCOLOR    (UGE_BASE + 0x0020)
116 /*
117  * src color key for high value UGE_SCH
118  */
119 #define UGE_SCH       (UGE_BASE + 0x0024)
120 /*
121  * dst color key for high value UGE_DCH
122  */
123 #define UGE_DCH       (UGE_BASE + 0x0028)
124 /*
125  * src color key for low value UGE_SCL
126  */
127 #define UGE_SCL       (UGE_BASE + 0x002C)
128 /*
129  * dst color key for low value UGE_DCL
130  */
131 #define UGE_DCL       (UGE_BASE + 0x0030)
132 /*
133  * clip 0 reg UGE_CLIP0
134  */
135 #define UGE_CLIP0     (UGE_BASE + 0x0034)
136 /*
137  * clip 1 reg UGE_CLIP1
138  */
139 #define UGE_CLIP1     (UGE_BASE + 0x0038)
140 /*
141  * command reg UGE_COMMAND
142  */
143 #define UGE_COMMAND   (UGE_BASE + 0x003C)
144 /*
145  * pattern 0 UGE_P0
146  */
147 #define UGE_P0        (UGE_BASE + 0x0040)
148 #define UGE_P1        (UGE_BASE + 0x0044)
149 #define UGE_P2        (UGE_BASE + 0x0048)
150 #define UGE_P3        (UGE_BASE + 0x004C)
151 #define UGE_P4        (UGE_BASE + 0x0050)
152 #define UGE_P5        (UGE_BASE + 0x0054)
153 #define UGE_P6        (UGE_BASE + 0x0058)
154 #define UGE_P7        (UGE_BASE + 0x005C)
155 #define UGE_P8        (UGE_BASE + 0x0060)
156 #define UGE_P9        (UGE_BASE + 0x0064)
157 #define UGE_P10       (UGE_BASE + 0x0068)
158 #define UGE_P11       (UGE_BASE + 0x006C)
159 #define UGE_P12       (UGE_BASE + 0x0070)
160 #define UGE_P13       (UGE_BASE + 0x0074)
161 #define UGE_P14       (UGE_BASE + 0x0078)
162 #define UGE_P15       (UGE_BASE + 0x007C)
163 #define UGE_P16       (UGE_BASE + 0x0080)
164 #define UGE_P17       (UGE_BASE + 0x0084)
165 #define UGE_P18       (UGE_BASE + 0x0088)
166 #define UGE_P19       (UGE_BASE + 0x008C)
167 #define UGE_P20       (UGE_BASE + 0x0090)
168 #define UGE_P21       (UGE_BASE + 0x0094)
169 #define UGE_P22       (UGE_BASE + 0x0098)
170 #define UGE_P23       (UGE_BASE + 0x009C)
171 #define UGE_P24       (UGE_BASE + 0x00A0)
172 #define UGE_P25       (UGE_BASE + 0x00A4)
173 #define UGE_P26       (UGE_BASE + 0x00A8)
174 #define UGE_P27       (UGE_BASE + 0x00AC)
175 #define UGE_P28       (UGE_BASE + 0x00B0)
176 #define UGE_P29       (UGE_BASE + 0x00B4)
177 #define UGE_P30       (UGE_BASE + 0x00B8)
178 #define UGE_P31       (UGE_BASE + 0x00BC)
179 
180 #define UDE_CFG_DST_MASK	FMASK(2, 8)
181 #define UDE_CFG_DST8            FIELD(0x0, 2, 8)
182 #define UDE_CFG_DST16           FIELD(0x1, 2, 8)
183 #define UDE_CFG_DST24           FIELD(0x2, 2, 8)
184 #define UDE_CFG_DST32           FIELD(0x3, 2, 8)
185 
186 /*
187  * GDEN enable UDE_CFG_GDEN_ENABLE
188  */
189 #define UDE_CFG_GDEN_ENABLE     FIELD(1, 1, 3)
190 /*
191  * VDEN enable UDE_CFG_VDEN_ENABLE
192  */
193 #define UDE_CFG_VDEN_ENABLE     FIELD(1, 1, 4)
194 /*
195  * CDEN enable UDE_CFG_CDEN_ENABLE
196  */
197 #define UDE_CFG_CDEN_ENABLE     FIELD(1, 1, 5)
198 /*
199  * TIMEUP enable UDE_CFG_TIMEUP_ENABLE
200  */
201 #define UDE_CFG_TIMEUP_ENABLE   FIELD(1, 1, 6)
202