From 0ad35d6a01afb8c458259f312dcaf17b50e8c3f9 Mon Sep 17 00:00:00 2001 From: ankishore Date: Wed, 23 Mar 2011 12:01:34 +0530 Subject: arm: tegra: cardhu: Dsi 2nd instance support in board panel file Adding support for dsi second instance in board panel file Original-Change-Id: I6c2e9f07aa8b185c5cea6ce27632bdcbb3e95fd1 Reviewed-on: http://git-master/r/22624 Reviewed-by: Animesh Kishore Tested-by: Animesh Kishore Reviewed-by: Laxman Dewangan Change-Id: Iadf50148e14ec20e82c37219e8c79a59a836cb14 --- arch/arm/mach-tegra/board-cardhu-panel.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'arch/arm/mach-tegra/board-cardhu-panel.c') diff --git a/arch/arm/mach-tegra/board-cardhu-panel.c b/arch/arm/mach-tegra/board-cardhu-panel.c index 367bd92fdda0..0d0e54eff009 100644 --- a/arch/arm/mach-tegra/board-cardhu-panel.c +++ b/arch/arm/mach-tegra/board-cardhu-panel.c @@ -44,6 +44,7 @@ #define DSI_PANEL_219 0 #define DSI_PANEL_218 1 #define AVDD_LCD PMU_TCA6416_GPIO_PORT17 +#define DSI_PANEL_RESET 1 #endif #define cardhu_lvds_shutdown TEGRA_GPIO_PL2 @@ -83,7 +84,7 @@ static int cardhu_backlight_init(struct device *dev) { else tegra_gpio_enable(cardhu_bl_enb); #else - #if DSI_PANEL_219 + #if DSI_PANEL_219 || DSI_PANEL_218 /* Enable back light for DSIa panel */ printk("cardhu_dsi_backlight_init\n"); ret = gpio_request(cardhu_dsia_bl_enb, "dsia_bl_enable"); @@ -120,7 +121,7 @@ static void cardhu_backlight_exit(struct device *dev) { gpio_free(cardhu_bl_enb); tegra_gpio_disable(cardhu_bl_enb); #else - #if DSI_PANEL_219 + #if DSI_PANEL_219 || DSI_PANEL_218 /* Disable back light for DSIa panel */ gpio_set_value(cardhu_dsia_bl_enb, 0); gpio_free(cardhu_dsia_bl_enb); @@ -147,7 +148,7 @@ static int cardhu_backlight_notify(struct device *unused, int brightness) gpio_request(cardhu_bl_enb, "backlight_enb"); gpio_set_value(cardhu_bl_enb, !!brightness); #else - #if DSI_PANEL_219 + #if DSI_PANEL_219 || DSI_PANEL_218 /* DSIa */ gpio_set_value(cardhu_dsia_bl_enb, !!brightness); @@ -321,6 +322,14 @@ static struct resource cardhu_disp1_resources[] = { .flags = IORESOURCE_MEM, }, #ifdef CONFIG_TEGRA_CARDHU_DSI +#ifdef CONFIG_TEGRA_DSI_INSTANCE_1 + { + .name = "dsi_regs", + .start = TEGRA_DSIB_BASE, + .end = TEGRA_DSIB_BASE + TEGRA_DSIB_SIZE - 1, + .flags = IORESOURCE_MEM, + }, +#else { .name = "dsi_regs", .start = TEGRA_DSI_BASE, @@ -328,6 +337,7 @@ static struct resource cardhu_disp1_resources[] = { .flags = IORESOURCE_MEM, }, #endif +#endif }; static struct resource cardhu_disp2_resources[] = { @@ -531,6 +541,7 @@ static int cardhu_dsi_panel_enable(void) else tegra_gpio_enable(AVDD_LCD); +#if DSI_PANEL_RESET ret = gpio_request(TEGRA_GPIO_PD2, "pd2"); if (ret < 0){ return ret; @@ -548,6 +559,7 @@ static int cardhu_dsi_panel_enable(void) mdelay(2); gpio_set_value(TEGRA_GPIO_PD2, 1); mdelay(2); +#endif #endif return 0; @@ -572,7 +584,11 @@ struct tegra_dsi_out cardhu_dsi = { .virtual_channel = TEGRA_DSI_VIRTUAL_CHANNEL_0, .panel_has_frame_buffer = true, - +#ifdef CONFIG_TEGRA_DSI_INSTANCE_1 + .dsi_instance = 1, +#else + .dsi_instance = 0, +#endif .n_init_cmd = ARRAY_SIZE(dsi_init_cmd), .dsi_init_cmd = dsi_init_cmd, @@ -598,7 +614,7 @@ static struct tegra_dc_mode cardhu_dsi_modes[] = { #if DSI_PANEL_218 { - .pclk = 48000000, + .pclk = 323000000, .h_ref_to_sync = 11, .v_ref_to_sync = 1, .h_sync_width = 16, -- cgit v1.2.3