From patchwork Mon May 9 07:36:05 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 768552 X-Patchwork-Delegate: tomi.valkeinen@nokia.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p497aPt1029743 for ; Mon, 9 May 2011 07:36:37 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753021Ab1EIHgd (ORCPT ); Mon, 9 May 2011 03:36:33 -0400 Received: from na3sys009aog112.obsmtp.com ([74.125.149.207]:57248 "EHLO na3sys009aog112.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752979Ab1EIHgc (ORCPT ); Mon, 9 May 2011 03:36:32 -0400 Received: from mail-ey0-f176.google.com ([209.85.215.176]) (using TLSv1) by na3sys009aob112.postini.com ([74.125.148.12]) with SMTP ID DSNKTceZehDbtSp3OtXYaHUghOw8OV2E3ZMp@postini.com; Mon, 09 May 2011 00:36:31 PDT Received: by mail-ey0-f176.google.com with SMTP id 28so1942520eya.21 for ; Mon, 09 May 2011 00:36:26 -0700 (PDT) Received: by 10.213.22.73 with SMTP id m9mr2205567ebb.39.1304926586657; Mon, 09 May 2011 00:36:26 -0700 (PDT) Received: from localhost.localdomain (a62-248-131-233.elisa-laajakaista.fi [62.248.131.233]) by mx.google.com with ESMTPS id z48sm3238401eez.6.2011.05.09.00.36.24 (version=SSLv3 cipher=OTHER); Mon, 09 May 2011 00:36:25 -0700 (PDT) From: Tomi Valkeinen To: tony@atomide.com Cc: linux-omap@vger.kernel.org, Tomi Valkeinen , Stanley Miao Subject: [PATCH 4/6] OMAP: LDP: Port the display driver to new DSS2 Date: Mon, 9 May 2011 10:36:05 +0300 Message-Id: <1304926567-26814-5-git-send-email-tomi.valkeinen@ti.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1304926567-26814-1-git-send-email-tomi.valkeinen@ti.com> References: <1304926567-26814-1-git-send-email-tomi.valkeinen@ti.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Mon, 09 May 2011 07:36:37 +0000 (UTC) Port the old omapfb panel driver to DSS2i. This patch changes the board file only, the driver is ported in separate patch. Signed-off-by: Tomi Valkeinen Cc: Stanley Miao Acked-by: Stanley Miao --- arch/arm/mach-omap2/board-ldp.c | 73 +++++++++++++++++++++++++++++++++----- 1 files changed, 63 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index e2ba779..2fdfd7f 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c @@ -43,6 +43,8 @@ #include #include +#include +#include #include "board-flash.h" #include "mux.h" @@ -275,19 +277,71 @@ static inline void __init ldp_init_smsc911x(void) gpio_direction_input(eth_gpio); } -static struct platform_device ldp_lcd_device = { - .name = "ldp_lcd", - .id = -1, +/* LCD */ + +#define LCD_PANEL_BACKLIGHT_GPIO (15 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO 55 +#define LCD_PANEL_QVGA_GPIO 56 + +static int ldp_panel_enable_lcd(struct omap_dss_device *dssdev) +{ + gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 1); + gpio_direction_output(LCD_PANEL_BACKLIGHT_GPIO, 1); + + return 0; +} + +static void ldp_panel_disable_lcd(struct omap_dss_device *dssdev) +{ + gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 0); + gpio_direction_output(LCD_PANEL_BACKLIGHT_GPIO, 0); +} + +static struct panel_generic_dpi_data ldp_panel_data = { + .name = "2430sdp", + .platform_enable = ldp_panel_enable_lcd, + .platform_disable = ldp_panel_disable_lcd, }; -static struct omap_lcd_config ldp_lcd_config __initdata = { - .ctrl_name = "internal", +static struct omap_dss_device ldp_lcd_device = { + .name = "lcd", + .driver_name = "generic_dpi_panel", + .type = OMAP_DISPLAY_TYPE_DPI, + .phy.dpi.data_lines = 16, + .data = &ldp_panel_data, }; -static struct omap_board_config_kernel ldp_config[] __initdata = { - { OMAP_TAG_LCD, &ldp_lcd_config }, +static struct omap_dss_device *ldp_dss_devices[] = { + &ldp_lcd_device, +}; + +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, }; +static void __init ldp_display_init(void) +{ + int r; + + struct gpio gpios[] = { + {LCD_PANEL_RESET_GPIO, GPIOF_OUT_INIT_HIGH, "LCD RESET"}, + {LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "LCD QVGA"}, + {LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, "LCD ENABLE"}, + {LCD_PANEL_BACKLIGHT_GPIO, GPIOF_OUT_INIT_LOW, "LCD BACKLIGHT"}, + }; + + 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 void __init omap_ldp_init_early(void) { omap2_init_common_infrastructure(); @@ -390,7 +444,6 @@ static struct omap2_hsmmc_info mmc[] __initdata = { static struct platform_device *ldp_devices[] __initdata = { &ldp_smsc911x_device, - &ldp_lcd_device, &ldp_gpio_keys_device, }; @@ -441,8 +494,6 @@ static struct mtd_partition ldp_nand_partitions[] = { static void __init omap_ldp_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); - omap_board_config = ldp_config; - omap_board_config_size = ARRAY_SIZE(ldp_config); ldp_init_smsc911x(); omap_i2c_init(); platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); @@ -459,6 +510,8 @@ static void __init omap_ldp_init(void) omap2_hsmmc_init(mmc); /* link regulators to MMC adapters */ ldp_vmmc1_supply.dev = mmc[0].dev; + + ldp_display_init(); } MACHINE_START(OMAP_LDP, "OMAP LDP board")