tx3912videoreg.h revision 1.1 1 /* $NetBSD: tx3912videoreg.h,v 1.1 1999/11/20 19:56:31 uch Exp $ */
2
3 /*
4 * Copyright (c) 1999, by UCHIYAMA Yasushi
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. The name of the developer may NOT be used to endorse or promote products
13 * derived from this software without specific prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
27 */
28 /*
29 * TOSHIBA TMPR3912/05, Philips PR31700 Video module register
30 */
31 #define TX3912_VIDEOCTRL1_REG 0x28
32 #define TX3912_VIDEOCTRL2_REG 0x2c
33 #define TX3912_VIDEOCTRL3_REG 0x30
34 #define TX3912_VIDEOCTRL4_REG 0x34
35 #define TX3912_VIDEOCTRL5_REG 0x38
36 #define TX3912_VIDEOCTRL6_REG 0x3c
37 #define TX3912_VIDEOCTRL7_REG 0x40
38 #define TX3912_VIDEOCTRL8_REG 0x44
39 #define TX3912_VIDEOCTRL9_REG 0x48
40 #define TX3912_VIDEOCTRL10_REG 0x4c
41 #define TX3912_VIDEOCTRL11_REG 0x50
42 #define TX3912_VIDEOCTRL12_REG 0x54
43 #define TX3912_VIDEOCTRL13_REG 0x58
44 #define TX3912_VIDEOCTRL14_REG 0x5c
45
46 #define TX3912_FRAMEBUFFER_ALIGNMENT 16
47 #define TX3912_FRAMEBUFFER_BOUNDARY 0x100000
48 #define TX3912_FRAMEBUFFER_MAX (2048 * 1024 * 8)
49
50 /*
51 * Video Control 1 Register
52 */
53 /* R */
54 #define TX3912_VIDEOCTRL1_LINECNT_SHIFT 22
55 #define TX3912_VIDEOCTRL1_LINECNT_MASK 0x3ff
56 #define TX3912_VIDEOCTRL1_LINECNT(cr) \
57 (((cr) >> TX3912_VIDEOCTRL1_LINECNT_SHIFT) & \
58 TX3912_VIDEOCTRL1_LINECNT_MASK)
59 /* R/W */
60 #define TX3912_VIDEOCTRL1_LOADDLY 0x00200000
61 /* R/W */
62 /*
63 * CP Rate = 36.864MHz / (BAUDVAL * 2 + 2)
64 */
65 #define TX3912_VIDEOCTRL1_BAUDVAL_SHIFT 16
66 #define TX3912_VIDEOCTRL1_BAUDVAL_MASK 0x1f
67 #define TX3912_VIDEOCTRL1_BAUDVAL(cr) \
68 (((cr) >> TX3912_VIDEOCTRL1_BAUDVAL_SHIFT) & \
69 TX3912_VIDEOCTRL1_BAUDVAL_MASK)
70 #define TX3912_VIDEOCTRL1_BAUDVAL_SET(cr, val) \
71 ((cr) | (((val) << TX3912_VIDEOCTRL1_BAUDVAL_SHIFT) & \
72 (TX3912_VIDEOCTRL1_BAUDVAL_MASK << TX3912_VIDEOCTRL1_BAUDVAL_SHIFT)))
73
74 /* R/W */
75 #define TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT 9
76 #define TX3912_VIDEOCTRL1_VIDDONEVAL_MASK 0x7f
77 #define TX3912_VIDEOCTRL1_VIDDONEVAL(cr) \
78 (((cr) >> TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT) & \
79 TX3912_VIDEOCTRL1_VIDDONEVAL_MASK)
80 #define TX3912_VIDEOCTRL1_VIDDONEVAL_SET(cr, val) \
81 ((cr) | (((val) << TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT) & \
82 (TX3912_VIDEOCTRL1_VIDDONEVAL_MASK << TX3912_VIDEOCTRL1_VIDDONEVAL_SHIFT)))
83 /* R/W */
84 #define TX3912_VIDEOCTRL1_ENFREEZEFRAME 0x00000100
85 /* R/W */
86 #define TX3912_VIDEOCTRL1_BITSEL_SHIFT 6
87 #define TX3912_VIDEOCTRL1_BITSEL_MASK 0x3
88 #define TX3912_VIDEOCTRL1_BITSEL(cr) \
89 (((cr) >> TX3912_VIDEOCTRL1_BITSEL_SHIFT) & \
90 TX3912_VIDEOCTRL1_BITSEL_MASK)
91 #define TX3912_VIDEOCTRL1_BITSEL_SET(cr, val) \
92 ((cr) | (((val) << TX3912_VIDEOCTRL1_BITSEL_SHIFT) & \
93 (TX3912_VIDEOCTRL1_BITSEL_MASK << TX3912_VIDEOCTRL1_BITSEL_SHIFT)))
94 #define TX3912_VIDEOCTRL1_BITSEL_8BITCOLOR 0x3
95 #define TX3912_VIDEOCTRL1_BITSEL_4BITGREYSCALE 0x2
96 #define TX3912_VIDEOCTRL1_BITSEL_2BITGREYSCALE 0x1
97 #define TX3912_VIDEOCTRL1_BITSEL_MONOCHROME 0x0
98 /* R/W */
99 #define TX3912_VIDEOCTRL1_DISPSPLIT 0x00000020
100 #define TX3912_VIDEOCTRL1_DISP8 0x00000010
101 #define TX3912_VIDEOCTRL1_DFMODE 0x00000008
102 #define TX3912_VIDEOCTRL1_INVVID 0x00000004
103 #define TX3912_VIDEOCTRL1_DISPON 0x00000002
104 #define TX3912_VIDEOCTRL1_ENVID 0x00000001
105
106 /*
107 * Video Control 2 Register
108 */
109 /* W */
110 #define TX3912_VIDEOCTRL2_VIDRATE_SHIFT 22
111 #define TX3912_VIDEOCTRL2_VIDRATE_MASK 0x3ff
112 #define TX3912_VIDEOCTRL2_VIDRATE(cr) \
113 (((cr) >> TX3912_VIDEOCTRL2_VIDRATE_SHIFT) & \
114 TX3912_VIDEOCTRL2_VIDRATE_MASK)
115 #define TX3912_VIDEOCTRL2_VIDRATE_SET(cr, val) \
116 ((cr) | (((val) << TX3912_VIDEOCTRL2_VIDRATE_SHIFT) & \
117 (TX3912_VIDEOCTRL2_VIDRATE_MASK << TX3912_VIDEOCTRL2_VIDRATE_SHIFT)))
118
119 /* W */
120 /*
121 * HORZVAL = (HorzSize4 - 1) for 4bit split or non-split LCD
122 * HORZVAL = (HorzSize8 - 1) for 8bit non-split LCD
123 */
124 #define TX3912_VIDEOCTRL2_HORZVAL_SHIFT 12
125 #define TX3912_VIDEOCTRL2_HORZVAL_MASK 0x1ff
126 #define TX3912_VIDEOCTRL2_HORZVAL(cr) \
127 (((cr) >> TX3912_VIDEOCTRL2_HORZVAL_SHIFT) & \
128 TX3912_VIDEOCTRL2_HORZVAL_MASK)
129 #define TX3912_VIDEOCTRL2_HORZVAL_SET(cr, val) \
130 ((cr) | (((val) << TX3912_VIDEOCTRL2_HORZVAL_SHIFT) & \
131 (TX3912_VIDEOCTRL2_HORZVAL_MASK << TX3912_VIDEOCTRL2_HORZVAL_SHIFT)))
132
133 /* W */
134 /*
135 * LINEVAL = (# of Lines - 1) for a non-split LCD
136 * LINEVAL = (# of Lins2 - 1) for a split LCD
137 */
138 #define TX3912_VIDEOCTRL2_LINEVAL_SHIFT 0
139 #define TX3912_VIDEOCTRL2_LINEVAL_MASK 0x3ff
140 #define TX3912_VIDEOCTRL2_LINEVAL(cr) \
141 (((cr) >> TX3912_VIDEOCTRL2_LINEVAL_SHIFT) & \
142 TX3912_VIDEOCTRL2_LINEVAL_MASK)
143 #define TX3912_VIDEOCTRL2_LINEVAL_SET(cr, val) \
144 ((cr) | (((val) << TX3912_VIDEOCTRL2_LINEVAL_SHIFT) & \
145 (TX3912_VIDEOCTRL2_LINEVAL_MASK << TX3912_VIDEOCTRL2_LINEVAL_SHIFT)))
146
147 /*
148 * Video Control 3 Register
149 */
150 /* W */
151 #define TX3912_VIDEOCTRL3_VIDBANK_SHIFT 20
152 #define TX3912_VIDEOCTRL3_VIDBANK_MASK 0xfff
153 #define TX3912_VIDEOCTRL3_VIDBANK(cr) \
154 (((cr) >> TX3912_VIDEOCTRL3_VIDBANK_SHIFT) & \
155 TX3912_VIDEOCTRL3_VIDBANK_MASK)
156 #define TX3912_VIDEOCTRL3_VIDBANK_SET(cr, val) \
157 ((cr) | (((val) << TX3912_VIDEOCTRL3_VIDBANK_SHIFT) & \
158 (TX3912_VIDEOCTRL3_VIDBANK_MASK << TX3912_VIDEOCTRL3_VIDBANK_SHIFT)))
159
160 /* W */
161 #define TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT 4
162 #define TX3912_VIDEOCTRL3_VIDBASEHI_MASK 0xffff
163 #define TX3912_VIDEOCTRL3_VIDBASEHI(cr) \
164 (((cr) >> TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT) & \
165 TX3912_VIDEOCTRL3_VIDBASEHI_MASK)
166 #define TX3912_VIDEOCTRL3_VIDBASEHI_SET(cr, val) \
167 ((cr) | (((val) << TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT) & \
168 (TX3912_VIDEOCTRL3_VIDBASEHI_MASK << TX3912_VIDEOCTRL3_VIDBASEHI_SHIFT)))
169
170
171 /*
172 * Video Control 4 Register
173 */
174 /* W */
175 /*
176 * DF Rate = LineRate / (DFVAL + 1)
177 */
178 #define TX3912_VIDEOCTRL4_DFVAL_SHIFT 24
179 #define TX3912_VIDEOCTRL4_DFVAL_MASK 0xff
180 #define TX3912_VIDEOCTRL4_DFVAL(cr) \
181 (((cr) >> TX3912_VIDEOCTRL4_DFVAL_SHIFT) & \
182 TX3912_VIDEOCTRL4_DFVAL_MASK)
183 #define TX3912_VIDEOCTRL4_DFVAL_SET(cr, val) \
184 ((cr) | (((val) << TX3912_VIDEOCTRL4_DFVAL_SHIFT) & \
185 (TX3912_VIDEOCTRL4_DFVAL_MASK << TX3912_VIDEOCTRL4_DFVAL_SHIFT)))
186
187 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT 20
188 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL_MASK 0xf
189 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL(cr) \
190 (((cr) >> TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT) & \
191 TX3912_VIDEOCTRL4_FRAMEMASKVAL_MASK)
192 #define TX3912_VIDEOCTRL4_FRAMEMASKVAL_SET(cr, val) \
193 ((cr) | (((val) << TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT) & \
194 (TX3912_VIDEOCTRL4_FRAMEMASKVAL_MASK << TX3912_VIDEOCTRL4_FRAMEMASKVAL_SHIFT)))
195
196 #define TX3912_VIDEOCTRL4_VIDBASELO_SHIFT 4
197 #define TX3912_VIDEOCTRL4_VIDBASELO_MASK 0xffff
198 #define TX3912_VIDEOCTRL4_VIDBASELO(cr) \
199 (((cr) >> TX3912_VIDEOCTRL4_VIDBASELO_SHIFT) & \
200 TX3912_VIDEOCTRL4_VIDBASELO_MASK)
201 #define TX3912_VIDEOCTRL4_VIDBASELO_SET(cr, val) \
202 ((cr) | (((val) << TX3912_VIDEOCTRL4_VIDBASELO_SHIFT) & \
203 (TX3912_VIDEOCTRL4_VIDBASELO_MASK << TX3912_VIDEOCTRL4_VIDBASELO_SHIFT)))
204
205 /*
206 * Video Control 5 Register
207 */
208 /* W */
209 /*
210 * TX3912_VIDEOCTRL5_REDSEL (31:0)
211 */
212
213 /*
214 * Video Control 6 Register
215 */
216 /* W */
217 /*
218 * TX3912_VIDEOCTRL6_GREENSEL (31:0)
219 */
220
221 /*
222 * Video Control 7 Register
223 */
224 /* W */
225 /*
226 * TX3912_VIDEOCTRL6_BLUESEL (31:0)
227 */
228
229 /*
230 * Video Control 8 Register
231 */
232 /* W */
233 /*
234 * 2_3 means `2 out of 3'
235 */
236 #define TX3912_VIDEOCTRL8_PAT2_3_SHIFT 0
237 #define TX3912_VIDEOCTRL8_PAT2_3_MASK 0xfff
238 #define TX3912_VIDEOCTRL8_PAT2_3(cr) \
239 (((cr) >> TX3912_VIDEOCTRL8_PAT2_3_SHIFT) & \
240 TX3912_VIDEOCTRL8_PAT2_3_MASK)
241 #define TX3912_VIDEOCTRL8_PAT2_3_SET(cr, val) \
242 ((cr) | (((val) << TX3912_VIDEOCTRL8_PAT2_3_SHIFT) & \
243 (TX3912_VIDEOCTRL8_PAT2_3_MASK << TX3912_VIDEOCTRL8_PAT2_3_SHIFT)))
244
245 /*
246 * Video Control 9 Register
247 */
248 /* W */
249 #define TX3912_VIDEOCTRL9_PAT3_4_SHIFT 16
250 #define TX3912_VIDEOCTRL9_PAT3_4_MASK 0xffff
251 #define TX3912_VIDEOCTRL9_PAT3_4(cr) \
252 (((cr) >> TX3912_VIDEOCTRL9_PAT3_4_SHIFT) & \
253 TX3912_VIDEOCTRL9_PAT3_4_MASK)
254 #define TX3912_VIDEOCTRL9_PAT3_4_SET(cr, val) \
255 ((cr) | (((val) << TX3912_VIDEOCTRL9_PAT3_4_SHIFT) & \
256 (TX3912_VIDEOCTRL9_PAT3_4_MASK << TX3912_VIDEOCTRL9_PAT3_4_SHIFT)))
257 /* W */
258 #define TX3912_VIDEOCTRL9_PAT2_4_SHIFT 0
259 #define TX3912_VIDEOCTRL9_PAT2_4_MASK 0xffff
260 #define TX3912_VIDEOCTRL9_PAT2_4(cr) \
261 (((cr) >> TX3912_VIDEOCTRL9_PAT2_4_SHIFT) & \
262 TX3912_VIDEOCTRL9_PAT2_4_MASK)
263 #define TX3912_VIDEOCTRL9_PAT2_4_SET(cr, val) \
264 ((cr) | (((val) << TX3912_VIDEOCTRL9_PAT2_4_SHIFT) & \
265 (TX3912_VIDEOCTRL9_PAT2_4_MASK << TX3912_VIDEOCTRL9_PAT2_4_SHIFT)))
266
267 /*
268 * Video Control 10 Register
269 */
270 /* W */
271 #define TX3912_VIDEOCTRL10_PAT4_5_SHIFT 0
272 #define TX3912_VIDEOCTRL10_PAT4_5_MASK 0xfffff
273 #define TX3912_VIDEOCTRL10_PAT4_5(cr) \
274 (((cr) >> TX3912_VIDEOCTRL10_PAT4_5_SHIFT) & \
275 TX3912_VIDEOCTRL10_PAT4_5_MASK)
276 #define TX3912_VIDEOCTRL10_PAT4_5_SET(cr, val) \
277 ((cr) | (((val) << TX3912_VIDEOCTRL10_PAT4_5_SHIFT) & \
278 (TX3912_VIDEOCTRL10_PAT4_5_MASK << TX3912_VIDEOCTRL10_PAT4_5_SHIFT)))
279
280 /*
281 * Video Control 11 Register
282 */
283 /* W */
284 #define TX3912_VIDEOCTRL11_PAT3_5_SHIFT 0
285 #define TX3912_VIDEOCTRL11_PAT3_5_MASK 0xfffff
286 #define TX3912_VIDEOCTRL11_PAT3_5(cr) \
287 (((cr) >> TX3912_VIDEOCTRL11_PAT3_5_SHIFT) & \
288 TX3912_VIDEOCTRL11_PAT3_5_MASK)
289 #define TX3912_VIDEOCTRL11_PAT3_5_SET(cr, val) \
290 ((cr) | (((val) << TX3912_VIDEOCTRL11_PAT3_5_SHIFT) & \
291 (TX3912_VIDEOCTRL11_PAT3_5_MASK << TX3912_VIDEOCTRL11_PAT3_5_SHIFT)))
292
293 /*
294 * Video Control 12 Register
295 */
296 /* W */
297 #define TX3912_VIDEOCTRL12_PAT6_7_SHIFT 0
298 #define TX3912_VIDEOCTRL12_PAT6_7_MASK 0xfffffff
299 #define TX3912_VIDEOCTRL12_PAT6_7(cr) \
300 (((cr) >> TX3912_VIDEOCTRL12_PAT6_7_SHIFT) & \
301 TX3912_VIDEOCTRL12_PAT6_7_MASK)
302 #define TX3912_VIDEOCTRL12_PAT6_7_SET(cr, val) \
303 ((cr) | (((val) << TX3912_VIDEOCTRL12_PAT6_7_SHIFT) & \
304 (TX3912_VIDEOCTRL12_PAT6_7_MASK << TX3912_VIDEOCTRL12_PAT6_7_SHIFT)))
305
306 /*
307 * Video Control 13 Register
308 */
309 /* W */
310 #define TX3912_VIDEOCTRL13_PAT5_7_SHIFT 0
311 #define TX3912_VIDEOCTRL13_PAT5_7_MASK 0xfffffff
312 #define TX3912_VIDEOCTRL13_PAT5_7(cr) \
313 (((cr) >> TX3912_VIDEOCTRL13_PAT5_7_SHIFT) & \
314 TX3912_VIDEOCTRL13_PAT5_7_MASK)
315 #define TX3912_VIDEOCTRL13_PAT5_7_SET(cr, val) \
316 ((cr) | (((val) << TX3912_VIDEOCTRL13_PAT5_7_SHIFT) & \
317 (TX3912_VIDEOCTRL13_PAT5_7_MASK << TX3912_VIDEOCTRL13_PAT5_7_SHIFT)))
318
319 /*
320 * Video Control 14 Register
321 */
322 /* W */
323 #define TX3912_VIDEOCTRL14_PAT4_7_SHIFT 0
324 #define TX3912_VIDEOCTRL14_PAT4_7_MASK 0xfffffff
325 #define TX3912_VIDEOCTRL14_PAT4_7(cr) \
326 (((cr) >> TX3912_VIDEOCTRL14_PAT4_7_SHIFT) & \
327 TX3912_VIDEOCTRL14_PAT4_7_MASK)
328 #define TX3912_VIDEOCTRL14_PAT4_7_SET(cr, val) \
329 ((cr) | (((val) << TX3912_VIDEOCTRL14_PAT4_7_SHIFT) & \
330 (TX3912_VIDEOCTRL14_PAT4_7_MASK << TX3912_VIDEOCTRL14_PAT4_7_SHIFT)))
331
332
333