aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/display.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index 1011995f150a..28f508724a56 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -284,6 +284,35 @@ err:
284 return ERR_PTR(r); 284 return ERR_PTR(r);
285} 285}
286 286
287static enum omapdss_version __init omap_display_get_version(void)
288{
289 if (cpu_is_omap24xx())
290 return OMAPDSS_VER_OMAP24xx;
291 else if (cpu_is_omap3630())
292 return OMAPDSS_VER_OMAP3630;
293 else if (cpu_is_omap34xx()) {
294 if (soc_is_am35xx()) {
295 return OMAPDSS_VER_AM35xx;
296 } else {
297 if (omap_rev() < OMAP3430_REV_ES3_0)
298 return OMAPDSS_VER_OMAP34xx_ES1;
299 else
300 return OMAPDSS_VER_OMAP34xx_ES3;
301 }
302 } else if (omap_rev() == OMAP4430_REV_ES1_0)
303 return OMAPDSS_VER_OMAP4430_ES1;
304 else if (omap_rev() == OMAP4430_REV_ES2_0 ||
305 omap_rev() == OMAP4430_REV_ES2_1 ||
306 omap_rev() == OMAP4430_REV_ES2_2)
307 return OMAPDSS_VER_OMAP4430_ES2;
308 else if (cpu_is_omap44xx())
309 return OMAPDSS_VER_OMAP4;
310 else if (soc_is_omap54xx())
311 return OMAPDSS_VER_OMAP5;
312 else
313 return OMAPDSS_VER_UNKNOWN;
314}
315
287int __init omap_display_init(struct omap_dss_board_info *board_data) 316int __init omap_display_init(struct omap_dss_board_info *board_data)
288{ 317{
289 int r = 0; 318 int r = 0;
@@ -291,9 +320,18 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
291 int i, oh_count; 320 int i, oh_count;
292 const struct omap_dss_hwmod_data *curr_dss_hwmod; 321 const struct omap_dss_hwmod_data *curr_dss_hwmod;
293 struct platform_device *dss_pdev; 322 struct platform_device *dss_pdev;
323 enum omapdss_version ver;
294 324
295 /* create omapdss device */ 325 /* create omapdss device */
296 326
327 ver = omap_display_get_version();
328
329 if (ver == OMAPDSS_VER_UNKNOWN) {
330 pr_err("DSS not supported on this SoC\n");
331 return -ENODEV;
332 }
333
334 board_data->version = ver;
297 board_data->dsi_enable_pads = omap_dsi_enable_pads; 335 board_data->dsi_enable_pads = omap_dsi_enable_pads;
298 board_data->dsi_disable_pads = omap_dsi_disable_pads; 336 board_data->dsi_disable_pads = omap_dsi_disable_pads;
299 board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count; 337 board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count;