]> Git Repo - J-linux.git/blob - drivers/video/fbdev/omap2/omapfb/dss/dispc.h
Merge tag 'amd-drm-next-6.5-2023-06-09' of https://gitlab.freedesktop.org/agd5f/linux...
[J-linux.git] / drivers / video / fbdev / omap2 / omapfb / dss / dispc.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * linux/drivers/video/omap2/dss/dispc.h
4  *
5  * Copyright (C) 2011 Texas Instruments
6  * Author: Archit Taneja <[email protected]>
7  */
8
9 #ifndef __OMAP2_DISPC_REG_H
10 #define __OMAP2_DISPC_REG_H
11
12 /* DISPC common registers */
13 #define DISPC_REVISION                  0x0000
14 #define DISPC_SYSCONFIG                 0x0010
15 #define DISPC_SYSSTATUS                 0x0014
16 #define DISPC_IRQSTATUS                 0x0018
17 #define DISPC_IRQENABLE                 0x001C
18 #define DISPC_CONTROL                   0x0040
19 #define DISPC_CONFIG                    0x0044
20 #define DISPC_CAPABLE                   0x0048
21 #define DISPC_LINE_STATUS               0x005C
22 #define DISPC_LINE_NUMBER               0x0060
23 #define DISPC_GLOBAL_ALPHA              0x0074
24 #define DISPC_CONTROL2                  0x0238
25 #define DISPC_CONFIG2                   0x0620
26 #define DISPC_DIVISOR                   0x0804
27 #define DISPC_GLOBAL_BUFFER             0x0800
28 #define DISPC_CONTROL3                  0x0848
29 #define DISPC_CONFIG3                   0x084C
30 #define DISPC_MSTANDBY_CTRL             0x0858
31 #define DISPC_GLOBAL_MFLAG_ATTRIBUTE    0x085C
32
33 /* DISPC overlay registers */
34 #define DISPC_OVL_BA0(n)                (DISPC_OVL_BASE(n) + \
35                                         DISPC_BA0_OFFSET(n))
36 #define DISPC_OVL_BA1(n)                (DISPC_OVL_BASE(n) + \
37                                         DISPC_BA1_OFFSET(n))
38 #define DISPC_OVL_BA0_UV(n)             (DISPC_OVL_BASE(n) + \
39                                         DISPC_BA0_UV_OFFSET(n))
40 #define DISPC_OVL_BA1_UV(n)             (DISPC_OVL_BASE(n) + \
41                                         DISPC_BA1_UV_OFFSET(n))
42 #define DISPC_OVL_POSITION(n)           (DISPC_OVL_BASE(n) + \
43                                         DISPC_POS_OFFSET(n))
44 #define DISPC_OVL_SIZE(n)               (DISPC_OVL_BASE(n) + \
45                                         DISPC_SIZE_OFFSET(n))
46 #define DISPC_OVL_ATTRIBUTES(n)         (DISPC_OVL_BASE(n) + \
47                                         DISPC_ATTR_OFFSET(n))
48 #define DISPC_OVL_ATTRIBUTES2(n)        (DISPC_OVL_BASE(n) + \
49                                         DISPC_ATTR2_OFFSET(n))
50 #define DISPC_OVL_FIFO_THRESHOLD(n)     (DISPC_OVL_BASE(n) + \
51                                         DISPC_FIFO_THRESH_OFFSET(n))
52 #define DISPC_OVL_FIFO_SIZE_STATUS(n)   (DISPC_OVL_BASE(n) + \
53                                         DISPC_FIFO_SIZE_STATUS_OFFSET(n))
54 #define DISPC_OVL_ROW_INC(n)            (DISPC_OVL_BASE(n) + \
55                                         DISPC_ROW_INC_OFFSET(n))
56 #define DISPC_OVL_PIXEL_INC(n)          (DISPC_OVL_BASE(n) + \
57                                         DISPC_PIX_INC_OFFSET(n))
58 #define DISPC_OVL_WINDOW_SKIP(n)        (DISPC_OVL_BASE(n) + \
59                                         DISPC_WINDOW_SKIP_OFFSET(n))
60 #define DISPC_OVL_TABLE_BA(n)           (DISPC_OVL_BASE(n) + \
61                                         DISPC_TABLE_BA_OFFSET(n))
62 #define DISPC_OVL_FIR(n)                (DISPC_OVL_BASE(n) + \
63                                         DISPC_FIR_OFFSET(n))
64 #define DISPC_OVL_FIR2(n)               (DISPC_OVL_BASE(n) + \
65                                         DISPC_FIR2_OFFSET(n))
66 #define DISPC_OVL_PICTURE_SIZE(n)       (DISPC_OVL_BASE(n) + \
67                                         DISPC_PIC_SIZE_OFFSET(n))
68 #define DISPC_OVL_ACCU0(n)              (DISPC_OVL_BASE(n) + \
69                                         DISPC_ACCU0_OFFSET(n))
70 #define DISPC_OVL_ACCU1(n)              (DISPC_OVL_BASE(n) + \
71                                         DISPC_ACCU1_OFFSET(n))
72 #define DISPC_OVL_ACCU2_0(n)            (DISPC_OVL_BASE(n) + \
73                                         DISPC_ACCU2_0_OFFSET(n))
74 #define DISPC_OVL_ACCU2_1(n)            (DISPC_OVL_BASE(n) + \
75                                         DISPC_ACCU2_1_OFFSET(n))
76 #define DISPC_OVL_FIR_COEF_H(n, i)      (DISPC_OVL_BASE(n) + \
77                                         DISPC_FIR_COEF_H_OFFSET(n, i))
78 #define DISPC_OVL_FIR_COEF_HV(n, i)     (DISPC_OVL_BASE(n) + \
79                                         DISPC_FIR_COEF_HV_OFFSET(n, i))
80 #define DISPC_OVL_FIR_COEF_H2(n, i)     (DISPC_OVL_BASE(n) + \
81                                         DISPC_FIR_COEF_H2_OFFSET(n, i))
82 #define DISPC_OVL_FIR_COEF_HV2(n, i)    (DISPC_OVL_BASE(n) + \
83                                         DISPC_FIR_COEF_HV2_OFFSET(n, i))
84 #define DISPC_OVL_CONV_COEF(n, i)       (DISPC_OVL_BASE(n) + \
85                                         DISPC_CONV_COEF_OFFSET(n, i))
86 #define DISPC_OVL_FIR_COEF_V(n, i)      (DISPC_OVL_BASE(n) + \
87                                         DISPC_FIR_COEF_V_OFFSET(n, i))
88 #define DISPC_OVL_FIR_COEF_V2(n, i)     (DISPC_OVL_BASE(n) + \
89                                         DISPC_FIR_COEF_V2_OFFSET(n, i))
90 #define DISPC_OVL_PRELOAD(n)            (DISPC_OVL_BASE(n) + \
91                                         DISPC_PRELOAD_OFFSET(n))
92 #define DISPC_OVL_MFLAG_THRESHOLD(n)    DISPC_MFLAG_THRESHOLD_OFFSET(n)
93
94 /* DISPC up/downsampling FIR filter coefficient structure */
95 struct dispc_coef {
96         s8 hc4_vc22;
97         s8 hc3_vc2;
98         u8 hc2_vc1;
99         s8 hc1_vc0;
100         s8 hc0_vc00;
101 };
102
103 const struct dispc_coef *dispc_ovl_get_scale_coef(int inc, int five_taps);
104
105 /* DISPC manager/channel specific registers */
106 static inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel)
107 {
108         switch (channel) {
109         case OMAP_DSS_CHANNEL_LCD:
110                 return 0x004C;
111         case OMAP_DSS_CHANNEL_DIGIT:
112                 return 0x0050;
113         case OMAP_DSS_CHANNEL_LCD2:
114                 return 0x03AC;
115         case OMAP_DSS_CHANNEL_LCD3:
116                 return 0x0814;
117         default:
118                 BUG();
119                 return 0;
120         }
121 }
122
123 static inline u16 DISPC_TRANS_COLOR(enum omap_channel channel)
124 {
125         switch (channel) {
126         case OMAP_DSS_CHANNEL_LCD:
127                 return 0x0054;
128         case OMAP_DSS_CHANNEL_DIGIT:
129                 return 0x0058;
130         case OMAP_DSS_CHANNEL_LCD2:
131                 return 0x03B0;
132         case OMAP_DSS_CHANNEL_LCD3:
133                 return 0x0818;
134         default:
135                 BUG();
136                 return 0;
137         }
138 }
139
140 static inline u16 DISPC_TIMING_H(enum omap_channel channel)
141 {
142         switch (channel) {
143         case OMAP_DSS_CHANNEL_LCD:
144                 return 0x0064;
145         case OMAP_DSS_CHANNEL_DIGIT:
146                 BUG();
147                 return 0;
148         case OMAP_DSS_CHANNEL_LCD2:
149                 return 0x0400;
150         case OMAP_DSS_CHANNEL_LCD3:
151                 return 0x0840;
152         default:
153                 BUG();
154                 return 0;
155         }
156 }
157
158 static inline u16 DISPC_TIMING_V(enum omap_channel channel)
159 {
160         switch (channel) {
161         case OMAP_DSS_CHANNEL_LCD:
162                 return 0x0068;
163         case OMAP_DSS_CHANNEL_DIGIT:
164                 BUG();
165                 return 0;
166         case OMAP_DSS_CHANNEL_LCD2:
167                 return 0x0404;
168         case OMAP_DSS_CHANNEL_LCD3:
169                 return 0x0844;
170         default:
171                 BUG();
172                 return 0;
173         }
174 }
175
176 static inline u16 DISPC_POL_FREQ(enum omap_channel channel)
177 {
178         switch (channel) {
179         case OMAP_DSS_CHANNEL_LCD:
180                 return 0x006C;
181         case OMAP_DSS_CHANNEL_DIGIT:
182                 BUG();
183                 return 0;
184         case OMAP_DSS_CHANNEL_LCD2:
185                 return 0x0408;
186         case OMAP_DSS_CHANNEL_LCD3:
187                 return 0x083C;
188         default:
189                 BUG();
190                 return 0;
191         }
192 }
193
194 static inline u16 DISPC_DIVISORo(enum omap_channel channel)
195 {
196         switch (channel) {
197         case OMAP_DSS_CHANNEL_LCD:
198                 return 0x0070;
199         case OMAP_DSS_CHANNEL_DIGIT:
200                 BUG();
201                 return 0;
202         case OMAP_DSS_CHANNEL_LCD2:
203                 return 0x040C;
204         case OMAP_DSS_CHANNEL_LCD3:
205                 return 0x0838;
206         default:
207                 BUG();
208                 return 0;
209         }
210 }
211
212 /* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */
213 static inline u16 DISPC_SIZE_MGR(enum omap_channel channel)
214 {
215         switch (channel) {
216         case OMAP_DSS_CHANNEL_LCD:
217                 return 0x007C;
218         case OMAP_DSS_CHANNEL_DIGIT:
219                 return 0x0078;
220         case OMAP_DSS_CHANNEL_LCD2:
221                 return 0x03CC;
222         case OMAP_DSS_CHANNEL_LCD3:
223                 return 0x0834;
224         default:
225                 BUG();
226                 return 0;
227         }
228 }
229
230 static inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel)
231 {
232         switch (channel) {
233         case OMAP_DSS_CHANNEL_LCD:
234                 return 0x01D4;
235         case OMAP_DSS_CHANNEL_DIGIT:
236                 BUG();
237                 return 0;
238         case OMAP_DSS_CHANNEL_LCD2:
239                 return 0x03C0;
240         case OMAP_DSS_CHANNEL_LCD3:
241                 return 0x0828;
242         default:
243                 BUG();
244                 return 0;
245         }
246 }
247
248 static inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel)
249 {
250         switch (channel) {
251         case OMAP_DSS_CHANNEL_LCD:
252                 return 0x01D8;
253         case OMAP_DSS_CHANNEL_DIGIT:
254                 BUG();
255                 return 0;
256         case OMAP_DSS_CHANNEL_LCD2:
257                 return 0x03C4;
258         case OMAP_DSS_CHANNEL_LCD3:
259                 return 0x082C;
260         default:
261                 BUG();
262                 return 0;
263         }
264 }
265
266 static inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel)
267 {
268         switch (channel) {
269         case OMAP_DSS_CHANNEL_LCD:
270                 return 0x01DC;
271         case OMAP_DSS_CHANNEL_DIGIT:
272                 BUG();
273                 return 0;
274         case OMAP_DSS_CHANNEL_LCD2:
275                 return 0x03C8;
276         case OMAP_DSS_CHANNEL_LCD3:
277                 return 0x0830;
278         default:
279                 BUG();
280                 return 0;
281         }
282 }
283
284 static inline u16 DISPC_CPR_COEF_R(enum omap_channel channel)
285 {
286         switch (channel) {
287         case OMAP_DSS_CHANNEL_LCD:
288                 return 0x0220;
289         case OMAP_DSS_CHANNEL_DIGIT:
290                 BUG();
291                 return 0;
292         case OMAP_DSS_CHANNEL_LCD2:
293                 return 0x03BC;
294         case OMAP_DSS_CHANNEL_LCD3:
295                 return 0x0824;
296         default:
297                 BUG();
298                 return 0;
299         }
300 }
301
302 static inline u16 DISPC_CPR_COEF_G(enum omap_channel channel)
303 {
304         switch (channel) {
305         case OMAP_DSS_CHANNEL_LCD:
306                 return 0x0224;
307         case OMAP_DSS_CHANNEL_DIGIT:
308                 BUG();
309                 return 0;
310         case OMAP_DSS_CHANNEL_LCD2:
311                 return 0x03B8;
312         case OMAP_DSS_CHANNEL_LCD3:
313                 return 0x0820;
314         default:
315                 BUG();
316                 return 0;
317         }
318 }
319
320 static inline u16 DISPC_CPR_COEF_B(enum omap_channel channel)
321 {
322         switch (channel) {
323         case OMAP_DSS_CHANNEL_LCD:
324                 return 0x0228;
325         case OMAP_DSS_CHANNEL_DIGIT:
326                 BUG();
327                 return 0;
328         case OMAP_DSS_CHANNEL_LCD2:
329                 return 0x03B4;
330         case OMAP_DSS_CHANNEL_LCD3:
331                 return 0x081C;
332         default:
333                 BUG();
334                 return 0;
335         }
336 }
337
338 /* DISPC overlay register base addresses */
339 static inline u16 DISPC_OVL_BASE(enum omap_plane plane)
340 {
341         switch (plane) {
342         case OMAP_DSS_GFX:
343                 return 0x0080;
344         case OMAP_DSS_VIDEO1:
345                 return 0x00BC;
346         case OMAP_DSS_VIDEO2:
347                 return 0x014C;
348         case OMAP_DSS_VIDEO3:
349                 return 0x0300;
350         case OMAP_DSS_WB:
351                 return 0x0500;
352         default:
353                 BUG();
354                 return 0;
355         }
356 }
357
358 /* DISPC overlay register offsets */
359 static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane)
360 {
361         switch (plane) {
362         case OMAP_DSS_GFX:
363         case OMAP_DSS_VIDEO1:
364         case OMAP_DSS_VIDEO2:
365                 return 0x0000;
366         case OMAP_DSS_VIDEO3:
367         case OMAP_DSS_WB:
368                 return 0x0008;
369         default:
370                 BUG();
371                 return 0;
372         }
373 }
374
375 static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane)
376 {
377         switch (plane) {
378         case OMAP_DSS_GFX:
379         case OMAP_DSS_VIDEO1:
380         case OMAP_DSS_VIDEO2:
381                 return 0x0004;
382         case OMAP_DSS_VIDEO3:
383         case OMAP_DSS_WB:
384                 return 0x000C;
385         default:
386                 BUG();
387                 return 0;
388         }
389 }
390
391 static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane)
392 {
393         switch (plane) {
394         case OMAP_DSS_GFX:
395                 BUG();
396                 return 0;
397         case OMAP_DSS_VIDEO1:
398                 return 0x0544;
399         case OMAP_DSS_VIDEO2:
400                 return 0x04BC;
401         case OMAP_DSS_VIDEO3:
402                 return 0x0310;
403         case OMAP_DSS_WB:
404                 return 0x0118;
405         default:
406                 BUG();
407                 return 0;
408         }
409 }
410
411 static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane)
412 {
413         switch (plane) {
414         case OMAP_DSS_GFX:
415                 BUG();
416                 return 0;
417         case OMAP_DSS_VIDEO1:
418                 return 0x0548;
419         case OMAP_DSS_VIDEO2:
420                 return 0x04C0;
421         case OMAP_DSS_VIDEO3:
422                 return 0x0314;
423         case OMAP_DSS_WB:
424                 return 0x011C;
425         default:
426                 BUG();
427                 return 0;
428         }
429 }
430
431 static inline u16 DISPC_POS_OFFSET(enum omap_plane plane)
432 {
433         switch (plane) {
434         case OMAP_DSS_GFX:
435         case OMAP_DSS_VIDEO1:
436         case OMAP_DSS_VIDEO2:
437                 return 0x0008;
438         case OMAP_DSS_VIDEO3:
439                 return 0x009C;
440         default:
441                 BUG();
442                 return 0;
443         }
444 }
445
446 static inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane)
447 {
448         switch (plane) {
449         case OMAP_DSS_GFX:
450         case OMAP_DSS_VIDEO1:
451         case OMAP_DSS_VIDEO2:
452                 return 0x000C;
453         case OMAP_DSS_VIDEO3:
454         case OMAP_DSS_WB:
455                 return 0x00A8;
456         default:
457                 BUG();
458                 return 0;
459         }
460 }
461
462 static inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane)
463 {
464         switch (plane) {
465         case OMAP_DSS_GFX:
466                 return 0x0020;
467         case OMAP_DSS_VIDEO1:
468         case OMAP_DSS_VIDEO2:
469                 return 0x0010;
470         case OMAP_DSS_VIDEO3:
471         case OMAP_DSS_WB:
472                 return 0x0070;
473         default:
474                 BUG();
475                 return 0;
476         }
477 }
478
479 static inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane)
480 {
481         switch (plane) {
482         case OMAP_DSS_GFX:
483                 BUG();
484                 return 0;
485         case OMAP_DSS_VIDEO1:
486                 return 0x0568;
487         case OMAP_DSS_VIDEO2:
488                 return 0x04DC;
489         case OMAP_DSS_VIDEO3:
490                 return 0x032C;
491         case OMAP_DSS_WB:
492                 return 0x0310;
493         default:
494                 BUG();
495                 return 0;
496         }
497 }
498
499 static inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane)
500 {
501         switch (plane) {
502         case OMAP_DSS_GFX:
503                 return 0x0024;
504         case OMAP_DSS_VIDEO1:
505         case OMAP_DSS_VIDEO2:
506                 return 0x0014;
507         case OMAP_DSS_VIDEO3:
508         case OMAP_DSS_WB:
509                 return 0x008C;
510         default:
511                 BUG();
512                 return 0;
513         }
514 }
515
516 static inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane)
517 {
518         switch (plane) {
519         case OMAP_DSS_GFX:
520                 return 0x0028;
521         case OMAP_DSS_VIDEO1:
522         case OMAP_DSS_VIDEO2:
523                 return 0x0018;
524         case OMAP_DSS_VIDEO3:
525         case OMAP_DSS_WB:
526                 return 0x0088;
527         default:
528                 BUG();
529                 return 0;
530         }
531 }
532
533 static inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane)
534 {
535         switch (plane) {
536         case OMAP_DSS_GFX:
537                 return 0x002C;
538         case OMAP_DSS_VIDEO1:
539         case OMAP_DSS_VIDEO2:
540                 return 0x001C;
541         case OMAP_DSS_VIDEO3:
542         case OMAP_DSS_WB:
543                 return 0x00A4;
544         default:
545                 BUG();
546                 return 0;
547         }
548 }
549
550 static inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane)
551 {
552         switch (plane) {
553         case OMAP_DSS_GFX:
554                 return 0x0030;
555         case OMAP_DSS_VIDEO1:
556         case OMAP_DSS_VIDEO2:
557                 return 0x0020;
558         case OMAP_DSS_VIDEO3:
559         case OMAP_DSS_WB:
560                 return 0x0098;
561         default:
562                 BUG();
563                 return 0;
564         }
565 }
566
567 static inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane)
568 {
569         switch (plane) {
570         case OMAP_DSS_GFX:
571                 return 0x0034;
572         case OMAP_DSS_VIDEO1:
573         case OMAP_DSS_VIDEO2:
574         case OMAP_DSS_VIDEO3:
575                 BUG();
576                 return 0;
577         default:
578                 BUG();
579                 return 0;
580         }
581 }
582
583 static inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane)
584 {
585         switch (plane) {
586         case OMAP_DSS_GFX:
587                 return 0x0038;
588         case OMAP_DSS_VIDEO1:
589         case OMAP_DSS_VIDEO2:
590         case OMAP_DSS_VIDEO3:
591                 BUG();
592                 return 0;
593         default:
594                 BUG();
595                 return 0;
596         }
597 }
598
599 static inline u16 DISPC_FIR_OFFSET(enum omap_plane plane)
600 {
601         switch (plane) {
602         case OMAP_DSS_GFX:
603                 BUG();
604                 return 0;
605         case OMAP_DSS_VIDEO1:
606         case OMAP_DSS_VIDEO2:
607                 return 0x0024;
608         case OMAP_DSS_VIDEO3:
609         case OMAP_DSS_WB:
610                 return 0x0090;
611         default:
612                 BUG();
613                 return 0;
614         }
615 }
616
617 static inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane)
618 {
619         switch (plane) {
620         case OMAP_DSS_GFX:
621                 BUG();
622                 return 0;
623         case OMAP_DSS_VIDEO1:
624                 return 0x0580;
625         case OMAP_DSS_VIDEO2:
626                 return 0x055C;
627         case OMAP_DSS_VIDEO3:
628                 return 0x0424;
629         case OMAP_DSS_WB:
630                 return 0x290;
631         default:
632                 BUG();
633                 return 0;
634         }
635 }
636
637 static inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane)
638 {
639         switch (plane) {
640         case OMAP_DSS_GFX:
641                 BUG();
642                 return 0;
643         case OMAP_DSS_VIDEO1:
644         case OMAP_DSS_VIDEO2:
645                 return 0x0028;
646         case OMAP_DSS_VIDEO3:
647         case OMAP_DSS_WB:
648                 return 0x0094;
649         default:
650                 BUG();
651                 return 0;
652         }
653 }
654
655
656 static inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane)
657 {
658         switch (plane) {
659         case OMAP_DSS_GFX:
660                 BUG();
661                 return 0;
662         case OMAP_DSS_VIDEO1:
663         case OMAP_DSS_VIDEO2:
664                 return 0x002C;
665         case OMAP_DSS_VIDEO3:
666         case OMAP_DSS_WB:
667                 return 0x0000;
668         default:
669                 BUG();
670                 return 0;
671         }
672 }
673
674 static inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane)
675 {
676         switch (plane) {
677         case OMAP_DSS_GFX:
678                 BUG();
679                 return 0;
680         case OMAP_DSS_VIDEO1:
681                 return 0x0584;
682         case OMAP_DSS_VIDEO2:
683                 return 0x0560;
684         case OMAP_DSS_VIDEO3:
685                 return 0x0428;
686         case OMAP_DSS_WB:
687                 return 0x0294;
688         default:
689                 BUG();
690                 return 0;
691         }
692 }
693
694 static inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane)
695 {
696         switch (plane) {
697         case OMAP_DSS_GFX:
698                 BUG();
699                 return 0;
700         case OMAP_DSS_VIDEO1:
701         case OMAP_DSS_VIDEO2:
702                 return 0x0030;
703         case OMAP_DSS_VIDEO3:
704         case OMAP_DSS_WB:
705                 return 0x0004;
706         default:
707                 BUG();
708                 return 0;
709         }
710 }
711
712 static inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane)
713 {
714         switch (plane) {
715         case OMAP_DSS_GFX:
716                 BUG();
717                 return 0;
718         case OMAP_DSS_VIDEO1:
719                 return 0x0588;
720         case OMAP_DSS_VIDEO2:
721                 return 0x0564;
722         case OMAP_DSS_VIDEO3:
723                 return 0x042C;
724         case OMAP_DSS_WB:
725                 return 0x0298;
726         default:
727                 BUG();
728                 return 0;
729         }
730 }
731
732 /* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
733 static inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i)
734 {
735         switch (plane) {
736         case OMAP_DSS_GFX:
737                 BUG();
738                 return 0;
739         case OMAP_DSS_VIDEO1:
740         case OMAP_DSS_VIDEO2:
741                 return 0x0034 + i * 0x8;
742         case OMAP_DSS_VIDEO3:
743         case OMAP_DSS_WB:
744                 return 0x0010 + i * 0x8;
745         default:
746                 BUG();
747                 return 0;
748         }
749 }
750
751 /* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
752 static inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i)
753 {
754         switch (plane) {
755         case OMAP_DSS_GFX:
756                 BUG();
757                 return 0;
758         case OMAP_DSS_VIDEO1:
759                 return 0x058C + i * 0x8;
760         case OMAP_DSS_VIDEO2:
761                 return 0x0568 + i * 0x8;
762         case OMAP_DSS_VIDEO3:
763                 return 0x0430 + i * 0x8;
764         case OMAP_DSS_WB:
765                 return 0x02A0 + i * 0x8;
766         default:
767                 BUG();
768                 return 0;
769         }
770 }
771
772 /* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
773 static inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i)
774 {
775         switch (plane) {
776         case OMAP_DSS_GFX:
777                 BUG();
778                 return 0;
779         case OMAP_DSS_VIDEO1:
780         case OMAP_DSS_VIDEO2:
781                 return 0x0038 + i * 0x8;
782         case OMAP_DSS_VIDEO3:
783         case OMAP_DSS_WB:
784                 return 0x0014 + i * 0x8;
785         default:
786                 BUG();
787                 return 0;
788         }
789 }
790
791 /* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
792 static inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i)
793 {
794         switch (plane) {
795         case OMAP_DSS_GFX:
796                 BUG();
797                 return 0;
798         case OMAP_DSS_VIDEO1:
799                 return 0x0590 + i * 8;
800         case OMAP_DSS_VIDEO2:
801                 return 0x056C + i * 0x8;
802         case OMAP_DSS_VIDEO3:
803                 return 0x0434 + i * 0x8;
804         case OMAP_DSS_WB:
805                 return 0x02A4 + i * 0x8;
806         default:
807                 BUG();
808                 return 0;
809         }
810 }
811
812 /* coef index i = {0, 1, 2, 3, 4,} */
813 static inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i)
814 {
815         switch (plane) {
816         case OMAP_DSS_GFX:
817                 BUG();
818                 return 0;
819         case OMAP_DSS_VIDEO1:
820         case OMAP_DSS_VIDEO2:
821         case OMAP_DSS_VIDEO3:
822         case OMAP_DSS_WB:
823                 return 0x0074 + i * 0x4;
824         default:
825                 BUG();
826                 return 0;
827         }
828 }
829
830 /* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
831 static inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i)
832 {
833         switch (plane) {
834         case OMAP_DSS_GFX:
835                 BUG();
836                 return 0;
837         case OMAP_DSS_VIDEO1:
838                 return 0x0124 + i * 0x4;
839         case OMAP_DSS_VIDEO2:
840                 return 0x00B4 + i * 0x4;
841         case OMAP_DSS_VIDEO3:
842         case OMAP_DSS_WB:
843                 return 0x0050 + i * 0x4;
844         default:
845                 BUG();
846                 return 0;
847         }
848 }
849
850 /* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
851 static inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i)
852 {
853         switch (plane) {
854         case OMAP_DSS_GFX:
855                 BUG();
856                 return 0;
857         case OMAP_DSS_VIDEO1:
858                 return 0x05CC + i * 0x4;
859         case OMAP_DSS_VIDEO2:
860                 return 0x05A8 + i * 0x4;
861         case OMAP_DSS_VIDEO3:
862                 return 0x0470 + i * 0x4;
863         case OMAP_DSS_WB:
864                 return 0x02E0 + i * 0x4;
865         default:
866                 BUG();
867                 return 0;
868         }
869 }
870
871 static inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane)
872 {
873         switch (plane) {
874         case OMAP_DSS_GFX:
875                 return 0x01AC;
876         case OMAP_DSS_VIDEO1:
877                 return 0x0174;
878         case OMAP_DSS_VIDEO2:
879                 return 0x00E8;
880         case OMAP_DSS_VIDEO3:
881                 return 0x00A0;
882         default:
883                 BUG();
884                 return 0;
885         }
886 }
887
888 static inline u16 DISPC_MFLAG_THRESHOLD_OFFSET(enum omap_plane plane)
889 {
890         switch (plane) {
891         case OMAP_DSS_GFX:
892                 return 0x0860;
893         case OMAP_DSS_VIDEO1:
894                 return 0x0864;
895         case OMAP_DSS_VIDEO2:
896                 return 0x0868;
897         case OMAP_DSS_VIDEO3:
898                 return 0x086c;
899         case OMAP_DSS_WB:
900                 return 0x0870;
901         default:
902                 BUG();
903                 return 0;
904         }
905 }
906
907 #endif
This page took 0.083946 seconds and 4 git commands to generate.