1 From b06406f3e5c3958f69185314c969f7c1a3265f71 Mon Sep 17 00:00:00 2001
2 From: Hardik Shah <hardik.shah@ti.com>
3 Date: Thu, 14 May 2009 15:04:17 +0530
4 Subject: [PATCH 69/69] DSS2: OMAP3EVM: Added DSI powerup and powerdown functions
6 Copied fom 3430sdp implementation.
8 Signed-off-by: Hardik Shah <hardik.shah@ti.com>
10 arch/arm/mach-omap2/board-omap3evm.c | 62 +++++++++++++++++++++-------------
11 1 files changed, 38 insertions(+), 24 deletions(-)
13 diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
14 index 6f5a866..57c4fc7 100644
15 --- a/arch/arm/mach-omap2/board-omap3evm.c
16 +++ b/arch/arm/mach-omap2/board-omap3evm.c
17 @@ -237,6 +237,38 @@ static int __init omap3_evm_i2c_init(void)
18 static int lcd_enabled;
19 static int dvi_enabled;
21 +static void enable_vpll2(int enable)
23 + u8 ded_val, grp_val;
26 + ded_val = ENABLE_VPLL2_DEDICATED;
27 + grp_val = ENABLE_VPLL2_DEV_GRP;
33 + twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
34 + ded_val, TWL4030_VPLL2_DEDICATED);
35 + twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
36 + grp_val, TWL4030_VPLL2_DEV_GRP);
39 +static int omap3evm_dsi_power_up(void)
41 + if (omap_rev() > OMAP3430_REV_ES1_0)
46 +static void omap3evm_dsi_power_down(void)
48 + if (omap_rev() > OMAP3430_REV_ES1_0)
53 static void __init omap3_evm_display_init(void)
56 @@ -306,12 +338,7 @@ static int omap3_evm_panel_enable_lcd(struct omap_display *display)
57 printk(KERN_ERR "cannot enable LCD, DVI is enabled\n");
60 - if (omap_rev() > OMAP3430_REV_ES1_0) {
61 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
62 - ENABLE_VPLL2_DEDICATED, TWL4030_VPLL2_DEDICATED);
63 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
64 - ENABLE_VPLL2_DEV_GRP, TWL4030_VPLL2_DEV_GRP);
66 + omap3evm_dsi_power_up();
67 gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 0);
70 @@ -319,12 +346,7 @@ static int omap3_evm_panel_enable_lcd(struct omap_display *display)
72 static void omap3_evm_panel_disable_lcd(struct omap_display *display)
74 - if (omap_rev() > OMAP3430_REV_ES1_0) {
75 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x0,
76 - TWL4030_VPLL2_DEDICATED);
77 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x0,
78 - TWL4030_VPLL2_DEV_GRP);
80 + omap3evm_dsi_power_down();
81 gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 1);
84 @@ -370,13 +392,8 @@ static int omap3_evm_panel_enable_dvi(struct omap_display *display)
85 printk(KERN_ERR "cannot enable DVI, LCD is enabled\n");
88 - if (omap_rev() > OMAP3430_REV_ES1_0) {
89 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
90 - ENABLE_VPLL2_DEDICATED, TWL4030_VPLL2_DEDICATED);
91 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
92 - ENABLE_VPLL2_DEV_GRP, TWL4030_VPLL2_DEV_GRP);
95 + omap3evm_dsi_power_up();
96 twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0x80,
97 TWL4030_GPIODATA_IN3);
98 twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0x80,
99 @@ -388,13 +405,8 @@ static int omap3_evm_panel_enable_dvi(struct omap_display *display)
101 static void omap3_evm_panel_disable_dvi(struct omap_display *display)
103 - if (omap_rev() > OMAP3430_REV_ES1_0) {
104 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x0,
105 - TWL4030_VPLL2_DEDICATED);
106 - twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x0,
107 - TWL4030_VPLL2_DEV_GRP);
110 + omap3evm_dsi_power_down();
111 twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0x00,
112 TWL4030_GPIODATA_IN3);
113 twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0x00,
114 @@ -413,6 +425,8 @@ static struct omap_dss_display_config omap3_evm_display_data_dvi = {
117 static struct omap_dss_board_info omap3_evm_dss_data = {
118 + .dsi_power_up = omap3evm_dsi_power_up,
119 + .dsi_power_down = omap3evm_dsi_power_down,
122 &omap3_evm_display_data,