diff options
author | Sathya Prakash M R <sathyap@ti.com> | 2014-03-24 07:01:51 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-05-09 08:11:26 -0400 |
commit | d6279d4ae18d4248c90dfcf02fa8c579b81ce43b (patch) | |
tree | 425cdbe44ad8d29445254136e32a415170607661 /drivers/video | |
parent | 80823ca1ba243d145c963212734e359e099051d8 (diff) |
OMAPDSS: Add DSS features for AM43xx
Add DSS features for AM43xx.
Signed-off-by: Sathya Prakash M R <sathyap@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/fbdev/omap2/dss/dispc.c | 1 | ||||
-rw-r--r-- | drivers/video/fbdev/omap2/dss/dpi.c | 2 | ||||
-rw-r--r-- | drivers/video/fbdev/omap2/dss/dsi.c | 1 | ||||
-rw-r--r-- | drivers/video/fbdev/omap2/dss/dss.c | 11 | ||||
-rw-r--r-- | drivers/video/fbdev/omap2/dss/dss_features.c | 67 |
5 files changed, 82 insertions, 0 deletions
diff --git a/drivers/video/fbdev/omap2/dss/dispc.c b/drivers/video/fbdev/omap2/dss/dispc.c index 4fe143166b74..3f612a0895d3 100644 --- a/drivers/video/fbdev/omap2/dss/dispc.c +++ b/drivers/video/fbdev/omap2/dss/dispc.c | |||
@@ -3656,6 +3656,7 @@ static int __init dispc_init_features(struct platform_device *pdev) | |||
3656 | case OMAPDSS_VER_OMAP34xx_ES3: | 3656 | case OMAPDSS_VER_OMAP34xx_ES3: |
3657 | case OMAPDSS_VER_OMAP3630: | 3657 | case OMAPDSS_VER_OMAP3630: |
3658 | case OMAPDSS_VER_AM35xx: | 3658 | case OMAPDSS_VER_AM35xx: |
3659 | case OMAPDSS_VER_AM43xx: | ||
3659 | src = &omap34xx_rev3_0_dispc_feats; | 3660 | src = &omap34xx_rev3_0_dispc_feats; |
3660 | break; | 3661 | break; |
3661 | 3662 | ||
diff --git a/drivers/video/fbdev/omap2/dss/dpi.c b/drivers/video/fbdev/omap2/dss/dpi.c index 157921db447a..10745261be52 100644 --- a/drivers/video/fbdev/omap2/dss/dpi.c +++ b/drivers/video/fbdev/omap2/dss/dpi.c | |||
@@ -67,6 +67,7 @@ static struct platform_device *dpi_get_dsidev(enum omap_channel channel) | |||
67 | case OMAPDSS_VER_OMAP34xx_ES3: | 67 | case OMAPDSS_VER_OMAP34xx_ES3: |
68 | case OMAPDSS_VER_OMAP3630: | 68 | case OMAPDSS_VER_OMAP3630: |
69 | case OMAPDSS_VER_AM35xx: | 69 | case OMAPDSS_VER_AM35xx: |
70 | case OMAPDSS_VER_AM43xx: | ||
70 | return NULL; | 71 | return NULL; |
71 | 72 | ||
72 | case OMAPDSS_VER_OMAP4430_ES1: | 73 | case OMAPDSS_VER_OMAP4430_ES1: |
@@ -595,6 +596,7 @@ static enum omap_channel dpi_get_channel(void) | |||
595 | case OMAPDSS_VER_OMAP34xx_ES3: | 596 | case OMAPDSS_VER_OMAP34xx_ES3: |
596 | case OMAPDSS_VER_OMAP3630: | 597 | case OMAPDSS_VER_OMAP3630: |
597 | case OMAPDSS_VER_AM35xx: | 598 | case OMAPDSS_VER_AM35xx: |
599 | case OMAPDSS_VER_AM43xx: | ||
598 | return OMAP_DSS_CHANNEL_LCD; | 600 | return OMAP_DSS_CHANNEL_LCD; |
599 | 601 | ||
600 | case OMAPDSS_VER_OMAP4430_ES1: | 602 | case OMAPDSS_VER_OMAP4430_ES1: |
diff --git a/drivers/video/fbdev/omap2/dss/dsi.c b/drivers/video/fbdev/omap2/dss/dsi.c index 57f120896b43..90e0eff84867 100644 --- a/drivers/video/fbdev/omap2/dss/dsi.c +++ b/drivers/video/fbdev/omap2/dss/dsi.c | |||
@@ -5132,6 +5132,7 @@ static enum omap_channel dsi_get_channel(int module_id) | |||
5132 | { | 5132 | { |
5133 | switch (omapdss_get_version()) { | 5133 | switch (omapdss_get_version()) { |
5134 | case OMAPDSS_VER_OMAP24xx: | 5134 | case OMAPDSS_VER_OMAP24xx: |
5135 | case OMAPDSS_VER_AM43xx: | ||
5135 | DSSWARN("DSI not supported\n"); | 5136 | DSSWARN("DSI not supported\n"); |
5136 | return OMAP_DSS_CHANNEL_LCD; | 5137 | return OMAP_DSS_CHANNEL_LCD; |
5137 | 5138 | ||
diff --git a/drivers/video/fbdev/omap2/dss/dss.c b/drivers/video/fbdev/omap2/dss/dss.c index 71524cb1b423..a6ef4c424ffa 100644 --- a/drivers/video/fbdev/omap2/dss/dss.c +++ b/drivers/video/fbdev/omap2/dss/dss.c | |||
@@ -728,6 +728,13 @@ static const struct dss_features omap54xx_dss_feats __initconst = { | |||
728 | .dpi_select_source = &dss_dpi_select_source_omap5, | 728 | .dpi_select_source = &dss_dpi_select_source_omap5, |
729 | }; | 729 | }; |
730 | 730 | ||
731 | static const struct dss_features am43xx_dss_feats __initconst = { | ||
732 | .fck_div_max = 0, | ||
733 | .dss_fck_multiplier = 0, | ||
734 | .parent_clk_name = NULL, | ||
735 | .dpi_select_source = &dss_dpi_select_source_omap2_omap3, | ||
736 | }; | ||
737 | |||
731 | static int __init dss_init_features(struct platform_device *pdev) | 738 | static int __init dss_init_features(struct platform_device *pdev) |
732 | { | 739 | { |
733 | const struct dss_features *src; | 740 | const struct dss_features *src; |
@@ -764,6 +771,10 @@ static int __init dss_init_features(struct platform_device *pdev) | |||
764 | src = &omap54xx_dss_feats; | 771 | src = &omap54xx_dss_feats; |
765 | break; | 772 | break; |
766 | 773 | ||
774 | case OMAPDSS_VER_AM43xx: | ||
775 | src = &am43xx_dss_feats; | ||
776 | break; | ||
777 | |||
767 | default: | 778 | default: |
768 | return -ENODEV; | 779 | return -ENODEV; |
769 | } | 780 | } |
diff --git a/drivers/video/fbdev/omap2/dss/dss_features.c b/drivers/video/fbdev/omap2/dss/dss_features.c index 7f8969191dc6..46542f82faef 100644 --- a/drivers/video/fbdev/omap2/dss/dss_features.c +++ b/drivers/video/fbdev/omap2/dss/dss_features.c | |||
@@ -93,6 +93,17 @@ static const struct dss_reg_field omap3_dss_reg_fields[] = { | |||
93 | [FEAT_REG_DSIPLL_REGM_DSI] = { 26, 23 }, | 93 | [FEAT_REG_DSIPLL_REGM_DSI] = { 26, 23 }, |
94 | }; | 94 | }; |
95 | 95 | ||
96 | static const struct dss_reg_field am43xx_dss_reg_fields[] = { | ||
97 | [FEAT_REG_FIRHINC] = { 12, 0 }, | ||
98 | [FEAT_REG_FIRVINC] = { 28, 16 }, | ||
99 | [FEAT_REG_FIFOLOWTHRESHOLD] = { 11, 0 }, | ||
100 | [FEAT_REG_FIFOHIGHTHRESHOLD] = { 27, 16 }, | ||
101 | [FEAT_REG_FIFOSIZE] = { 10, 0 }, | ||
102 | [FEAT_REG_HORIZONTALACCU] = { 9, 0 }, | ||
103 | [FEAT_REG_VERTICALACCU] = { 25, 16 }, | ||
104 | [FEAT_REG_DISPC_CLK_SWITCH] = { 0, 0 }, | ||
105 | }; | ||
106 | |||
96 | static const struct dss_reg_field omap4_dss_reg_fields[] = { | 107 | static const struct dss_reg_field omap4_dss_reg_fields[] = { |
97 | [FEAT_REG_FIRHINC] = { 12, 0 }, | 108 | [FEAT_REG_FIRHINC] = { 12, 0 }, |
98 | [FEAT_REG_FIRVINC] = { 28, 16 }, | 109 | [FEAT_REG_FIRVINC] = { 28, 16 }, |
@@ -149,6 +160,11 @@ static const enum omap_display_type omap3630_dss_supported_displays[] = { | |||
149 | OMAP_DISPLAY_TYPE_VENC, | 160 | OMAP_DISPLAY_TYPE_VENC, |
150 | }; | 161 | }; |
151 | 162 | ||
163 | static const enum omap_display_type am43xx_dss_supported_displays[] = { | ||
164 | /* OMAP_DSS_CHANNEL_LCD */ | ||
165 | OMAP_DISPLAY_TYPE_DPI | OMAP_DISPLAY_TYPE_DBI, | ||
166 | }; | ||
167 | |||
152 | static const enum omap_display_type omap4_dss_supported_displays[] = { | 168 | static const enum omap_display_type omap4_dss_supported_displays[] = { |
153 | /* OMAP_DSS_CHANNEL_LCD */ | 169 | /* OMAP_DSS_CHANNEL_LCD */ |
154 | OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI, | 170 | OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI, |
@@ -200,6 +216,11 @@ static const enum omap_dss_output_id omap3630_dss_supported_outputs[] = { | |||
200 | OMAP_DSS_OUTPUT_VENC, | 216 | OMAP_DSS_OUTPUT_VENC, |
201 | }; | 217 | }; |
202 | 218 | ||
219 | static const enum omap_dss_output_id am43xx_dss_supported_outputs[] = { | ||
220 | /* OMAP_DSS_CHANNEL_LCD */ | ||
221 | OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI, | ||
222 | }; | ||
223 | |||
203 | static const enum omap_dss_output_id omap4_dss_supported_outputs[] = { | 224 | static const enum omap_dss_output_id omap4_dss_supported_outputs[] = { |
204 | /* OMAP_DSS_CHANNEL_LCD */ | 225 | /* OMAP_DSS_CHANNEL_LCD */ |
205 | OMAP_DSS_OUTPUT_DBI | OMAP_DSS_OUTPUT_DSI1, | 226 | OMAP_DSS_OUTPUT_DBI | OMAP_DSS_OUTPUT_DSI1, |
@@ -444,6 +465,13 @@ static const struct dss_param_range omap3_dss_param_range[] = { | |||
444 | [FEAT_PARAM_LINEWIDTH] = { 1, 1024 }, | 465 | [FEAT_PARAM_LINEWIDTH] = { 1, 1024 }, |
445 | }; | 466 | }; |
446 | 467 | ||
468 | static const struct dss_param_range am43xx_dss_param_range[] = { | ||
469 | [FEAT_PARAM_DSS_FCK] = { 0, 200000000 }, | ||
470 | [FEAT_PARAM_DSS_PCD] = { 2, 255 }, | ||
471 | [FEAT_PARAM_DOWNSCALE] = { 1, 4 }, | ||
472 | [FEAT_PARAM_LINEWIDTH] = { 1, 1024 }, | ||
473 | }; | ||
474 | |||
447 | static const struct dss_param_range omap4_dss_param_range[] = { | 475 | static const struct dss_param_range omap4_dss_param_range[] = { |
448 | [FEAT_PARAM_DSS_FCK] = { 0, 186000000 }, | 476 | [FEAT_PARAM_DSS_FCK] = { 0, 186000000 }, |
449 | [FEAT_PARAM_DSS_PCD] = { 1, 255 }, | 477 | [FEAT_PARAM_DSS_PCD] = { 1, 255 }, |
@@ -520,6 +548,21 @@ static const enum dss_feat_id am35xx_dss_feat_list[] = { | |||
520 | FEAT_OMAP3_DSI_FIFO_BUG, | 548 | FEAT_OMAP3_DSI_FIFO_BUG, |
521 | }; | 549 | }; |
522 | 550 | ||
551 | static const enum dss_feat_id am43xx_dss_feat_list[] = { | ||
552 | FEAT_LCDENABLEPOL, | ||
553 | FEAT_LCDENABLESIGNAL, | ||
554 | FEAT_PCKFREEENABLE, | ||
555 | FEAT_FUNCGATED, | ||
556 | FEAT_LINEBUFFERSPLIT, | ||
557 | FEAT_ROWREPEATENABLE, | ||
558 | FEAT_RESIZECONF, | ||
559 | FEAT_CPR, | ||
560 | FEAT_PRELOAD, | ||
561 | FEAT_FIR_COEF_V, | ||
562 | FEAT_ALPHA_FIXED_ZORDER, | ||
563 | FEAT_FIFO_MERGE, | ||
564 | }; | ||
565 | |||
523 | static const enum dss_feat_id omap3630_dss_feat_list[] = { | 566 | static const enum dss_feat_id omap3630_dss_feat_list[] = { |
524 | FEAT_LCDENABLEPOL, | 567 | FEAT_LCDENABLEPOL, |
525 | FEAT_LCDENABLESIGNAL, | 568 | FEAT_LCDENABLESIGNAL, |
@@ -682,6 +725,26 @@ static const struct omap_dss_features am35xx_dss_features = { | |||
682 | .burst_size_unit = 8, | 725 | .burst_size_unit = 8, |
683 | }; | 726 | }; |
684 | 727 | ||
728 | static const struct omap_dss_features am43xx_dss_features = { | ||
729 | .reg_fields = am43xx_dss_reg_fields, | ||
730 | .num_reg_fields = ARRAY_SIZE(am43xx_dss_reg_fields), | ||
731 | |||
732 | .features = am43xx_dss_feat_list, | ||
733 | .num_features = ARRAY_SIZE(am43xx_dss_feat_list), | ||
734 | |||
735 | .num_mgrs = 1, | ||
736 | .num_ovls = 3, | ||
737 | .supported_displays = am43xx_dss_supported_displays, | ||
738 | .supported_outputs = am43xx_dss_supported_outputs, | ||
739 | .supported_color_modes = omap3_dss_supported_color_modes, | ||
740 | .overlay_caps = omap3430_dss_overlay_caps, | ||
741 | .clksrc_names = omap2_dss_clk_source_names, | ||
742 | .dss_params = am43xx_dss_param_range, | ||
743 | .supported_rotation_types = OMAP_DSS_ROT_DMA, | ||
744 | .buffer_size_unit = 1, | ||
745 | .burst_size_unit = 8, | ||
746 | }; | ||
747 | |||
685 | static const struct omap_dss_features omap3630_dss_features = { | 748 | static const struct omap_dss_features omap3630_dss_features = { |
686 | .reg_fields = omap3_dss_reg_fields, | 749 | .reg_fields = omap3_dss_reg_fields, |
687 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), | 750 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), |
@@ -928,6 +991,10 @@ void dss_features_init(enum omapdss_version version) | |||
928 | omap_current_dss_features = &am35xx_dss_features; | 991 | omap_current_dss_features = &am35xx_dss_features; |
929 | break; | 992 | break; |
930 | 993 | ||
994 | case OMAPDSS_VER_AM43xx: | ||
995 | omap_current_dss_features = &am43xx_dss_features; | ||
996 | break; | ||
997 | |||
931 | default: | 998 | default: |
932 | DSSWARN("Unsupported OMAP version"); | 999 | DSSWARN("Unsupported OMAP version"); |
933 | break; | 1000 | break; |