blob: d45f010d75d00771157449e622bba8740f71bacf [file] [log] [blame]
Archit Taneja9b372c22011-05-06 11:45:49 +05301/*
2 * linux/drivers/video/omap2/dss/dispc.h
3 *
4 * Copyright (C) 2011 Texas Instruments
5 * Author: Archit Taneja <archit@ti.com>
6 *
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License version 2 as published by
10 * the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef __OMAP2_DISPC_REG_H
22#define __OMAP2_DISPC_REG_H
23
Archit Taneja702d1442011-05-06 11:45:50 +053024/* DISPC common registers */
Archit Taneja55978cc2011-05-06 11:45:51 +053025#define DISPC_REVISION 0x0000
26#define DISPC_SYSCONFIG 0x0010
27#define DISPC_SYSSTATUS 0x0014
28#define DISPC_IRQSTATUS 0x0018
29#define DISPC_IRQENABLE 0x001C
30#define DISPC_CONTROL 0x0040
31#define DISPC_CONFIG 0x0044
32#define DISPC_CAPABLE 0x0048
33#define DISPC_LINE_STATUS 0x005C
34#define DISPC_LINE_NUMBER 0x0060
35#define DISPC_GLOBAL_ALPHA 0x0074
36#define DISPC_CONTROL2 0x0238
37#define DISPC_CONFIG2 0x0620
38#define DISPC_DIVISOR 0x0804
Archit Taneja9b372c22011-05-06 11:45:49 +053039
40/* DISPC overlay registers */
Archit Taneja55978cc2011-05-06 11:45:51 +053041#define DISPC_OVL_BA0(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053042 DISPC_BA0_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053043#define DISPC_OVL_BA1(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053044 DISPC_BA1_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053045#define DISPC_OVL_POSITION(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053046 DISPC_POS_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053047#define DISPC_OVL_SIZE(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053048 DISPC_SIZE_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053049#define DISPC_OVL_ATTRIBUTES(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053050 DISPC_ATTR_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053051#define DISPC_OVL_FIFO_THRESHOLD(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053052 DISPC_FIFO_THRESH_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053053#define DISPC_OVL_FIFO_SIZE_STATUS(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053054 DISPC_FIFO_SIZE_STATUS_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053055#define DISPC_OVL_ROW_INC(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053056 DISPC_ROW_INC_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053057#define DISPC_OVL_PIXEL_INC(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053058 DISPC_PIX_INC_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053059#define DISPC_OVL_WINDOW_SKIP(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053060 DISPC_WINDOW_SKIP_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053061#define DISPC_OVL_TABLE_BA(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053062 DISPC_TABLE_BA_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053063#define DISPC_OVL_FIR(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053064 DISPC_FIR_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053065#define DISPC_OVL_PICTURE_SIZE(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053066 DISPC_PIC_SIZE_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053067#define DISPC_OVL_ACCU0(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053068 DISPC_ACCU0_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053069#define DISPC_OVL_ACCU1(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053070 DISPC_ACCU1_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053071#define DISPC_OVL_FIR_COEF_H(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053072 DISPC_FIR_COEF_H_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053073#define DISPC_OVL_FIR_COEF_HV(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053074 DISPC_FIR_COEF_HV_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053075#define DISPC_OVL_CONV_COEF(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053076 DISPC_CONV_COEF_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053077#define DISPC_OVL_FIR_COEF_V(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053078 DISPC_FIR_COEF_V_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053079#define DISPC_OVL_PRELOAD(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053080 DISPC_PRELOAD_OFFSET(n))
81
Archit Taneja702d1442011-05-06 11:45:50 +053082/* DISPC manager/channel specific registers */
Archit Taneja55978cc2011-05-06 11:45:51 +053083static inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +053084{
85 switch (channel) {
86 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +053087 return 0x004C;
Archit Taneja702d1442011-05-06 11:45:50 +053088 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +053089 return 0x0050;
Archit Taneja702d1442011-05-06 11:45:50 +053090 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +053091 return 0x03AC;
Archit Taneja702d1442011-05-06 11:45:50 +053092 default:
93 BUG();
94 }
95}
96
Archit Taneja55978cc2011-05-06 11:45:51 +053097static inline u16 DISPC_TRANS_COLOR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +053098{
99 switch (channel) {
100 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530101 return 0x0054;
Archit Taneja702d1442011-05-06 11:45:50 +0530102 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530103 return 0x0058;
Archit Taneja702d1442011-05-06 11:45:50 +0530104 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530105 return 0x03B0;
Archit Taneja702d1442011-05-06 11:45:50 +0530106 default:
107 BUG();
108 }
109}
110
Archit Taneja55978cc2011-05-06 11:45:51 +0530111static inline u16 DISPC_TIMING_H(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530112{
113 switch (channel) {
114 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530115 return 0x0064;
Archit Taneja702d1442011-05-06 11:45:50 +0530116 case OMAP_DSS_CHANNEL_DIGIT:
117 BUG();
118 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530119 return 0x0400;
Archit Taneja702d1442011-05-06 11:45:50 +0530120 default:
121 BUG();
122 }
123}
124
Archit Taneja55978cc2011-05-06 11:45:51 +0530125static inline u16 DISPC_TIMING_V(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530126{
127 switch (channel) {
128 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530129 return 0x0068;
Archit Taneja702d1442011-05-06 11:45:50 +0530130 case OMAP_DSS_CHANNEL_DIGIT:
131 BUG();
132 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530133 return 0x0404;
Archit Taneja702d1442011-05-06 11:45:50 +0530134 default:
135 BUG();
136 }
137}
138
Archit Taneja55978cc2011-05-06 11:45:51 +0530139static inline u16 DISPC_POL_FREQ(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530140{
141 switch (channel) {
142 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530143 return 0x006C;
Archit Taneja702d1442011-05-06 11:45:50 +0530144 case OMAP_DSS_CHANNEL_DIGIT:
145 BUG();
146 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530147 return 0x0408;
Archit Taneja702d1442011-05-06 11:45:50 +0530148 default:
149 BUG();
150 }
151}
152
Archit Taneja55978cc2011-05-06 11:45:51 +0530153static inline u16 DISPC_DIVISORo(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530154{
155 switch (channel) {
156 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530157 return 0x0070;
Archit Taneja702d1442011-05-06 11:45:50 +0530158 case OMAP_DSS_CHANNEL_DIGIT:
159 BUG();
160 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530161 return 0x040C;
Archit Taneja702d1442011-05-06 11:45:50 +0530162 default:
163 BUG();
164 }
165}
166
167/* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */
Archit Taneja55978cc2011-05-06 11:45:51 +0530168static inline u16 DISPC_SIZE_MGR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530169{
170 switch (channel) {
171 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530172 return 0x007C;
Archit Taneja702d1442011-05-06 11:45:50 +0530173 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530174 return 0x0078;
Archit Taneja702d1442011-05-06 11:45:50 +0530175 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530176 return 0x03CC;
Archit Taneja702d1442011-05-06 11:45:50 +0530177 default:
178 BUG();
179 }
180}
181
Archit Taneja55978cc2011-05-06 11:45:51 +0530182static inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530183{
184 switch (channel) {
185 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530186 return 0x01D4;
Archit Taneja702d1442011-05-06 11:45:50 +0530187 case OMAP_DSS_CHANNEL_DIGIT:
188 BUG();
189 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530190 return 0x03C0;
Archit Taneja702d1442011-05-06 11:45:50 +0530191 default:
192 BUG();
193 }
194}
195
Archit Taneja55978cc2011-05-06 11:45:51 +0530196static inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530197{
198 switch (channel) {
199 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530200 return 0x01D8;
Archit Taneja702d1442011-05-06 11:45:50 +0530201 case OMAP_DSS_CHANNEL_DIGIT:
202 BUG();
203 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530204 return 0x03C4;
Archit Taneja702d1442011-05-06 11:45:50 +0530205 default:
206 BUG();
207 }
208}
209
Archit Taneja55978cc2011-05-06 11:45:51 +0530210static inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530211{
212 switch (channel) {
213 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530214 return 0x01DC;
Archit Taneja702d1442011-05-06 11:45:50 +0530215 case OMAP_DSS_CHANNEL_DIGIT:
216 BUG();
217 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530218 return 0x03C8;
Archit Taneja702d1442011-05-06 11:45:50 +0530219 default:
220 BUG();
221 }
222}
223
Archit Taneja55978cc2011-05-06 11:45:51 +0530224static inline u16 DISPC_CPR_COEF_R(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530225{
226 switch (channel) {
227 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530228 return 0x0220;
Archit Taneja702d1442011-05-06 11:45:50 +0530229 case OMAP_DSS_CHANNEL_DIGIT:
230 BUG();
231 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530232 return 0x03BC;
Archit Taneja702d1442011-05-06 11:45:50 +0530233 default:
234 BUG();
235 }
236}
237
Archit Taneja55978cc2011-05-06 11:45:51 +0530238static inline u16 DISPC_CPR_COEF_G(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530239{
240 switch (channel) {
241 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530242 return 0x0224;
Archit Taneja702d1442011-05-06 11:45:50 +0530243 case OMAP_DSS_CHANNEL_DIGIT:
244 BUG();
245 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530246 return 0x03B8;
Archit Taneja702d1442011-05-06 11:45:50 +0530247 default:
248 BUG();
249 }
250}
251
Archit Taneja55978cc2011-05-06 11:45:51 +0530252static inline u16 DISPC_CPR_COEF_B(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530253{
254 switch (channel) {
255 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530256 return 0x0228;
Archit Taneja702d1442011-05-06 11:45:50 +0530257 case OMAP_DSS_CHANNEL_DIGIT:
258 BUG();
259 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530260 return 0x03B4;
Archit Taneja702d1442011-05-06 11:45:50 +0530261 default:
262 BUG();
263 }
264}
265
Archit Taneja9b372c22011-05-06 11:45:49 +0530266/* DISPC overlay register base addresses */
267static inline u16 DISPC_OVL_BASE(enum omap_plane plane)
268{
269 switch (plane) {
270 case OMAP_DSS_GFX:
271 return 0x0080;
272 case OMAP_DSS_VIDEO1:
273 return 0x00BC;
274 case OMAP_DSS_VIDEO2:
275 return 0x014C;
276 default:
277 BUG();
278 }
279}
280
281/* DISPC overlay register offsets */
282static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane)
283{
284 switch (plane) {
285 case OMAP_DSS_GFX:
286 case OMAP_DSS_VIDEO1:
287 case OMAP_DSS_VIDEO2:
288 return 0x0000;
289 default:
290 BUG();
291 }
292}
293
294static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane)
295{
296 switch (plane) {
297 case OMAP_DSS_GFX:
298 case OMAP_DSS_VIDEO1:
299 case OMAP_DSS_VIDEO2:
300 return 0x0004;
301 default:
302 BUG();
303 }
304}
305
306static inline u16 DISPC_POS_OFFSET(enum omap_plane plane)
307{
308 switch (plane) {
309 case OMAP_DSS_GFX:
310 case OMAP_DSS_VIDEO1:
311 case OMAP_DSS_VIDEO2:
312 return 0x0008;
313 default:
314 BUG();
315 }
316}
317
318static inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane)
319{
320 switch (plane) {
321 case OMAP_DSS_GFX:
322 case OMAP_DSS_VIDEO1:
323 case OMAP_DSS_VIDEO2:
324 return 0x000C;
325 default:
326 BUG();
327 }
328}
329
330static inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane)
331{
332 switch (plane) {
333 case OMAP_DSS_GFX:
334 return 0x0020;
335 case OMAP_DSS_VIDEO1:
336 case OMAP_DSS_VIDEO2:
337 return 0x0010;
338 default:
339 BUG();
340 }
341}
342
343static inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane)
344{
345 switch (plane) {
346 case OMAP_DSS_GFX:
347 return 0x0024;
348 case OMAP_DSS_VIDEO1:
349 case OMAP_DSS_VIDEO2:
350 return 0x0014;
351 default:
352 BUG();
353 }
354}
355
356static inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane)
357{
358 switch (plane) {
359 case OMAP_DSS_GFX:
360 return 0x0028;
361 case OMAP_DSS_VIDEO1:
362 case OMAP_DSS_VIDEO2:
363 return 0x0018;
364 default:
365 BUG();
366 }
367}
368
369static inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane)
370{
371 switch (plane) {
372 case OMAP_DSS_GFX:
373 return 0x002C;
374 case OMAP_DSS_VIDEO1:
375 case OMAP_DSS_VIDEO2:
376 return 0x001C;
377 default:
378 BUG();
379 }
380}
381
382static inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane)
383{
384 switch (plane) {
385 case OMAP_DSS_GFX:
386 return 0x0030;
387 case OMAP_DSS_VIDEO1:
388 case OMAP_DSS_VIDEO2:
389 return 0x0020;
390 default:
391 BUG();
392 }
393}
394
395static inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane)
396{
397 switch (plane) {
398 case OMAP_DSS_GFX:
399 return 0x0034;
400 case OMAP_DSS_VIDEO1:
401 case OMAP_DSS_VIDEO2:
402 BUG();
403 default:
404 BUG();
405 }
406}
407
408static inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane)
409{
410 switch (plane) {
411 case OMAP_DSS_GFX:
412 return 0x0038;
413 case OMAP_DSS_VIDEO1:
414 case OMAP_DSS_VIDEO2:
415 BUG();
416 default:
417 BUG();
418 }
419}
420
421static inline u16 DISPC_FIR_OFFSET(enum omap_plane plane)
422{
423 switch (plane) {
424 case OMAP_DSS_GFX:
425 BUG();
426 case OMAP_DSS_VIDEO1:
427 case OMAP_DSS_VIDEO2:
428 return 0x0024;
429 default:
430 BUG();
431 }
432}
433
434static inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane)
435{
436 switch (plane) {
437 case OMAP_DSS_GFX:
438 BUG();
439 case OMAP_DSS_VIDEO1:
440 case OMAP_DSS_VIDEO2:
441 return 0x0028;
442 default:
443 BUG();
444 }
445}
446
447
448static inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane)
449{
450 switch (plane) {
451 case OMAP_DSS_GFX:
452 BUG();
453 case OMAP_DSS_VIDEO1:
454 case OMAP_DSS_VIDEO2:
455 return 0x002C;
456 default:
457 BUG();
458 }
459}
460
461static inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane)
462{
463 switch (plane) {
464 case OMAP_DSS_GFX:
465 BUG();
466 case OMAP_DSS_VIDEO1:
467 case OMAP_DSS_VIDEO2:
468 return 0x0030;
469 default:
470 BUG();
471 }
472}
473
474/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
475static inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i)
476{
477 switch (plane) {
478 case OMAP_DSS_GFX:
479 BUG();
480 case OMAP_DSS_VIDEO1:
481 case OMAP_DSS_VIDEO2:
482 return 0x0034 + i * 0x8;
483 default:
484 BUG();
485 }
486}
487
488/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
489static inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i)
490{
491 switch (plane) {
492 case OMAP_DSS_GFX:
493 BUG();
494 case OMAP_DSS_VIDEO1:
495 case OMAP_DSS_VIDEO2:
496 return 0x0038 + i * 0x8;
497 default:
498 BUG();
499 }
500}
501
502/* coef index i = {0, 1, 2, 3, 4,} */
503static inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i)
504{
505 switch (plane) {
506 case OMAP_DSS_GFX:
507 BUG();
508 case OMAP_DSS_VIDEO1:
509 case OMAP_DSS_VIDEO2:
510 return 0x0074 + i * 0x4;
511 default:
512 BUG();
513 }
514}
515
516/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
517static inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i)
518{
519 switch (plane) {
520 case OMAP_DSS_GFX:
521 BUG();
522 case OMAP_DSS_VIDEO1:
523 return 0x0124 + i * 0x4;
524 case OMAP_DSS_VIDEO2:
525 return 0x00B4 + i * 0x4;
526 default:
527 BUG();
528 }
529}
530
531static inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane)
532{
533 switch (plane) {
534 case OMAP_DSS_GFX:
535 return 0x01AC;
536 case OMAP_DSS_VIDEO1:
537 return 0x0174;
538 case OMAP_DSS_VIDEO2:
539 return 0x00E8;
540 default:
541 BUG();
542 }
543}
544#endif