0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef __OMAP2_DISPC_REG_H
0010 #define __OMAP2_DISPC_REG_H
0011
0012
0013 #define DISPC_REVISION 0x0000
0014 #define DISPC_SYSCONFIG 0x0010
0015 #define DISPC_SYSSTATUS 0x0014
0016 #define DISPC_IRQSTATUS 0x0018
0017 #define DISPC_IRQENABLE 0x001C
0018 #define DISPC_CONTROL 0x0040
0019 #define DISPC_CONFIG 0x0044
0020 #define DISPC_CAPABLE 0x0048
0021 #define DISPC_LINE_STATUS 0x005C
0022 #define DISPC_LINE_NUMBER 0x0060
0023 #define DISPC_GLOBAL_ALPHA 0x0074
0024 #define DISPC_CONTROL2 0x0238
0025 #define DISPC_CONFIG2 0x0620
0026 #define DISPC_DIVISOR 0x0804
0027 #define DISPC_GLOBAL_BUFFER 0x0800
0028 #define DISPC_CONTROL3 0x0848
0029 #define DISPC_CONFIG3 0x084C
0030 #define DISPC_MSTANDBY_CTRL 0x0858
0031 #define DISPC_GLOBAL_MFLAG_ATTRIBUTE 0x085C
0032
0033
0034 #define DISPC_OVL_BA0(n) (DISPC_OVL_BASE(n) + \
0035 DISPC_BA0_OFFSET(n))
0036 #define DISPC_OVL_BA1(n) (DISPC_OVL_BASE(n) + \
0037 DISPC_BA1_OFFSET(n))
0038 #define DISPC_OVL_BA0_UV(n) (DISPC_OVL_BASE(n) + \
0039 DISPC_BA0_UV_OFFSET(n))
0040 #define DISPC_OVL_BA1_UV(n) (DISPC_OVL_BASE(n) + \
0041 DISPC_BA1_UV_OFFSET(n))
0042 #define DISPC_OVL_POSITION(n) (DISPC_OVL_BASE(n) + \
0043 DISPC_POS_OFFSET(n))
0044 #define DISPC_OVL_SIZE(n) (DISPC_OVL_BASE(n) + \
0045 DISPC_SIZE_OFFSET(n))
0046 #define DISPC_OVL_ATTRIBUTES(n) (DISPC_OVL_BASE(n) + \
0047 DISPC_ATTR_OFFSET(n))
0048 #define DISPC_OVL_ATTRIBUTES2(n) (DISPC_OVL_BASE(n) + \
0049 DISPC_ATTR2_OFFSET(n))
0050 #define DISPC_OVL_FIFO_THRESHOLD(n) (DISPC_OVL_BASE(n) + \
0051 DISPC_FIFO_THRESH_OFFSET(n))
0052 #define DISPC_OVL_FIFO_SIZE_STATUS(n) (DISPC_OVL_BASE(n) + \
0053 DISPC_FIFO_SIZE_STATUS_OFFSET(n))
0054 #define DISPC_OVL_ROW_INC(n) (DISPC_OVL_BASE(n) + \
0055 DISPC_ROW_INC_OFFSET(n))
0056 #define DISPC_OVL_PIXEL_INC(n) (DISPC_OVL_BASE(n) + \
0057 DISPC_PIX_INC_OFFSET(n))
0058 #define DISPC_OVL_WINDOW_SKIP(n) (DISPC_OVL_BASE(n) + \
0059 DISPC_WINDOW_SKIP_OFFSET(n))
0060 #define DISPC_OVL_TABLE_BA(n) (DISPC_OVL_BASE(n) + \
0061 DISPC_TABLE_BA_OFFSET(n))
0062 #define DISPC_OVL_FIR(n) (DISPC_OVL_BASE(n) + \
0063 DISPC_FIR_OFFSET(n))
0064 #define DISPC_OVL_FIR2(n) (DISPC_OVL_BASE(n) + \
0065 DISPC_FIR2_OFFSET(n))
0066 #define DISPC_OVL_PICTURE_SIZE(n) (DISPC_OVL_BASE(n) + \
0067 DISPC_PIC_SIZE_OFFSET(n))
0068 #define DISPC_OVL_ACCU0(n) (DISPC_OVL_BASE(n) + \
0069 DISPC_ACCU0_OFFSET(n))
0070 #define DISPC_OVL_ACCU1(n) (DISPC_OVL_BASE(n) + \
0071 DISPC_ACCU1_OFFSET(n))
0072 #define DISPC_OVL_ACCU2_0(n) (DISPC_OVL_BASE(n) + \
0073 DISPC_ACCU2_0_OFFSET(n))
0074 #define DISPC_OVL_ACCU2_1(n) (DISPC_OVL_BASE(n) + \
0075 DISPC_ACCU2_1_OFFSET(n))
0076 #define DISPC_OVL_FIR_COEF_H(n, i) (DISPC_OVL_BASE(n) + \
0077 DISPC_FIR_COEF_H_OFFSET(n, i))
0078 #define DISPC_OVL_FIR_COEF_HV(n, i) (DISPC_OVL_BASE(n) + \
0079 DISPC_FIR_COEF_HV_OFFSET(n, i))
0080 #define DISPC_OVL_FIR_COEF_H2(n, i) (DISPC_OVL_BASE(n) + \
0081 DISPC_FIR_COEF_H2_OFFSET(n, i))
0082 #define DISPC_OVL_FIR_COEF_HV2(n, i) (DISPC_OVL_BASE(n) + \
0083 DISPC_FIR_COEF_HV2_OFFSET(n, i))
0084 #define DISPC_OVL_CONV_COEF(n, i) (DISPC_OVL_BASE(n) + \
0085 DISPC_CONV_COEF_OFFSET(n, i))
0086 #define DISPC_OVL_FIR_COEF_V(n, i) (DISPC_OVL_BASE(n) + \
0087 DISPC_FIR_COEF_V_OFFSET(n, i))
0088 #define DISPC_OVL_FIR_COEF_V2(n, i) (DISPC_OVL_BASE(n) + \
0089 DISPC_FIR_COEF_V2_OFFSET(n, i))
0090 #define DISPC_OVL_PRELOAD(n) (DISPC_OVL_BASE(n) + \
0091 DISPC_PRELOAD_OFFSET(n))
0092 #define DISPC_OVL_MFLAG_THRESHOLD(n) DISPC_MFLAG_THRESHOLD_OFFSET(n)
0093
0094
0095 struct dispc_coef {
0096 s8 hc4_vc22;
0097 s8 hc3_vc2;
0098 u8 hc2_vc1;
0099 s8 hc1_vc0;
0100 s8 hc0_vc00;
0101 };
0102
0103 const struct dispc_coef *dispc_ovl_get_scale_coef(int inc, int five_taps);
0104
0105
0106 static inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel)
0107 {
0108 switch (channel) {
0109 case OMAP_DSS_CHANNEL_LCD:
0110 return 0x004C;
0111 case OMAP_DSS_CHANNEL_DIGIT:
0112 return 0x0050;
0113 case OMAP_DSS_CHANNEL_LCD2:
0114 return 0x03AC;
0115 case OMAP_DSS_CHANNEL_LCD3:
0116 return 0x0814;
0117 default:
0118 BUG();
0119 return 0;
0120 }
0121 }
0122
0123 static inline u16 DISPC_TRANS_COLOR(enum omap_channel channel)
0124 {
0125 switch (channel) {
0126 case OMAP_DSS_CHANNEL_LCD:
0127 return 0x0054;
0128 case OMAP_DSS_CHANNEL_DIGIT:
0129 return 0x0058;
0130 case OMAP_DSS_CHANNEL_LCD2:
0131 return 0x03B0;
0132 case OMAP_DSS_CHANNEL_LCD3:
0133 return 0x0818;
0134 default:
0135 BUG();
0136 return 0;
0137 }
0138 }
0139
0140 static inline u16 DISPC_TIMING_H(enum omap_channel channel)
0141 {
0142 switch (channel) {
0143 case OMAP_DSS_CHANNEL_LCD:
0144 return 0x0064;
0145 case OMAP_DSS_CHANNEL_DIGIT:
0146 BUG();
0147 return 0;
0148 case OMAP_DSS_CHANNEL_LCD2:
0149 return 0x0400;
0150 case OMAP_DSS_CHANNEL_LCD3:
0151 return 0x0840;
0152 default:
0153 BUG();
0154 return 0;
0155 }
0156 }
0157
0158 static inline u16 DISPC_TIMING_V(enum omap_channel channel)
0159 {
0160 switch (channel) {
0161 case OMAP_DSS_CHANNEL_LCD:
0162 return 0x0068;
0163 case OMAP_DSS_CHANNEL_DIGIT:
0164 BUG();
0165 return 0;
0166 case OMAP_DSS_CHANNEL_LCD2:
0167 return 0x0404;
0168 case OMAP_DSS_CHANNEL_LCD3:
0169 return 0x0844;
0170 default:
0171 BUG();
0172 return 0;
0173 }
0174 }
0175
0176 static inline u16 DISPC_POL_FREQ(enum omap_channel channel)
0177 {
0178 switch (channel) {
0179 case OMAP_DSS_CHANNEL_LCD:
0180 return 0x006C;
0181 case OMAP_DSS_CHANNEL_DIGIT:
0182 BUG();
0183 return 0;
0184 case OMAP_DSS_CHANNEL_LCD2:
0185 return 0x0408;
0186 case OMAP_DSS_CHANNEL_LCD3:
0187 return 0x083C;
0188 default:
0189 BUG();
0190 return 0;
0191 }
0192 }
0193
0194 static inline u16 DISPC_DIVISORo(enum omap_channel channel)
0195 {
0196 switch (channel) {
0197 case OMAP_DSS_CHANNEL_LCD:
0198 return 0x0070;
0199 case OMAP_DSS_CHANNEL_DIGIT:
0200 BUG();
0201 return 0;
0202 case OMAP_DSS_CHANNEL_LCD2:
0203 return 0x040C;
0204 case OMAP_DSS_CHANNEL_LCD3:
0205 return 0x0838;
0206 default:
0207 BUG();
0208 return 0;
0209 }
0210 }
0211
0212
0213 static inline u16 DISPC_SIZE_MGR(enum omap_channel channel)
0214 {
0215 switch (channel) {
0216 case OMAP_DSS_CHANNEL_LCD:
0217 return 0x007C;
0218 case OMAP_DSS_CHANNEL_DIGIT:
0219 return 0x0078;
0220 case OMAP_DSS_CHANNEL_LCD2:
0221 return 0x03CC;
0222 case OMAP_DSS_CHANNEL_LCD3:
0223 return 0x0834;
0224 default:
0225 BUG();
0226 return 0;
0227 }
0228 }
0229
0230 static inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel)
0231 {
0232 switch (channel) {
0233 case OMAP_DSS_CHANNEL_LCD:
0234 return 0x01D4;
0235 case OMAP_DSS_CHANNEL_DIGIT:
0236 BUG();
0237 return 0;
0238 case OMAP_DSS_CHANNEL_LCD2:
0239 return 0x03C0;
0240 case OMAP_DSS_CHANNEL_LCD3:
0241 return 0x0828;
0242 default:
0243 BUG();
0244 return 0;
0245 }
0246 }
0247
0248 static inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel)
0249 {
0250 switch (channel) {
0251 case OMAP_DSS_CHANNEL_LCD:
0252 return 0x01D8;
0253 case OMAP_DSS_CHANNEL_DIGIT:
0254 BUG();
0255 return 0;
0256 case OMAP_DSS_CHANNEL_LCD2:
0257 return 0x03C4;
0258 case OMAP_DSS_CHANNEL_LCD3:
0259 return 0x082C;
0260 default:
0261 BUG();
0262 return 0;
0263 }
0264 }
0265
0266 static inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel)
0267 {
0268 switch (channel) {
0269 case OMAP_DSS_CHANNEL_LCD:
0270 return 0x01DC;
0271 case OMAP_DSS_CHANNEL_DIGIT:
0272 BUG();
0273 return 0;
0274 case OMAP_DSS_CHANNEL_LCD2:
0275 return 0x03C8;
0276 case OMAP_DSS_CHANNEL_LCD3:
0277 return 0x0830;
0278 default:
0279 BUG();
0280 return 0;
0281 }
0282 }
0283
0284 static inline u16 DISPC_CPR_COEF_R(enum omap_channel channel)
0285 {
0286 switch (channel) {
0287 case OMAP_DSS_CHANNEL_LCD:
0288 return 0x0220;
0289 case OMAP_DSS_CHANNEL_DIGIT:
0290 BUG();
0291 return 0;
0292 case OMAP_DSS_CHANNEL_LCD2:
0293 return 0x03BC;
0294 case OMAP_DSS_CHANNEL_LCD3:
0295 return 0x0824;
0296 default:
0297 BUG();
0298 return 0;
0299 }
0300 }
0301
0302 static inline u16 DISPC_CPR_COEF_G(enum omap_channel channel)
0303 {
0304 switch (channel) {
0305 case OMAP_DSS_CHANNEL_LCD:
0306 return 0x0224;
0307 case OMAP_DSS_CHANNEL_DIGIT:
0308 BUG();
0309 return 0;
0310 case OMAP_DSS_CHANNEL_LCD2:
0311 return 0x03B8;
0312 case OMAP_DSS_CHANNEL_LCD3:
0313 return 0x0820;
0314 default:
0315 BUG();
0316 return 0;
0317 }
0318 }
0319
0320 static inline u16 DISPC_CPR_COEF_B(enum omap_channel channel)
0321 {
0322 switch (channel) {
0323 case OMAP_DSS_CHANNEL_LCD:
0324 return 0x0228;
0325 case OMAP_DSS_CHANNEL_DIGIT:
0326 BUG();
0327 return 0;
0328 case OMAP_DSS_CHANNEL_LCD2:
0329 return 0x03B4;
0330 case OMAP_DSS_CHANNEL_LCD3:
0331 return 0x081C;
0332 default:
0333 BUG();
0334 return 0;
0335 }
0336 }
0337
0338
0339 static inline u16 DISPC_OVL_BASE(enum omap_plane plane)
0340 {
0341 switch (plane) {
0342 case OMAP_DSS_GFX:
0343 return 0x0080;
0344 case OMAP_DSS_VIDEO1:
0345 return 0x00BC;
0346 case OMAP_DSS_VIDEO2:
0347 return 0x014C;
0348 case OMAP_DSS_VIDEO3:
0349 return 0x0300;
0350 case OMAP_DSS_WB:
0351 return 0x0500;
0352 default:
0353 BUG();
0354 return 0;
0355 }
0356 }
0357
0358
0359 static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane)
0360 {
0361 switch (plane) {
0362 case OMAP_DSS_GFX:
0363 case OMAP_DSS_VIDEO1:
0364 case OMAP_DSS_VIDEO2:
0365 return 0x0000;
0366 case OMAP_DSS_VIDEO3:
0367 case OMAP_DSS_WB:
0368 return 0x0008;
0369 default:
0370 BUG();
0371 return 0;
0372 }
0373 }
0374
0375 static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane)
0376 {
0377 switch (plane) {
0378 case OMAP_DSS_GFX:
0379 case OMAP_DSS_VIDEO1:
0380 case OMAP_DSS_VIDEO2:
0381 return 0x0004;
0382 case OMAP_DSS_VIDEO3:
0383 case OMAP_DSS_WB:
0384 return 0x000C;
0385 default:
0386 BUG();
0387 return 0;
0388 }
0389 }
0390
0391 static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane)
0392 {
0393 switch (plane) {
0394 case OMAP_DSS_GFX:
0395 BUG();
0396 return 0;
0397 case OMAP_DSS_VIDEO1:
0398 return 0x0544;
0399 case OMAP_DSS_VIDEO2:
0400 return 0x04BC;
0401 case OMAP_DSS_VIDEO3:
0402 return 0x0310;
0403 case OMAP_DSS_WB:
0404 return 0x0118;
0405 default:
0406 BUG();
0407 return 0;
0408 }
0409 }
0410
0411 static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane)
0412 {
0413 switch (plane) {
0414 case OMAP_DSS_GFX:
0415 BUG();
0416 return 0;
0417 case OMAP_DSS_VIDEO1:
0418 return 0x0548;
0419 case OMAP_DSS_VIDEO2:
0420 return 0x04C0;
0421 case OMAP_DSS_VIDEO3:
0422 return 0x0314;
0423 case OMAP_DSS_WB:
0424 return 0x011C;
0425 default:
0426 BUG();
0427 return 0;
0428 }
0429 }
0430
0431 static inline u16 DISPC_POS_OFFSET(enum omap_plane plane)
0432 {
0433 switch (plane) {
0434 case OMAP_DSS_GFX:
0435 case OMAP_DSS_VIDEO1:
0436 case OMAP_DSS_VIDEO2:
0437 return 0x0008;
0438 case OMAP_DSS_VIDEO3:
0439 return 0x009C;
0440 default:
0441 BUG();
0442 return 0;
0443 }
0444 }
0445
0446 static inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane)
0447 {
0448 switch (plane) {
0449 case OMAP_DSS_GFX:
0450 case OMAP_DSS_VIDEO1:
0451 case OMAP_DSS_VIDEO2:
0452 return 0x000C;
0453 case OMAP_DSS_VIDEO3:
0454 case OMAP_DSS_WB:
0455 return 0x00A8;
0456 default:
0457 BUG();
0458 return 0;
0459 }
0460 }
0461
0462 static inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane)
0463 {
0464 switch (plane) {
0465 case OMAP_DSS_GFX:
0466 return 0x0020;
0467 case OMAP_DSS_VIDEO1:
0468 case OMAP_DSS_VIDEO2:
0469 return 0x0010;
0470 case OMAP_DSS_VIDEO3:
0471 case OMAP_DSS_WB:
0472 return 0x0070;
0473 default:
0474 BUG();
0475 return 0;
0476 }
0477 }
0478
0479 static inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane)
0480 {
0481 switch (plane) {
0482 case OMAP_DSS_GFX:
0483 BUG();
0484 return 0;
0485 case OMAP_DSS_VIDEO1:
0486 return 0x0568;
0487 case OMAP_DSS_VIDEO2:
0488 return 0x04DC;
0489 case OMAP_DSS_VIDEO3:
0490 return 0x032C;
0491 case OMAP_DSS_WB:
0492 return 0x0310;
0493 default:
0494 BUG();
0495 return 0;
0496 }
0497 }
0498
0499 static inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane)
0500 {
0501 switch (plane) {
0502 case OMAP_DSS_GFX:
0503 return 0x0024;
0504 case OMAP_DSS_VIDEO1:
0505 case OMAP_DSS_VIDEO2:
0506 return 0x0014;
0507 case OMAP_DSS_VIDEO3:
0508 case OMAP_DSS_WB:
0509 return 0x008C;
0510 default:
0511 BUG();
0512 return 0;
0513 }
0514 }
0515
0516 static inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane)
0517 {
0518 switch (plane) {
0519 case OMAP_DSS_GFX:
0520 return 0x0028;
0521 case OMAP_DSS_VIDEO1:
0522 case OMAP_DSS_VIDEO2:
0523 return 0x0018;
0524 case OMAP_DSS_VIDEO3:
0525 case OMAP_DSS_WB:
0526 return 0x0088;
0527 default:
0528 BUG();
0529 return 0;
0530 }
0531 }
0532
0533 static inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane)
0534 {
0535 switch (plane) {
0536 case OMAP_DSS_GFX:
0537 return 0x002C;
0538 case OMAP_DSS_VIDEO1:
0539 case OMAP_DSS_VIDEO2:
0540 return 0x001C;
0541 case OMAP_DSS_VIDEO3:
0542 case OMAP_DSS_WB:
0543 return 0x00A4;
0544 default:
0545 BUG();
0546 return 0;
0547 }
0548 }
0549
0550 static inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane)
0551 {
0552 switch (plane) {
0553 case OMAP_DSS_GFX:
0554 return 0x0030;
0555 case OMAP_DSS_VIDEO1:
0556 case OMAP_DSS_VIDEO2:
0557 return 0x0020;
0558 case OMAP_DSS_VIDEO3:
0559 case OMAP_DSS_WB:
0560 return 0x0098;
0561 default:
0562 BUG();
0563 return 0;
0564 }
0565 }
0566
0567 static inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane)
0568 {
0569 switch (plane) {
0570 case OMAP_DSS_GFX:
0571 return 0x0034;
0572 case OMAP_DSS_VIDEO1:
0573 case OMAP_DSS_VIDEO2:
0574 case OMAP_DSS_VIDEO3:
0575 BUG();
0576 return 0;
0577 default:
0578 BUG();
0579 return 0;
0580 }
0581 }
0582
0583 static inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane)
0584 {
0585 switch (plane) {
0586 case OMAP_DSS_GFX:
0587 return 0x0038;
0588 case OMAP_DSS_VIDEO1:
0589 case OMAP_DSS_VIDEO2:
0590 case OMAP_DSS_VIDEO3:
0591 BUG();
0592 return 0;
0593 default:
0594 BUG();
0595 return 0;
0596 }
0597 }
0598
0599 static inline u16 DISPC_FIR_OFFSET(enum omap_plane plane)
0600 {
0601 switch (plane) {
0602 case OMAP_DSS_GFX:
0603 BUG();
0604 return 0;
0605 case OMAP_DSS_VIDEO1:
0606 case OMAP_DSS_VIDEO2:
0607 return 0x0024;
0608 case OMAP_DSS_VIDEO3:
0609 case OMAP_DSS_WB:
0610 return 0x0090;
0611 default:
0612 BUG();
0613 return 0;
0614 }
0615 }
0616
0617 static inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane)
0618 {
0619 switch (plane) {
0620 case OMAP_DSS_GFX:
0621 BUG();
0622 return 0;
0623 case OMAP_DSS_VIDEO1:
0624 return 0x0580;
0625 case OMAP_DSS_VIDEO2:
0626 return 0x055C;
0627 case OMAP_DSS_VIDEO3:
0628 return 0x0424;
0629 case OMAP_DSS_WB:
0630 return 0x290;
0631 default:
0632 BUG();
0633 return 0;
0634 }
0635 }
0636
0637 static inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane)
0638 {
0639 switch (plane) {
0640 case OMAP_DSS_GFX:
0641 BUG();
0642 return 0;
0643 case OMAP_DSS_VIDEO1:
0644 case OMAP_DSS_VIDEO2:
0645 return 0x0028;
0646 case OMAP_DSS_VIDEO3:
0647 case OMAP_DSS_WB:
0648 return 0x0094;
0649 default:
0650 BUG();
0651 return 0;
0652 }
0653 }
0654
0655
0656 static inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane)
0657 {
0658 switch (plane) {
0659 case OMAP_DSS_GFX:
0660 BUG();
0661 return 0;
0662 case OMAP_DSS_VIDEO1:
0663 case OMAP_DSS_VIDEO2:
0664 return 0x002C;
0665 case OMAP_DSS_VIDEO3:
0666 case OMAP_DSS_WB:
0667 return 0x0000;
0668 default:
0669 BUG();
0670 return 0;
0671 }
0672 }
0673
0674 static inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane)
0675 {
0676 switch (plane) {
0677 case OMAP_DSS_GFX:
0678 BUG();
0679 return 0;
0680 case OMAP_DSS_VIDEO1:
0681 return 0x0584;
0682 case OMAP_DSS_VIDEO2:
0683 return 0x0560;
0684 case OMAP_DSS_VIDEO3:
0685 return 0x0428;
0686 case OMAP_DSS_WB:
0687 return 0x0294;
0688 default:
0689 BUG();
0690 return 0;
0691 }
0692 }
0693
0694 static inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane)
0695 {
0696 switch (plane) {
0697 case OMAP_DSS_GFX:
0698 BUG();
0699 return 0;
0700 case OMAP_DSS_VIDEO1:
0701 case OMAP_DSS_VIDEO2:
0702 return 0x0030;
0703 case OMAP_DSS_VIDEO3:
0704 case OMAP_DSS_WB:
0705 return 0x0004;
0706 default:
0707 BUG();
0708 return 0;
0709 }
0710 }
0711
0712 static inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane)
0713 {
0714 switch (plane) {
0715 case OMAP_DSS_GFX:
0716 BUG();
0717 return 0;
0718 case OMAP_DSS_VIDEO1:
0719 return 0x0588;
0720 case OMAP_DSS_VIDEO2:
0721 return 0x0564;
0722 case OMAP_DSS_VIDEO3:
0723 return 0x042C;
0724 case OMAP_DSS_WB:
0725 return 0x0298;
0726 default:
0727 BUG();
0728 return 0;
0729 }
0730 }
0731
0732
0733 static inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i)
0734 {
0735 switch (plane) {
0736 case OMAP_DSS_GFX:
0737 BUG();
0738 return 0;
0739 case OMAP_DSS_VIDEO1:
0740 case OMAP_DSS_VIDEO2:
0741 return 0x0034 + i * 0x8;
0742 case OMAP_DSS_VIDEO3:
0743 case OMAP_DSS_WB:
0744 return 0x0010 + i * 0x8;
0745 default:
0746 BUG();
0747 return 0;
0748 }
0749 }
0750
0751
0752 static inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i)
0753 {
0754 switch (plane) {
0755 case OMAP_DSS_GFX:
0756 BUG();
0757 return 0;
0758 case OMAP_DSS_VIDEO1:
0759 return 0x058C + i * 0x8;
0760 case OMAP_DSS_VIDEO2:
0761 return 0x0568 + i * 0x8;
0762 case OMAP_DSS_VIDEO3:
0763 return 0x0430 + i * 0x8;
0764 case OMAP_DSS_WB:
0765 return 0x02A0 + i * 0x8;
0766 default:
0767 BUG();
0768 return 0;
0769 }
0770 }
0771
0772
0773 static inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i)
0774 {
0775 switch (plane) {
0776 case OMAP_DSS_GFX:
0777 BUG();
0778 return 0;
0779 case OMAP_DSS_VIDEO1:
0780 case OMAP_DSS_VIDEO2:
0781 return 0x0038 + i * 0x8;
0782 case OMAP_DSS_VIDEO3:
0783 case OMAP_DSS_WB:
0784 return 0x0014 + i * 0x8;
0785 default:
0786 BUG();
0787 return 0;
0788 }
0789 }
0790
0791
0792 static inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i)
0793 {
0794 switch (plane) {
0795 case OMAP_DSS_GFX:
0796 BUG();
0797 return 0;
0798 case OMAP_DSS_VIDEO1:
0799 return 0x0590 + i * 8;
0800 case OMAP_DSS_VIDEO2:
0801 return 0x056C + i * 0x8;
0802 case OMAP_DSS_VIDEO3:
0803 return 0x0434 + i * 0x8;
0804 case OMAP_DSS_WB:
0805 return 0x02A4 + i * 0x8;
0806 default:
0807 BUG();
0808 return 0;
0809 }
0810 }
0811
0812
0813 static inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i)
0814 {
0815 switch (plane) {
0816 case OMAP_DSS_GFX:
0817 BUG();
0818 return 0;
0819 case OMAP_DSS_VIDEO1:
0820 case OMAP_DSS_VIDEO2:
0821 case OMAP_DSS_VIDEO3:
0822 case OMAP_DSS_WB:
0823 return 0x0074 + i * 0x4;
0824 default:
0825 BUG();
0826 return 0;
0827 }
0828 }
0829
0830
0831 static inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i)
0832 {
0833 switch (plane) {
0834 case OMAP_DSS_GFX:
0835 BUG();
0836 return 0;
0837 case OMAP_DSS_VIDEO1:
0838 return 0x0124 + i * 0x4;
0839 case OMAP_DSS_VIDEO2:
0840 return 0x00B4 + i * 0x4;
0841 case OMAP_DSS_VIDEO3:
0842 case OMAP_DSS_WB:
0843 return 0x0050 + i * 0x4;
0844 default:
0845 BUG();
0846 return 0;
0847 }
0848 }
0849
0850
0851 static inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i)
0852 {
0853 switch (plane) {
0854 case OMAP_DSS_GFX:
0855 BUG();
0856 return 0;
0857 case OMAP_DSS_VIDEO1:
0858 return 0x05CC + i * 0x4;
0859 case OMAP_DSS_VIDEO2:
0860 return 0x05A8 + i * 0x4;
0861 case OMAP_DSS_VIDEO3:
0862 return 0x0470 + i * 0x4;
0863 case OMAP_DSS_WB:
0864 return 0x02E0 + i * 0x4;
0865 default:
0866 BUG();
0867 return 0;
0868 }
0869 }
0870
0871 static inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane)
0872 {
0873 switch (plane) {
0874 case OMAP_DSS_GFX:
0875 return 0x01AC;
0876 case OMAP_DSS_VIDEO1:
0877 return 0x0174;
0878 case OMAP_DSS_VIDEO2:
0879 return 0x00E8;
0880 case OMAP_DSS_VIDEO3:
0881 return 0x00A0;
0882 default:
0883 BUG();
0884 return 0;
0885 }
0886 }
0887
0888 static inline u16 DISPC_MFLAG_THRESHOLD_OFFSET(enum omap_plane plane)
0889 {
0890 switch (plane) {
0891 case OMAP_DSS_GFX:
0892 return 0x0860;
0893 case OMAP_DSS_VIDEO1:
0894 return 0x0864;
0895 case OMAP_DSS_VIDEO2:
0896 return 0x0868;
0897 case OMAP_DSS_VIDEO3:
0898 return 0x086c;
0899 case OMAP_DSS_WB:
0900 return 0x0870;
0901 default:
0902 BUG();
0903 return 0;
0904 }
0905 }
0906
0907 #endif