From: Archit Taneja Date: Thu, 4 Apr 2013 12:07:31 +0000 (+0530) Subject: omapdss: features: Add a dss_features struct for DRA7xx SoC X-Git-Tag: ti2013.04.02~4^2~23 X-Git-Url: https://git.ti.com/gitweb?p=android-sdk%2Fkernel-video.git;a=commitdiff_plain;h=b6f8266cb4f2b823d646c29dd01fc53cf69c80f3 omapdss: features: Add a dss_features struct for DRA7xx SoC Add a new features struct for DRA7xx. The connections between outputs and managers in DRA7xx differ a lot from OMAP5, so we add a new feat struct for it. Signed-off-by: Archit Taneja --- diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c index 430a4b9cd38..f69fe0c21af 100644 --- a/drivers/video/omap2/dss/dss_features.c +++ b/drivers/video/omap2/dss/dss_features.c @@ -174,6 +174,20 @@ static const enum omap_display_type omap5_dss_supported_displays[] = { OMAP_DISPLAY_TYPE_DSI, }; +static const enum omap_display_type dra7xx_dss_supported_displays[] = { + /* OMAP_DSS_CHANNEL_LCD */ + OMAP_DISPLAY_TYPE_DPI, + + /* OMAP_DSS_CHANNEL_DIGIT */ + OMAP_DISPLAY_TYPE_HDMI | OMAP_DISPLAY_TYPE_DPI, + + /* OMAP_DSS_CHANNEL_LCD2 */ + OMAP_DISPLAY_TYPE_DPI, + + /* OMAP_DSS_CHANNEL_LCD3 */ + OMAP_DISPLAY_TYPE_DPI, +}; + static const enum omap_dss_output_id omap2_dss_supported_outputs[] = { /* OMAP_DSS_CHANNEL_LCD */ OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DBI, @@ -231,6 +245,20 @@ static const enum omap_dss_output_id omap5_dss_supported_outputs[] = { OMAP_DSS_OUTPUT_DSI2, }; +static const enum omap_dss_output_id dra7xx_dss_supported_outputs[] = { + /* OMAP_DSS_CHANNEL_LCD */ + OMAP_DSS_OUTPUT_DPI, + + /* OMAP_DSS_CHANNEL_DIGIT */ + OMAP_DSS_OUTPUT_HDMI | OMAP_DSS_OUTPUT_DPI, + + /* OMAP_DSS_CHANNEL_LCD2 */ + OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DPI1, + + /* OMAP_DSS_CHANNEL_LCD3 */ + OMAP_DSS_OUTPUT_DPI | OMAP_DSS_OUTPUT_DPI2, +}; + static const enum omap_color_mode omap2_dss_supported_color_modes[] = { /* OMAP_DSS_GFX */ OMAP_DSS_COLOR_CLUT1 | OMAP_DSS_COLOR_CLUT2 | @@ -791,6 +819,27 @@ static const struct omap_dss_features omap5_dss_features = { .burst_size_unit = 16, }; +/* DRA DSS Features */ +static const struct omap_dss_features dra7xx_dss_features = { + .reg_fields = omap5_dss_reg_fields, + .num_reg_fields = ARRAY_SIZE(omap5_dss_reg_fields), + + .features = omap5_dss_feat_list, + .num_features = ARRAY_SIZE(omap5_dss_feat_list), + + .num_mgrs = 4, + .num_ovls = 4, + .supported_displays = dra7xx_dss_supported_displays, + .supported_outputs = dra7xx_dss_supported_outputs, + .supported_color_modes = omap4_dss_supported_color_modes, + .overlay_caps = omap4_dss_overlay_caps, + .clksrc_names = omap5_dss_clk_source_names, + .dss_params = omap5_dss_param_range, + .supported_rotation_types = OMAP_DSS_ROT_DMA | OMAP_DSS_ROT_TILER, + .buffer_size_unit = 16, + .burst_size_unit = 16, +}; + #if defined(CONFIG_OMAP4_DSS_HDMI) || defined(CONFIG_OMAP5_DSS_HDMI) /* HDMI OMAP4 Functions*/ static const struct ti_hdmi_ip_ops omap4_hdmi_functions = { @@ -1003,10 +1052,13 @@ void dss_features_init(enum omapdss_version version) break; case OMAPDSS_VER_OMAP5: - case OMAPDSS_VER_DRA7xx: omap_current_dss_features = &omap5_dss_features; break; + case OMAPDSS_VER_DRA7xx: + omap_current_dss_features = &dra7xx_dss_features; + break; + case OMAPDSS_VER_AM35xx: omap_current_dss_features = &am35xx_dss_features; break; diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 09fdcd6e60e..7ca219a63c6 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -219,6 +219,8 @@ enum omap_dss_output_id { OMAP_DSS_OUTPUT_DSI2 = 1 << 4, OMAP_DSS_OUTPUT_VENC = 1 << 5, OMAP_DSS_OUTPUT_HDMI = 1 << 6, + OMAP_DSS_OUTPUT_DPI1 = 1 << 7, + OMAP_DSS_OUTPUT_DPI2 = 1 << 8, }; /* Stereoscopic Panel types