diff options
-rw-r--r-- | drivers/video/omap2/dss/dispc.c | 178 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dispc.h | 212 |
2 files changed, 276 insertions, 114 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c index 46f456adcb61..698d418c5c5d 100644 --- a/drivers/video/omap2/dss/dispc.c +++ b/drivers/video/omap2/dss/dispc.c | |||
@@ -136,27 +136,27 @@ void dispc_save_context(void) | |||
136 | SR(IRQENABLE); | 136 | SR(IRQENABLE); |
137 | SR(CONTROL); | 137 | SR(CONTROL); |
138 | SR(CONFIG); | 138 | SR(CONFIG); |
139 | SR(DEFAULT_COLOR(0)); | 139 | SR(DEFAULT_COLOR(OMAP_DSS_CHANNEL_LCD)); |
140 | SR(DEFAULT_COLOR(1)); | 140 | SR(DEFAULT_COLOR(OMAP_DSS_CHANNEL_DIGIT)); |
141 | SR(TRANS_COLOR(0)); | 141 | SR(TRANS_COLOR(OMAP_DSS_CHANNEL_LCD)); |
142 | SR(TRANS_COLOR(1)); | 142 | SR(TRANS_COLOR(OMAP_DSS_CHANNEL_DIGIT)); |
143 | SR(LINE_NUMBER); | 143 | SR(LINE_NUMBER); |
144 | SR(TIMING_H(0)); | 144 | SR(TIMING_H(OMAP_DSS_CHANNEL_LCD)); |
145 | SR(TIMING_V(0)); | 145 | SR(TIMING_V(OMAP_DSS_CHANNEL_LCD)); |
146 | SR(POL_FREQ(0)); | 146 | SR(POL_FREQ(OMAP_DSS_CHANNEL_LCD)); |
147 | SR(DIVISORo(0)); | 147 | SR(DIVISORo(OMAP_DSS_CHANNEL_LCD)); |
148 | SR(GLOBAL_ALPHA); | 148 | SR(GLOBAL_ALPHA); |
149 | SR(SIZE_DIG); | 149 | SR(SIZE_MGR(OMAP_DSS_CHANNEL_DIGIT)); |
150 | SR(SIZE_LCD(0)); | 150 | SR(SIZE_MGR(OMAP_DSS_CHANNEL_LCD)); |
151 | if (dss_has_feature(FEAT_MGR_LCD2)) { | 151 | if (dss_has_feature(FEAT_MGR_LCD2)) { |
152 | SR(CONTROL2); | 152 | SR(CONTROL2); |
153 | SR(DEFAULT_COLOR(2)); | 153 | SR(DEFAULT_COLOR(OMAP_DSS_CHANNEL_LCD2)); |
154 | SR(TRANS_COLOR(2)); | 154 | SR(TRANS_COLOR(OMAP_DSS_CHANNEL_LCD2)); |
155 | SR(SIZE_LCD(2)); | 155 | SR(SIZE_MGR(OMAP_DSS_CHANNEL_LCD2)); |
156 | SR(TIMING_H(2)); | 156 | SR(TIMING_H(OMAP_DSS_CHANNEL_LCD2)); |
157 | SR(TIMING_V(2)); | 157 | SR(TIMING_V(OMAP_DSS_CHANNEL_LCD2)); |
158 | SR(POL_FREQ(2)); | 158 | SR(POL_FREQ(OMAP_DSS_CHANNEL_LCD2)); |
159 | SR(DIVISORo(2)); | 159 | SR(DIVISORo(OMAP_DSS_CHANNEL_LCD2)); |
160 | SR(CONFIG2); | 160 | SR(CONFIG2); |
161 | } | 161 | } |
162 | 162 | ||
@@ -171,21 +171,21 @@ void dispc_save_context(void) | |||
171 | SR(OVL_WINDOW_SKIP(OMAP_DSS_GFX)); | 171 | SR(OVL_WINDOW_SKIP(OMAP_DSS_GFX)); |
172 | SR(OVL_TABLE_BA(OMAP_DSS_GFX)); | 172 | SR(OVL_TABLE_BA(OMAP_DSS_GFX)); |
173 | 173 | ||
174 | SR(DATA_CYCLE1(0)); | 174 | SR(DATA_CYCLE1(OMAP_DSS_CHANNEL_LCD)); |
175 | SR(DATA_CYCLE2(0)); | 175 | SR(DATA_CYCLE2(OMAP_DSS_CHANNEL_LCD)); |
176 | SR(DATA_CYCLE3(0)); | 176 | SR(DATA_CYCLE3(OMAP_DSS_CHANNEL_LCD)); |
177 | 177 | ||
178 | SR(CPR_COEF_R(0)); | 178 | SR(CPR_COEF_R(OMAP_DSS_CHANNEL_LCD)); |
179 | SR(CPR_COEF_G(0)); | 179 | SR(CPR_COEF_G(OMAP_DSS_CHANNEL_LCD)); |
180 | SR(CPR_COEF_B(0)); | 180 | SR(CPR_COEF_B(OMAP_DSS_CHANNEL_LCD)); |
181 | if (dss_has_feature(FEAT_MGR_LCD2)) { | 181 | if (dss_has_feature(FEAT_MGR_LCD2)) { |
182 | SR(CPR_COEF_B(2)); | 182 | SR(CPR_COEF_B(OMAP_DSS_CHANNEL_LCD2)); |
183 | SR(CPR_COEF_G(2)); | 183 | SR(CPR_COEF_G(OMAP_DSS_CHANNEL_LCD2)); |
184 | SR(CPR_COEF_R(2)); | 184 | SR(CPR_COEF_R(OMAP_DSS_CHANNEL_LCD2)); |
185 | 185 | ||
186 | SR(DATA_CYCLE1(2)); | 186 | SR(DATA_CYCLE1(OMAP_DSS_CHANNEL_LCD2)); |
187 | SR(DATA_CYCLE2(2)); | 187 | SR(DATA_CYCLE2(OMAP_DSS_CHANNEL_LCD2)); |
188 | SR(DATA_CYCLE3(2)); | 188 | SR(DATA_CYCLE3(OMAP_DSS_CHANNEL_LCD2)); |
189 | } | 189 | } |
190 | 190 | ||
191 | SR(OVL_PRELOAD(OMAP_DSS_GFX)); | 191 | SR(OVL_PRELOAD(OMAP_DSS_GFX)); |
@@ -298,26 +298,26 @@ void dispc_restore_context(void) | |||
298 | /*RR(IRQENABLE);*/ | 298 | /*RR(IRQENABLE);*/ |
299 | /*RR(CONTROL);*/ | 299 | /*RR(CONTROL);*/ |
300 | RR(CONFIG); | 300 | RR(CONFIG); |
301 | RR(DEFAULT_COLOR(0)); | 301 | RR(DEFAULT_COLOR(OMAP_DSS_CHANNEL_LCD)); |
302 | RR(DEFAULT_COLOR(1)); | 302 | RR(DEFAULT_COLOR(OMAP_DSS_CHANNEL_DIGIT)); |
303 | RR(TRANS_COLOR(0)); | 303 | RR(TRANS_COLOR(OMAP_DSS_CHANNEL_LCD)); |
304 | RR(TRANS_COLOR(1)); | 304 | RR(TRANS_COLOR(OMAP_DSS_CHANNEL_DIGIT)); |
305 | RR(LINE_NUMBER); | 305 | RR(LINE_NUMBER); |
306 | RR(TIMING_H(0)); | 306 | RR(TIMING_H(OMAP_DSS_CHANNEL_LCD)); |
307 | RR(TIMING_V(0)); | 307 | RR(TIMING_V(OMAP_DSS_CHANNEL_LCD)); |
308 | RR(POL_FREQ(0)); | 308 | RR(POL_FREQ(OMAP_DSS_CHANNEL_LCD)); |
309 | RR(DIVISORo(0)); | 309 | RR(DIVISORo(OMAP_DSS_CHANNEL_LCD)); |
310 | RR(GLOBAL_ALPHA); | 310 | RR(GLOBAL_ALPHA); |
311 | RR(SIZE_DIG); | 311 | RR(SIZE_MGR(OMAP_DSS_CHANNEL_DIGIT)); |
312 | RR(SIZE_LCD(0)); | 312 | RR(SIZE_MGR(OMAP_DSS_CHANNEL_LCD)); |
313 | if (dss_has_feature(FEAT_MGR_LCD2)) { | 313 | if (dss_has_feature(FEAT_MGR_LCD2)) { |
314 | RR(DEFAULT_COLOR(2)); | 314 | RR(DEFAULT_COLOR(OMAP_DSS_CHANNEL_LCD2)); |
315 | RR(TRANS_COLOR(2)); | 315 | RR(TRANS_COLOR(OMAP_DSS_CHANNEL_LCD2)); |
316 | RR(SIZE_LCD(2)); | 316 | RR(SIZE_MGR(OMAP_DSS_CHANNEL_LCD2)); |
317 | RR(TIMING_H(2)); | 317 | RR(TIMING_H(OMAP_DSS_CHANNEL_LCD2)); |
318 | RR(TIMING_V(2)); | 318 | RR(TIMING_V(OMAP_DSS_CHANNEL_LCD2)); |
319 | RR(POL_FREQ(2)); | 319 | RR(POL_FREQ(OMAP_DSS_CHANNEL_LCD2)); |
320 | RR(DIVISORo(2)); | 320 | RR(DIVISORo(OMAP_DSS_CHANNEL_LCD2)); |
321 | RR(CONFIG2); | 321 | RR(CONFIG2); |
322 | } | 322 | } |
323 | 323 | ||
@@ -333,21 +333,21 @@ void dispc_restore_context(void) | |||
333 | RR(OVL_TABLE_BA(OMAP_DSS_GFX)); | 333 | RR(OVL_TABLE_BA(OMAP_DSS_GFX)); |
334 | 334 | ||
335 | 335 | ||
336 | RR(DATA_CYCLE1(0)); | 336 | RR(DATA_CYCLE1(OMAP_DSS_CHANNEL_LCD)); |
337 | RR(DATA_CYCLE2(0)); | 337 | RR(DATA_CYCLE2(OMAP_DSS_CHANNEL_LCD)); |
338 | RR(DATA_CYCLE3(0)); | 338 | RR(DATA_CYCLE3(OMAP_DSS_CHANNEL_LCD)); |
339 | 339 | ||
340 | RR(CPR_COEF_R(0)); | 340 | RR(CPR_COEF_R(OMAP_DSS_CHANNEL_LCD)); |
341 | RR(CPR_COEF_G(0)); | 341 | RR(CPR_COEF_G(OMAP_DSS_CHANNEL_LCD)); |
342 | RR(CPR_COEF_B(0)); | 342 | RR(CPR_COEF_B(OMAP_DSS_CHANNEL_LCD)); |
343 | if (dss_has_feature(FEAT_MGR_LCD2)) { | 343 | if (dss_has_feature(FEAT_MGR_LCD2)) { |
344 | RR(DATA_CYCLE1(2)); | 344 | RR(DATA_CYCLE1(OMAP_DSS_CHANNEL_LCD2)); |
345 | RR(DATA_CYCLE2(2)); | 345 | RR(DATA_CYCLE2(OMAP_DSS_CHANNEL_LCD2)); |
346 | RR(DATA_CYCLE3(2)); | 346 | RR(DATA_CYCLE3(OMAP_DSS_CHANNEL_LCD2)); |
347 | 347 | ||
348 | RR(CPR_COEF_B(2)); | 348 | RR(CPR_COEF_B(OMAP_DSS_CHANNEL_LCD2)); |
349 | RR(CPR_COEF_G(2)); | 349 | RR(CPR_COEF_G(OMAP_DSS_CHANNEL_LCD2)); |
350 | RR(CPR_COEF_R(2)); | 350 | RR(CPR_COEF_R(OMAP_DSS_CHANNEL_LCD2)); |
351 | } | 351 | } |
352 | 352 | ||
353 | RR(OVL_PRELOAD(OMAP_DSS_GFX)); | 353 | RR(OVL_PRELOAD(OMAP_DSS_GFX)); |
@@ -953,7 +953,7 @@ void dispc_set_lcd_size(enum omap_channel channel, u16 width, u16 height) | |||
953 | BUG_ON((width > (1 << 11)) || (height > (1 << 11))); | 953 | BUG_ON((width > (1 << 11)) || (height > (1 << 11))); |
954 | val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0); | 954 | val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0); |
955 | enable_clocks(1); | 955 | enable_clocks(1); |
956 | dispc_write_reg(DISPC_SIZE_LCD(channel), val); | 956 | dispc_write_reg(DISPC_SIZE_MGR(channel), val); |
957 | enable_clocks(0); | 957 | enable_clocks(0); |
958 | } | 958 | } |
959 | 959 | ||
@@ -963,7 +963,7 @@ void dispc_set_digit_size(u16 width, u16 height) | |||
963 | BUG_ON((width > (1 << 11)) || (height > (1 << 11))); | 963 | BUG_ON((width > (1 << 11)) || (height > (1 << 11))); |
964 | val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0); | 964 | val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0); |
965 | enable_clocks(1); | 965 | enable_clocks(1); |
966 | dispc_write_reg(DISPC_SIZE_DIG, val); | 966 | dispc_write_reg(DISPC_SIZE_MGR(OMAP_DSS_CHANNEL_DIGIT), val); |
967 | enable_clocks(0); | 967 | enable_clocks(0); |
968 | } | 968 | } |
969 | 969 | ||
@@ -2414,29 +2414,29 @@ void dispc_dump_regs(struct seq_file *s) | |||
2414 | DUMPREG(DISPC_CONTROL); | 2414 | DUMPREG(DISPC_CONTROL); |
2415 | DUMPREG(DISPC_CONFIG); | 2415 | DUMPREG(DISPC_CONFIG); |
2416 | DUMPREG(DISPC_CAPABLE); | 2416 | DUMPREG(DISPC_CAPABLE); |
2417 | DUMPREG(DISPC_DEFAULT_COLOR(0)); | 2417 | DUMPREG(DISPC_DEFAULT_COLOR(OMAP_DSS_CHANNEL_LCD)); |
2418 | DUMPREG(DISPC_DEFAULT_COLOR(1)); | 2418 | DUMPREG(DISPC_DEFAULT_COLOR(OMAP_DSS_CHANNEL_DIGIT)); |
2419 | DUMPREG(DISPC_TRANS_COLOR(0)); | 2419 | DUMPREG(DISPC_TRANS_COLOR(OMAP_DSS_CHANNEL_LCD)); |
2420 | DUMPREG(DISPC_TRANS_COLOR(1)); | 2420 | DUMPREG(DISPC_TRANS_COLOR(OMAP_DSS_CHANNEL_DIGIT)); |
2421 | DUMPREG(DISPC_LINE_STATUS); | 2421 | DUMPREG(DISPC_LINE_STATUS); |
2422 | DUMPREG(DISPC_LINE_NUMBER); | 2422 | DUMPREG(DISPC_LINE_NUMBER); |
2423 | DUMPREG(DISPC_TIMING_H(0)); | 2423 | DUMPREG(DISPC_TIMING_H(OMAP_DSS_CHANNEL_LCD)); |
2424 | DUMPREG(DISPC_TIMING_V(0)); | 2424 | DUMPREG(DISPC_TIMING_V(OMAP_DSS_CHANNEL_LCD)); |
2425 | DUMPREG(DISPC_POL_FREQ(0)); | 2425 | DUMPREG(DISPC_POL_FREQ(OMAP_DSS_CHANNEL_LCD)); |
2426 | DUMPREG(DISPC_DIVISORo(0)); | 2426 | DUMPREG(DISPC_DIVISORo(OMAP_DSS_CHANNEL_LCD)); |
2427 | DUMPREG(DISPC_GLOBAL_ALPHA); | 2427 | DUMPREG(DISPC_GLOBAL_ALPHA); |
2428 | DUMPREG(DISPC_SIZE_DIG); | 2428 | DUMPREG(DISPC_SIZE_MGR(OMAP_DSS_CHANNEL_DIGIT)); |
2429 | DUMPREG(DISPC_SIZE_LCD(0)); | 2429 | DUMPREG(DISPC_SIZE_MGR(OMAP_DSS_CHANNEL_LCD)); |
2430 | if (dss_has_feature(FEAT_MGR_LCD2)) { | 2430 | if (dss_has_feature(FEAT_MGR_LCD2)) { |
2431 | DUMPREG(DISPC_CONTROL2); | 2431 | DUMPREG(DISPC_CONTROL2); |
2432 | DUMPREG(DISPC_CONFIG2); | 2432 | DUMPREG(DISPC_CONFIG2); |
2433 | DUMPREG(DISPC_DEFAULT_COLOR(2)); | 2433 | DUMPREG(DISPC_DEFAULT_COLOR(OMAP_DSS_CHANNEL_LCD2)); |
2434 | DUMPREG(DISPC_TRANS_COLOR(2)); | 2434 | DUMPREG(DISPC_TRANS_COLOR(OMAP_DSS_CHANNEL_LCD2)); |
2435 | DUMPREG(DISPC_TIMING_H(2)); | 2435 | DUMPREG(DISPC_TIMING_H(OMAP_DSS_CHANNEL_LCD2)); |
2436 | DUMPREG(DISPC_TIMING_V(2)); | 2436 | DUMPREG(DISPC_TIMING_V(OMAP_DSS_CHANNEL_LCD2)); |
2437 | DUMPREG(DISPC_POL_FREQ(2)); | 2437 | DUMPREG(DISPC_POL_FREQ(OMAP_DSS_CHANNEL_LCD2)); |
2438 | DUMPREG(DISPC_DIVISORo(2)); | 2438 | DUMPREG(DISPC_DIVISORo(OMAP_DSS_CHANNEL_LCD2)); |
2439 | DUMPREG(DISPC_SIZE_LCD(2)); | 2439 | DUMPREG(DISPC_SIZE_MGR(OMAP_DSS_CHANNEL_LCD2)); |
2440 | } | 2440 | } |
2441 | 2441 | ||
2442 | DUMPREG(DISPC_OVL_BA0(OMAP_DSS_GFX)); | 2442 | DUMPREG(DISPC_OVL_BA0(OMAP_DSS_GFX)); |
@@ -2451,21 +2451,21 @@ void dispc_dump_regs(struct seq_file *s) | |||
2451 | DUMPREG(DISPC_OVL_WINDOW_SKIP(OMAP_DSS_GFX)); | 2451 | DUMPREG(DISPC_OVL_WINDOW_SKIP(OMAP_DSS_GFX)); |
2452 | DUMPREG(DISPC_OVL_TABLE_BA(OMAP_DSS_GFX)); | 2452 | DUMPREG(DISPC_OVL_TABLE_BA(OMAP_DSS_GFX)); |
2453 | 2453 | ||
2454 | DUMPREG(DISPC_DATA_CYCLE1(0)); | 2454 | DUMPREG(DISPC_DATA_CYCLE1(OMAP_DSS_CHANNEL_LCD)); |
2455 | DUMPREG(DISPC_DATA_CYCLE2(0)); | 2455 | DUMPREG(DISPC_DATA_CYCLE2(OMAP_DSS_CHANNEL_LCD)); |
2456 | DUMPREG(DISPC_DATA_CYCLE3(0)); | 2456 | DUMPREG(DISPC_DATA_CYCLE3(OMAP_DSS_CHANNEL_LCD)); |
2457 | 2457 | ||
2458 | DUMPREG(DISPC_CPR_COEF_R(0)); | 2458 | DUMPREG(DISPC_CPR_COEF_R(OMAP_DSS_CHANNEL_LCD)); |
2459 | DUMPREG(DISPC_CPR_COEF_G(0)); | 2459 | DUMPREG(DISPC_CPR_COEF_G(OMAP_DSS_CHANNEL_LCD)); |
2460 | DUMPREG(DISPC_CPR_COEF_B(0)); | 2460 | DUMPREG(DISPC_CPR_COEF_B(OMAP_DSS_CHANNEL_LCD)); |
2461 | if (dss_has_feature(FEAT_MGR_LCD2)) { | 2461 | if (dss_has_feature(FEAT_MGR_LCD2)) { |
2462 | DUMPREG(DISPC_DATA_CYCLE1(2)); | 2462 | DUMPREG(DISPC_DATA_CYCLE1(OMAP_DSS_CHANNEL_LCD2)); |
2463 | DUMPREG(DISPC_DATA_CYCLE2(2)); | 2463 | DUMPREG(DISPC_DATA_CYCLE2(OMAP_DSS_CHANNEL_LCD2)); |
2464 | DUMPREG(DISPC_DATA_CYCLE3(2)); | 2464 | DUMPREG(DISPC_DATA_CYCLE3(OMAP_DSS_CHANNEL_LCD2)); |
2465 | 2465 | ||
2466 | DUMPREG(DISPC_CPR_COEF_R(2)); | 2466 | DUMPREG(DISPC_CPR_COEF_R(OMAP_DSS_CHANNEL_LCD2)); |
2467 | DUMPREG(DISPC_CPR_COEF_G(2)); | 2467 | DUMPREG(DISPC_CPR_COEF_G(OMAP_DSS_CHANNEL_LCD2)); |
2468 | DUMPREG(DISPC_CPR_COEF_B(2)); | 2468 | DUMPREG(DISPC_CPR_COEF_B(OMAP_DSS_CHANNEL_LCD2)); |
2469 | } | 2469 | } |
2470 | 2470 | ||
2471 | DUMPREG(DISPC_OVL_PRELOAD(OMAP_DSS_GFX)); | 2471 | DUMPREG(DISPC_OVL_PRELOAD(OMAP_DSS_GFX)); |
diff --git a/drivers/video/omap2/dss/dispc.h b/drivers/video/omap2/dss/dispc.h index f22346b59c58..05e56621d1f4 100644 --- a/drivers/video/omap2/dss/dispc.h +++ b/drivers/video/omap2/dss/dispc.h | |||
@@ -25,42 +25,20 @@ struct dispc_reg { u16 idx; }; | |||
25 | 25 | ||
26 | #define DISPC_REG(idx) ((const struct dispc_reg) { idx }) | 26 | #define DISPC_REG(idx) ((const struct dispc_reg) { idx }) |
27 | 27 | ||
28 | /* | 28 | /* DISPC common registers */ |
29 | * DISPC common registers and | ||
30 | * DISPC channel registers , ch = 0 for LCD, ch = 1 for | ||
31 | * DIGIT, and ch = 2 for LCD2 | ||
32 | */ | ||
33 | #define DISPC_REVISION DISPC_REG(0x0000) | 29 | #define DISPC_REVISION DISPC_REG(0x0000) |
34 | #define DISPC_SYSCONFIG DISPC_REG(0x0010) | 30 | #define DISPC_SYSCONFIG DISPC_REG(0x0010) |
35 | #define DISPC_SYSSTATUS DISPC_REG(0x0014) | 31 | #define DISPC_SYSSTATUS DISPC_REG(0x0014) |
36 | #define DISPC_IRQSTATUS DISPC_REG(0x0018) | 32 | #define DISPC_IRQSTATUS DISPC_REG(0x0018) |
37 | #define DISPC_IRQENABLE DISPC_REG(0x001C) | 33 | #define DISPC_IRQENABLE DISPC_REG(0x001C) |
38 | #define DISPC_CONTROL DISPC_REG(0x0040) | 34 | #define DISPC_CONTROL DISPC_REG(0x0040) |
39 | #define DISPC_CONTROL2 DISPC_REG(0x0238) | ||
40 | #define DISPC_CONFIG DISPC_REG(0x0044) | 35 | #define DISPC_CONFIG DISPC_REG(0x0044) |
41 | #define DISPC_CONFIG2 DISPC_REG(0x0620) | ||
42 | #define DISPC_CAPABLE DISPC_REG(0x0048) | 36 | #define DISPC_CAPABLE DISPC_REG(0x0048) |
43 | #define DISPC_DEFAULT_COLOR(ch) DISPC_REG(ch == 0 ? 0x004C : \ | ||
44 | (ch == 1 ? 0x0050 : 0x03AC)) | ||
45 | #define DISPC_TRANS_COLOR(ch) DISPC_REG(ch == 0 ? 0x0054 : \ | ||
46 | (ch == 1 ? 0x0058 : 0x03B0)) | ||
47 | #define DISPC_LINE_STATUS DISPC_REG(0x005C) | 37 | #define DISPC_LINE_STATUS DISPC_REG(0x005C) |
48 | #define DISPC_LINE_NUMBER DISPC_REG(0x0060) | 38 | #define DISPC_LINE_NUMBER DISPC_REG(0x0060) |
49 | #define DISPC_TIMING_H(ch) DISPC_REG(ch != 2 ? 0x0064 : 0x0400) | ||
50 | #define DISPC_TIMING_V(ch) DISPC_REG(ch != 2 ? 0x0068 : 0x0404) | ||
51 | #define DISPC_POL_FREQ(ch) DISPC_REG(ch != 2 ? 0x006C : 0x0408) | ||
52 | #define DISPC_DIVISORo(ch) DISPC_REG(ch != 2 ? 0x0070 : 0x040C) | ||
53 | #define DISPC_GLOBAL_ALPHA DISPC_REG(0x0074) | 39 | #define DISPC_GLOBAL_ALPHA DISPC_REG(0x0074) |
54 | #define DISPC_SIZE_DIG DISPC_REG(0x0078) | 40 | #define DISPC_CONTROL2 DISPC_REG(0x0238) |
55 | #define DISPC_SIZE_LCD(ch) DISPC_REG(ch != 2 ? 0x007C : 0x03CC) | 41 | #define DISPC_CONFIG2 DISPC_REG(0x0620) |
56 | |||
57 | #define DISPC_DATA_CYCLE1(ch) DISPC_REG(ch != 2 ? 0x01D4 : 0x03C0) | ||
58 | #define DISPC_DATA_CYCLE2(ch) DISPC_REG(ch != 2 ? 0x01D8 : 0x03C4) | ||
59 | #define DISPC_DATA_CYCLE3(ch) DISPC_REG(ch != 2 ? 0x01DC : 0x03C8) | ||
60 | #define DISPC_CPR_COEF_R(ch) DISPC_REG(ch != 2 ? 0x0220 : 0x03BC) | ||
61 | #define DISPC_CPR_COEF_G(ch) DISPC_REG(ch != 2 ? 0x0224 : 0x03B8) | ||
62 | #define DISPC_CPR_COEF_B(ch) DISPC_REG(ch != 2 ? 0x0228 : 0x03B4) | ||
63 | |||
64 | #define DISPC_DIVISOR DISPC_REG(0x0804) | 42 | #define DISPC_DIVISOR DISPC_REG(0x0804) |
65 | 43 | ||
66 | /* DISPC overlay registers */ | 44 | /* DISPC overlay registers */ |
@@ -105,6 +83,190 @@ struct dispc_reg { u16 idx; }; | |||
105 | #define DISPC_OVL_PRELOAD(n) DISPC_REG(DISPC_OVL_BASE(n) + \ | 83 | #define DISPC_OVL_PRELOAD(n) DISPC_REG(DISPC_OVL_BASE(n) + \ |
106 | DISPC_PRELOAD_OFFSET(n)) | 84 | DISPC_PRELOAD_OFFSET(n)) |
107 | 85 | ||
86 | /* DISPC manager/channel specific registers */ | ||
87 | static inline struct dispc_reg DISPC_DEFAULT_COLOR(enum omap_channel channel) | ||
88 | { | ||
89 | switch (channel) { | ||
90 | case OMAP_DSS_CHANNEL_LCD: | ||
91 | return DISPC_REG(0x004C); | ||
92 | case OMAP_DSS_CHANNEL_DIGIT: | ||
93 | return DISPC_REG(0x0050); | ||
94 | case OMAP_DSS_CHANNEL_LCD2: | ||
95 | return DISPC_REG(0x03AC); | ||
96 | default: | ||
97 | BUG(); | ||
98 | } | ||
99 | } | ||
100 | |||
101 | static inline struct dispc_reg DISPC_TRANS_COLOR(enum omap_channel channel) | ||
102 | { | ||
103 | switch (channel) { | ||
104 | case OMAP_DSS_CHANNEL_LCD: | ||
105 | return DISPC_REG(0x0054); | ||
106 | case OMAP_DSS_CHANNEL_DIGIT: | ||
107 | return DISPC_REG(0x0058); | ||
108 | case OMAP_DSS_CHANNEL_LCD2: | ||
109 | return DISPC_REG(0x03B0); | ||
110 | default: | ||
111 | BUG(); | ||
112 | } | ||
113 | } | ||
114 | |||
115 | static inline struct dispc_reg DISPC_TIMING_H(enum omap_channel channel) | ||
116 | { | ||
117 | switch (channel) { | ||
118 | case OMAP_DSS_CHANNEL_LCD: | ||
119 | return DISPC_REG(0x0064); | ||
120 | case OMAP_DSS_CHANNEL_DIGIT: | ||
121 | BUG(); | ||
122 | case OMAP_DSS_CHANNEL_LCD2: | ||
123 | return DISPC_REG(0x0400); | ||
124 | default: | ||
125 | BUG(); | ||
126 | } | ||
127 | } | ||
128 | |||
129 | static inline struct dispc_reg DISPC_TIMING_V(enum omap_channel channel) | ||
130 | { | ||
131 | switch (channel) { | ||
132 | case OMAP_DSS_CHANNEL_LCD: | ||
133 | return DISPC_REG(0x0068); | ||
134 | case OMAP_DSS_CHANNEL_DIGIT: | ||
135 | BUG(); | ||
136 | case OMAP_DSS_CHANNEL_LCD2: | ||
137 | return DISPC_REG(0x0404); | ||
138 | default: | ||
139 | BUG(); | ||
140 | } | ||
141 | } | ||
142 | |||
143 | static inline struct dispc_reg DISPC_POL_FREQ(enum omap_channel channel) | ||
144 | { | ||
145 | switch (channel) { | ||
146 | case OMAP_DSS_CHANNEL_LCD: | ||
147 | return DISPC_REG(0x006C); | ||
148 | case OMAP_DSS_CHANNEL_DIGIT: | ||
149 | BUG(); | ||
150 | case OMAP_DSS_CHANNEL_LCD2: | ||
151 | return DISPC_REG(0x0408); | ||
152 | default: | ||
153 | BUG(); | ||
154 | } | ||
155 | } | ||
156 | |||
157 | static inline struct dispc_reg DISPC_DIVISORo(enum omap_channel channel) | ||
158 | { | ||
159 | switch (channel) { | ||
160 | case OMAP_DSS_CHANNEL_LCD: | ||
161 | return DISPC_REG(0x0070); | ||
162 | case OMAP_DSS_CHANNEL_DIGIT: | ||
163 | BUG(); | ||
164 | case OMAP_DSS_CHANNEL_LCD2: | ||
165 | return DISPC_REG(0x040C); | ||
166 | default: | ||
167 | BUG(); | ||
168 | } | ||
169 | } | ||
170 | |||
171 | /* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */ | ||
172 | static inline struct dispc_reg DISPC_SIZE_MGR(enum omap_channel channel) | ||
173 | { | ||
174 | switch (channel) { | ||
175 | case OMAP_DSS_CHANNEL_LCD: | ||
176 | return DISPC_REG(0x007C); | ||
177 | case OMAP_DSS_CHANNEL_DIGIT: | ||
178 | return DISPC_REG(0x0078); | ||
179 | case OMAP_DSS_CHANNEL_LCD2: | ||
180 | return DISPC_REG(0x03CC); | ||
181 | default: | ||
182 | BUG(); | ||
183 | } | ||
184 | } | ||
185 | |||
186 | static inline struct dispc_reg DISPC_DATA_CYCLE1(enum omap_channel channel) | ||
187 | { | ||
188 | switch (channel) { | ||
189 | case OMAP_DSS_CHANNEL_LCD: | ||
190 | return DISPC_REG(0x01D4); | ||
191 | case OMAP_DSS_CHANNEL_DIGIT: | ||
192 | BUG(); | ||
193 | case OMAP_DSS_CHANNEL_LCD2: | ||
194 | return DISPC_REG(0x03C0); | ||
195 | default: | ||
196 | BUG(); | ||
197 | } | ||
198 | } | ||
199 | |||
200 | static inline struct dispc_reg DISPC_DATA_CYCLE2(enum omap_channel channel) | ||
201 | { | ||
202 | switch (channel) { | ||
203 | case OMAP_DSS_CHANNEL_LCD: | ||
204 | return DISPC_REG(0x01D8); | ||
205 | case OMAP_DSS_CHANNEL_DIGIT: | ||
206 | BUG(); | ||
207 | case OMAP_DSS_CHANNEL_LCD2: | ||
208 | return DISPC_REG(0x03C4); | ||
209 | default: | ||
210 | BUG(); | ||
211 | } | ||
212 | } | ||
213 | |||
214 | static inline struct dispc_reg DISPC_DATA_CYCLE3(enum omap_channel channel) | ||
215 | { | ||
216 | switch (channel) { | ||
217 | case OMAP_DSS_CHANNEL_LCD: | ||
218 | return DISPC_REG(0x01DC); | ||
219 | case OMAP_DSS_CHANNEL_DIGIT: | ||
220 | BUG(); | ||
221 | case OMAP_DSS_CHANNEL_LCD2: | ||
222 | return DISPC_REG(0x03C8); | ||
223 | default: | ||
224 | BUG(); | ||
225 | } | ||
226 | } | ||
227 | |||
228 | static inline struct dispc_reg DISPC_CPR_COEF_R(enum omap_channel channel) | ||
229 | { | ||
230 | switch (channel) { | ||
231 | case OMAP_DSS_CHANNEL_LCD: | ||
232 | return DISPC_REG(0x0220); | ||
233 | case OMAP_DSS_CHANNEL_DIGIT: | ||
234 | BUG(); | ||
235 | case OMAP_DSS_CHANNEL_LCD2: | ||
236 | return DISPC_REG(0x03BC); | ||
237 | default: | ||
238 | BUG(); | ||
239 | } | ||
240 | } | ||
241 | |||
242 | static inline struct dispc_reg DISPC_CPR_COEF_G(enum omap_channel channel) | ||
243 | { | ||
244 | switch (channel) { | ||
245 | case OMAP_DSS_CHANNEL_LCD: | ||
246 | return DISPC_REG(0x0224); | ||
247 | case OMAP_DSS_CHANNEL_DIGIT: | ||
248 | BUG(); | ||
249 | case OMAP_DSS_CHANNEL_LCD2: | ||
250 | return DISPC_REG(0x03B8); | ||
251 | default: | ||
252 | BUG(); | ||
253 | } | ||
254 | } | ||
255 | |||
256 | static inline struct dispc_reg DISPC_CPR_COEF_B(enum omap_channel channel) | ||
257 | { | ||
258 | switch (channel) { | ||
259 | case OMAP_DSS_CHANNEL_LCD: | ||
260 | return DISPC_REG(0x0228); | ||
261 | case OMAP_DSS_CHANNEL_DIGIT: | ||
262 | BUG(); | ||
263 | case OMAP_DSS_CHANNEL_LCD2: | ||
264 | return DISPC_REG(0x03B4); | ||
265 | default: | ||
266 | BUG(); | ||
267 | } | ||
268 | } | ||
269 | |||
108 | /* DISPC overlay register base addresses */ | 270 | /* DISPC overlay register base addresses */ |
109 | static inline u16 DISPC_OVL_BASE(enum omap_plane plane) | 271 | static inline u16 DISPC_OVL_BASE(enum omap_plane plane) |
110 | { | 272 | { |