diff options
-rw-r--r-- | drivers/video/omap2/dss/dss_features.c | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c index c26fc1fb7db..47c15304fe8 100644 --- a/drivers/video/omap2/dss/dss_features.c +++ b/drivers/video/omap2/dss/dss_features.c | |||
@@ -378,6 +378,25 @@ static const enum dss_feat_id omap3430_dss_feat_list[] = { | |||
378 | FEAT_DPI_USES_VDDS_DSI, | 378 | FEAT_DPI_USES_VDDS_DSI, |
379 | }; | 379 | }; |
380 | 380 | ||
381 | static const enum dss_feat_id am35xx_dss_feat_list[] = { | ||
382 | FEAT_LCDENABLEPOL, | ||
383 | FEAT_LCDENABLESIGNAL, | ||
384 | FEAT_PCKFREEENABLE, | ||
385 | FEAT_FUNCGATED, | ||
386 | FEAT_LINEBUFFERSPLIT, | ||
387 | FEAT_ROWREPEATENABLE, | ||
388 | FEAT_RESIZECONF, | ||
389 | FEAT_DSI_PLL_FREQSEL, | ||
390 | FEAT_DSI_REVERSE_TXCLKESC, | ||
391 | FEAT_VENC_REQUIRES_TV_DAC_CLK, | ||
392 | FEAT_CPR, | ||
393 | FEAT_PRELOAD, | ||
394 | FEAT_FIR_COEF_V, | ||
395 | FEAT_ALPHA_FIXED_ZORDER, | ||
396 | FEAT_FIFO_MERGE, | ||
397 | FEAT_OMAP3_DSI_FIFO_BUG, | ||
398 | }; | ||
399 | |||
381 | static const enum dss_feat_id omap3630_dss_feat_list[] = { | 400 | static const enum dss_feat_id omap3630_dss_feat_list[] = { |
382 | FEAT_LCDENABLEPOL, | 401 | FEAT_LCDENABLEPOL, |
383 | FEAT_LCDENABLESIGNAL, | 402 | FEAT_LCDENABLESIGNAL, |
@@ -490,6 +509,29 @@ static const struct omap_dss_features omap3430_dss_features = { | |||
490 | .burst_size_unit = 8, | 509 | .burst_size_unit = 8, |
491 | }; | 510 | }; |
492 | 511 | ||
512 | /* | ||
513 | * AM35xx DSS Features. This is basically OMAP3 DSS Features without the | ||
514 | * vdds_dsi regulator. | ||
515 | */ | ||
516 | static const struct omap_dss_features am35xx_dss_features = { | ||
517 | .reg_fields = omap3_dss_reg_fields, | ||
518 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), | ||
519 | |||
520 | .features = am35xx_dss_feat_list, | ||
521 | .num_features = ARRAY_SIZE(am35xx_dss_feat_list), | ||
522 | |||
523 | .num_mgrs = 2, | ||
524 | .num_ovls = 3, | ||
525 | .supported_displays = omap3430_dss_supported_displays, | ||
526 | .supported_color_modes = omap3_dss_supported_color_modes, | ||
527 | .overlay_caps = omap3430_dss_overlay_caps, | ||
528 | .clksrc_names = omap3_dss_clk_source_names, | ||
529 | .dss_params = omap3_dss_param_range, | ||
530 | .supported_rotation_types = OMAP_DSS_ROT_DMA | OMAP_DSS_ROT_VRFB, | ||
531 | .buffer_size_unit = 1, | ||
532 | .burst_size_unit = 8, | ||
533 | }; | ||
534 | |||
493 | static const struct omap_dss_features omap3630_dss_features = { | 535 | static const struct omap_dss_features omap3630_dss_features = { |
494 | .reg_fields = omap3_dss_reg_fields, | 536 | .reg_fields = omap3_dss_reg_fields, |
495 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), | 537 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), |
@@ -697,8 +739,13 @@ void dss_features_init(void) | |||
697 | omap_current_dss_features = &omap2_dss_features; | 739 | omap_current_dss_features = &omap2_dss_features; |
698 | else if (cpu_is_omap3630()) | 740 | else if (cpu_is_omap3630()) |
699 | omap_current_dss_features = &omap3630_dss_features; | 741 | omap_current_dss_features = &omap3630_dss_features; |
700 | else if (cpu_is_omap34xx()) | 742 | else if (cpu_is_omap34xx()) { |
701 | omap_current_dss_features = &omap3430_dss_features; | 743 | if (soc_is_am35xx()) { |
744 | omap_current_dss_features = &am35xx_dss_features; | ||
745 | } else { | ||
746 | omap_current_dss_features = &omap3430_dss_features; | ||
747 | } | ||
748 | } | ||
702 | else if (omap_rev() == OMAP4430_REV_ES1_0) | 749 | else if (omap_rev() == OMAP4430_REV_ES1_0) |
703 | omap_current_dss_features = &omap4430_es1_0_dss_features; | 750 | omap_current_dss_features = &omap4430_es1_0_dss_features; |
704 | else if (omap_rev() == OMAP4430_REV_ES2_0 || | 751 | else if (omap_rev() == OMAP4430_REV_ES2_0 || |