Skip to contentSkip to conversation

OMAP3EVM LCD red tint

DISCUSSION Daniel Schaeffer 3 participants 3 messages Sep 26, 2008 – Nov 9, 2008 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

Has anyone looked into why the LCD display on the OMAP3EVM is always tinted red? I created a couple of color test images that I cat'ed to /dev/fb and it looks like the blue color channel is completely ignored.
I was testing on v2.6.26-omap2 but is doesn't look like there have
been any changes to the fb driver since then so I'm assuming the issue is also present in the head of the git tree.

Regards,

Daniel Schaeffer

#1 lore raw

Hi Daniel Schaeffer

Quoted 11 lines · Daniel Schaeffer

Has anyone looked into why the LCD display on the OMAP3EVM is always tinted red? I created a couple of color test images that I cat'ed to /dev/fb and it looks like the blue color channel is completely ignored. I was testing on v2.6.26-omap2 but is doesn't look like there have been any changes to the fb driver since then so I'm assuming the issue is also present in the head of the git tree.

Regards,

Daniel Schaeffer

Try the patch below(Remember that you may have to manually edit because this patch is against current HEAD)

(quoted diff) +0 -0

b/drivers/video/omap/lcd_omap3evm.c
index a564ca5..821bafe 100644

drivers/video/omap/lcd_omap3evm.c +14 -0
@@ -44,6 +44,8 @@
 #define ENABLE_VDAC_DEV_GRP	0x20
 #define ENABLE_VPLL2_DEDICATED	0x05
 #define ENABLE_VPLL2_DEV_GRP	0xE0
+#define TWL4030_VPLL2_DEV_GRP	0x33
+#define TWL4030_VPLL2_DEDICATED	0x36
 
 #define TWL_LED_LEDEN		0x00
 #define TWL_PWMA_PWMAON		0x00
@@ -86,12 +88,24 @@ static void omap3evm_panel_cleanup(struct lcd_panel *panel)
 
 static int omap3evm_panel_enable(struct lcd_panel *panel)
 {
+	if (system_rev > OMAP3430_REV_ES1_0) {
+		twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+			ENABLE_VPLL2_DEDICATED, TWL4030_VPLL2_DEDICATED);
+		twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+			ENABLE_VPLL2_DEV_GRP, TWL4030_VPLL2_DEV_GRP);
+	}
 	omap_set_gpio_dataout(LCD_PANEL_ENABLE_GPIO, 0);
 	return 0;
 }
 
 static void omap3evm_panel_disable(struct lcd_panel *panel)
 {
+	if (system_rev > OMAP3430_REV_ES1_0) {
+		twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x0,
+			TWL4030_VPLL2_DEDICATED);
+		twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x0,
+			TWL4030_VPLL2_DEV_GRP);
+	}
 	omap_set_gpio_dataout(LCD_PANEL_ENABLE_GPIO, 1);
 }
 

Regards,
Arun C

#2 lore raw
Quoted 2 lines · arun c

Try the patch below(Remember that you may have to manually edit because this patch is against current HEAD)

The patch works for me after I replace "system_rev" with "omap_rev()" in the patch.