aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dss_features.c
diff options
context:
space:
mode:
authorMythri P K <mythripk@ti.com>2011-09-08 09:36:26 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-09-30 09:16:34 -0400
commit60634a28bc5467ade316574c4aa728c5bff7947e (patch)
tree61f6c6f5b3ebf78bd69316d462d618d39b50697d /drivers/video/omap2/dss/dss_features.c
parent176b578b1a0e1b7ccdc746c3962f2a56aaf45456 (diff)
OMAP4: DSS2: HDMI: Function pointer approach to call
HDMI IP fundamentally has replaceable core PHY and PLL blocks. These blocks might vary across OMAP's but the end functionality such as to enable or disable PLL, PHY, function to read EDID would remain the same. Thus to make the current hdmi DSS driver compatible with different OMAP's having different IP blocks( A combination of different core, PHY, PLL blocks), function pointer approach is introduced. With function pointer, relevant IP dependent functions are mapped to the generic functions used by DSS during the initialization based on the OMAP compiled. Thus making hdmi DSS driver IP agnostic. Signed-off-by: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/dss_features.c')
-rw-r--r--drivers/video/omap2/dss/dss_features.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index b63c5f8d9151..86706123a247 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -429,6 +429,26 @@ static const struct omap_dss_features omap4_dss_features = {
429 .burst_size_unit = 16, 429 .burst_size_unit = 16,
430}; 430};
431 431
432#if defined(CONFIG_OMAP4_DSS_HDMI)
433/* HDMI OMAP4 Functions*/
434static const struct ti_hdmi_ip_ops omap4_hdmi_functions = {
435
436 .video_configure = ti_hdmi_4xxx_basic_configure,
437 .phy_enable = ti_hdmi_4xxx_phy_enable,
438 .phy_disable = ti_hdmi_4xxx_phy_disable,
439 .read_edid = ti_hdmi_4xxx_read_edid,
440 .pll_enable = ti_hdmi_4xxx_pll_enable,
441 .pll_disable = ti_hdmi_4xxx_pll_disable,
442 .video_enable = ti_hdmi_4xxx_wp_video_start,
443};
444
445void dss_init_hdmi_ip_ops(struct hdmi_ip_data *ip_data)
446{
447 if (cpu_is_omap44xx())
448 ip_data->ops = &omap4_hdmi_functions;
449}
450#endif
451
432/* Functions returning values related to a DSS feature */ 452/* Functions returning values related to a DSS feature */
433int dss_feat_get_num_mgrs(void) 453int dss_feat_get_num_mgrs(void)
434{ 454{