diff options
author | Tomi Valkeinen | 2013-03-18 14:50:25 +0100 |
---|---|---|
committer | Tomi Valkeinen | 2014-03-19 09:52:23 +0100 |
commit | dcdf407b9ddceb1383da14c9a095e0b07a85b014 (patch) | |
tree | 971bbe76a1a0afdc79885355ffd331512dcae1f9 /arch/arm/mach-omap2/dss-common.c | |
parent | Linux 3.14-rc4 (diff) | |
download | kernel-qcow2-linux-dcdf407b9ddceb1383da14c9a095e0b07a85b014.tar.gz kernel-qcow2-linux-dcdf407b9ddceb1383da14c9a095e0b07a85b014.tar.xz kernel-qcow2-linux-dcdf407b9ddceb1383da14c9a095e0b07a85b014.zip |
ARM: OMAP2+: add omapdss_init_of()
The OMAP display architecture requires a bunch of platform devices which
are not created via .dts (for now). We also need to pass a few function
pointers and the DSS hardware version from the arch code to omapdss
driver.
This patch adds omapdss_init_of() function, called from board-generic at
init time, which handles those tasks.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Archit Taneja <archit@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/dss-common.c')
-rw-r--r-- | arch/arm/mach-omap2/dss-common.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c index dadccc91488c..ab8cf26d5096 100644 --- a/arch/arm/mach-omap2/dss-common.c +++ b/arch/arm/mach-omap2/dss-common.c @@ -33,6 +33,7 @@ #include "soc.h" #include "dss-common.h" #include "mux.h" +#include "display.h" #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */ #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */ @@ -101,6 +102,12 @@ static struct omap_dss_board_info omap4_panda_dss_data = { void __init omap4_panda_display_init_of(void) { + struct device_node *node; + + node = omapdss_find_dss_of_node(); + if (node && of_device_is_available(node)) + return; + omap_display_init(&omap4_panda_dss_data); platform_device_register(&omap4_panda_tfp410_device); @@ -194,6 +201,11 @@ static struct omap_dss_board_info sdp4430_dss_data = { void __init omap_4430sdp_display_init_of(void) { int r; + struct device_node *node; + + node = omapdss_find_dss_of_node(); + if (node && of_device_is_available(node)) + return; r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH, "display_sel"); @@ -252,6 +264,12 @@ static struct omap_dss_board_info igep2_dss_data = { void __init omap3_igep2_display_init_of(void) { + struct device_node *node; + + node = omapdss_find_dss_of_node(); + if (node && of_device_is_available(node)) + return; + omap_display_init(&igep2_dss_data); platform_device_register(&omap3_igep2_tfp410_device); |