ARM: OMAP: LDP: use new display drivers
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 31 May 2013 08:38:50 +0000 (11:38 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 28 Aug 2013 07:23:20 +0000 (10:23 +0300)
Use new display drivers for LDP board.

The new OMAP display drivers were merged for 3.11, and we can now change
the board files to use the new ones and phase out the old ones.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/board-ldp.c

index 62e4f701b63baf33f0720dd786d0feadb901017e..dd8da2c5399f34386baacd5d79eba2bdc41dc8c9 100644 (file)
@@ -184,45 +184,70 @@ static inline void __init ldp_init_smsc911x(void)
 #define LCD_PANEL_RESET_GPIO           55
 #define LCD_PANEL_QVGA_GPIO            56
 
-static struct panel_generic_dpi_data ldp_panel_data = {
-       .name                   = "nec_nl2432dr22-11b",
-       .num_gpios              = 4,
-       /* gpios filled in code */
+static const struct display_timing ldp_lcd_videomode = {
+       .pixelclock     = { 0, 5400000, 0 },
+
+       .hactive = { 0, 240, 0 },
+       .hfront_porch = { 0, 3, 0 },
+       .hback_porch = { 0, 39, 0 },
+       .hsync_len = { 0, 3, 0 },
+
+       .vactive = { 0, 320, 0 },
+       .vfront_porch = { 0, 2, 0 },
+       .vback_porch = { 0, 7, 0 },
+       .vsync_len = { 0, 1, 0 },
+
+       .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+               DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE,
 };
 
-static struct omap_dss_device ldp_lcd_device = {
-       .name                   = "lcd",
-       .driver_name            = "generic_dpi_panel",
-       .type                   = OMAP_DISPLAY_TYPE_DPI,
-       .phy.dpi.data_lines     = 18,
-       .data                   = &ldp_panel_data,
+static struct panel_dpi_platform_data ldp_lcd_pdata = {
+       .name                   = "lcd",
+       .source                 = "dpi.0",
+
+       .data_lines             = 18,
+
+       .display_timing         = &ldp_lcd_videomode,
+
+       .enable_gpio            = -1,   /* filled in code */
+       .backlight_gpio         = -1,   /* filled in code */
 };
 
-static struct omap_dss_device *ldp_dss_devices[] = {
-       &ldp_lcd_device,
+static struct platform_device ldp_lcd_device = {
+       .name                   = "panel-dpi",
+       .id                     = 0,
+       .dev.platform_data      = &ldp_lcd_pdata,
 };
 
 static struct omap_dss_board_info ldp_dss_data = {
-       .num_devices    = ARRAY_SIZE(ldp_dss_devices),
-       .devices        = ldp_dss_devices,
-       .default_device = &ldp_lcd_device,
+       .default_display_name = "lcd",
 };
 
 static void __init ldp_display_init(void)
 {
-       ldp_panel_data.gpios[2] = LCD_PANEL_RESET_GPIO;
-       ldp_panel_data.gpios[3] = LCD_PANEL_QVGA_GPIO;
+       int r;
+
+       static struct gpio gpios[] __initdata = {
+               {LCD_PANEL_RESET_GPIO, GPIOF_OUT_INIT_HIGH, "LCD RESET"},
+               {LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "LCD QVGA"},
+       };
+
+       r = gpio_request_array(gpios, ARRAY_SIZE(gpios));
+       if (r) {
+               pr_err("Cannot request LCD GPIOs, error %d\n", r);
+               return;
+       }
 
        omap_display_init(&ldp_dss_data);
 }
 
 static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio)
 {
-       ldp_panel_data.gpios[0] = gpio + 7;
-       ldp_panel_data.gpio_invert[0] = true;
+       /* LCD enable GPIO */
+       ldp_lcd_pdata.enable_gpio = gpio + 7;
 
-       ldp_panel_data.gpios[1] = gpio + 15;
-       ldp_panel_data.gpio_invert[1] = true;
+       /* Backlight enable GPIO */
+       ldp_lcd_pdata.backlight_gpio = gpio + 15;
 
        return 0;
 }
@@ -322,6 +347,7 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
 
 static struct platform_device *ldp_devices[] __initdata = {
        &ldp_gpio_keys_device,
+       &ldp_lcd_device,
 };
 
 #ifdef CONFIG_OMAP_MUX