]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-omap2/board-overo.c
Merge branch 'late/clksrc' into late/cleanup
[karo-tx-linux.git] / arch / arm / mach-omap2 / board-overo.c
index ab79a4422bcc6301e63a2d10b5b835cb85ad306f..4ca6b680aa72b86804ac02ad9992abed72dd46b3 100644 (file)
@@ -47,8 +47,7 @@
 #include <asm/mach/map.h>
 
 #include <video/omapdss.h>
-#include <video/omap-panel-generic-dpi.h>
-#include <video/omap-panel-tfp410.h>
+#include <video/omap-panel-data.h>
 
 #include "common.h"
 #include "mux.h"
@@ -146,28 +145,9 @@ static inline void __init overo_init_smsc911x(void) { return; }
 #endif
 
 /* DSS */
-static int lcd_enabled;
-static int dvi_enabled;
-
 #define OVERO_GPIO_LCD_EN 144
 #define OVERO_GPIO_LCD_BL 145
 
-static struct gpio overo_dss_gpios[] __initdata = {
-       { OVERO_GPIO_LCD_EN, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_LCD_EN" },
-       { OVERO_GPIO_LCD_BL, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_LCD_BL" },
-};
-
-static void __init overo_display_init(void)
-{
-       if (gpio_request_array(overo_dss_gpios, ARRAY_SIZE(overo_dss_gpios))) {
-               printk(KERN_ERR "could not obtain DSS control GPIOs\n");
-               return;
-       }
-
-       gpio_export(OVERO_GPIO_LCD_EN, 0);
-       gpio_export(OVERO_GPIO_LCD_BL, 0);
-}
-
 static struct tfp410_platform_data dvi_panel = {
        .i2c_bus_num            = 3,
        .power_down_gpio        = -1,
@@ -188,30 +168,13 @@ static struct omap_dss_device overo_tv_device = {
        .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
 };
 
-static int overo_panel_enable_lcd(struct omap_dss_device *dssdev)
-{
-       if (dvi_enabled) {
-               printk(KERN_ERR "cannot enable LCD, DVI is enabled\n");
-               return -EINVAL;
-       }
-
-       gpio_set_value(OVERO_GPIO_LCD_EN, 1);
-       gpio_set_value(OVERO_GPIO_LCD_BL, 1);
-       lcd_enabled = 1;
-       return 0;
-}
-
-static void overo_panel_disable_lcd(struct omap_dss_device *dssdev)
-{
-       gpio_set_value(OVERO_GPIO_LCD_EN, 0);
-       gpio_set_value(OVERO_GPIO_LCD_BL, 0);
-       lcd_enabled = 0;
-}
-
 static struct panel_generic_dpi_data lcd43_panel = {
        .name                   = "samsung_lte430wq_f0c",
-       .platform_enable        = overo_panel_enable_lcd,
-       .platform_disable       = overo_panel_disable_lcd,
+       .num_gpios              = 2,
+       .gpios                  = {
+               OVERO_GPIO_LCD_EN,
+               OVERO_GPIO_LCD_BL
+       },
 };
 
 static struct omap_dss_device overo_lcd43_device = {
@@ -224,13 +187,20 @@ static struct omap_dss_device overo_lcd43_device = {
 
 #if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \
        defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE)
+static struct panel_generic_dpi_data lcd35_panel = {
+       .num_gpios              = 2,
+       .gpios                  = {
+               OVERO_GPIO_LCD_EN,
+               OVERO_GPIO_LCD_BL
+       },
+};
+
 static struct omap_dss_device overo_lcd35_device = {
        .type                   = OMAP_DISPLAY_TYPE_DPI,
        .name                   = "lcd35",
        .driver_name            = "lgphilips_lb035q02_panel",
        .phy.dpi.data_lines     = 24,
-       .platform_enable        = overo_panel_enable_lcd,
-       .platform_disable       = overo_panel_disable_lcd,
+       .data                   = &lcd35_panel,
 };
 #endif
 
@@ -509,7 +479,6 @@ static void __init overo_init(void)
        usbhs_init(&usbhs_bdata);
        overo_spi_init();
        overo_init_smsc911x();
-       overo_display_init();
        overo_init_led();
        overo_init_keys();
        omap_twl4030_audio_init("overo", NULL);