summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/fbdev/omap2/dss/dpi.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/video/fbdev/omap2/dss/dpi.c b/drivers/video/fbdev/omap2/dss/dpi.c
index 9a2f8c3b102d..f83e7b030249 100644
--- a/drivers/video/fbdev/omap2/dss/dpi.c
+++ b/drivers/video/fbdev/omap2/dss/dpi.c
@@ -106,6 +106,17 @@ static struct dss_pll *dpi_get_pll(enum omap_channel channel)
106 return NULL; 106 return NULL;
107 } 107 }
108 108
109 case OMAPDSS_VER_DRA7xx:
110 switch (channel) {
111 case OMAP_DSS_CHANNEL_LCD:
112 case OMAP_DSS_CHANNEL_LCD2:
113 return dss_pll_find("video0");
114 case OMAP_DSS_CHANNEL_LCD3:
115 return dss_pll_find("video1");
116 default:
117 return NULL;
118 }
119
109 default: 120 default:
110 return NULL; 121 return NULL;
111 } 122 }
@@ -590,6 +601,10 @@ static void dpi_init_pll(struct dpi_data *dpi)
590 if (!pll) 601 if (!pll)
591 return; 602 return;
592 603
604 /* On DRA7 we need to set a mux to use the PLL */
605 if (omapdss_get_version() == OMAPDSS_VER_DRA7xx)
606 dss_ctrl_pll_set_control_mux(pll->id, dpi->output.dispc_channel);
607
593 if (dpi_verify_dsi_pll(pll)) { 608 if (dpi_verify_dsi_pll(pll)) {
594 DSSWARN("DSI PLL not operational\n"); 609 DSSWARN("DSI PLL not operational\n");
595 return; 610 return;
@@ -615,6 +630,17 @@ static enum omap_channel dpi_get_channel(int port_num)
615 case OMAPDSS_VER_AM43xx: 630 case OMAPDSS_VER_AM43xx:
616 return OMAP_DSS_CHANNEL_LCD; 631 return OMAP_DSS_CHANNEL_LCD;
617 632
633 case OMAPDSS_VER_DRA7xx:
634 switch (port_num) {
635 case 2:
636 return OMAP_DSS_CHANNEL_LCD3;
637 case 1:
638 return OMAP_DSS_CHANNEL_LCD2;
639 case 0:
640 default:
641 return OMAP_DSS_CHANNEL_LCD;
642 }
643
618 case OMAPDSS_VER_OMAP4430_ES1: 644 case OMAPDSS_VER_OMAP4430_ES1:
619 case OMAPDSS_VER_OMAP4430_ES2: 645 case OMAPDSS_VER_OMAP4430_ES2:
620 case OMAPDSS_VER_OMAP4: 646 case OMAPDSS_VER_OMAP4: