]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/omap/lcd_2430sdp.c
OMAP: LCD: Use omap_rev check
[linux-2.6-omap-h63xx.git] / drivers / video / omap / lcd_2430sdp.c
index 8ba15dceb9253551ff9ab65dfb9bb9f608e6a68c..a728837e88222d423790bb2a8554ed30781846cc 100644 (file)
 
 #include <linux/module.h>
 #include <linux/platform_device.h>
+#include <linux/delay.h>
 #include <linux/i2c/twl4030.h>
 
-#include <asm/arch/gpio.h>
-#include <asm/arch/mux.h>
-#include <asm/arch/omapfb.h>
+#include <mach/gpio.h>
+#include <mach/mux.h>
+#include <mach/omapfb.h>
 #include <asm/mach-types.h>
 
 #define SDP2430_LCD_PANEL_BACKLIGHT_GPIO       91
@@ -45,6 +46,10 @@ static unsigned enable_gpio;
 #define ENABLE_VAUX3_DEDICATED 0x03
 #define ENABLE_VAUX3_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 t2_out(c, r, v) twl4030_i2c_write_u8(c, r, v)
 
@@ -82,6 +87,13 @@ static int sdp2430_panel_enable(struct lcd_panel *panel)
                ded_val = ENABLE_VAUX3_DEDICATED;
                grp_reg = TWL4030_VAUX3_DEV_GRP;
                grp_val = ENABLE_VAUX3_DEV_GRP;
+
+               if (omap_rev() > OMAP3430_REV_ES1_0) {
+                       t2_out(PM_RECEIVER, ENABLE_VPLL2_DEDICATED,
+                                       TWL4030_VPLL2_DEDICATED);
+                       t2_out(PM_RECEIVER, ENABLE_VPLL2_DEV_GRP,
+                                       TWL4030_VPLL2_DEV_GRP);
+               }
        } else {
                ded_reg = TWL4030_VAUX2_DEDICATED;
                ded_val = ENABLE_VAUX2_DEDICATED;
@@ -104,6 +116,11 @@ static void sdp2430_panel_disable(struct lcd_panel *panel)
 {
        omap_set_gpio_dataout(enable_gpio, 0);
        omap_set_gpio_dataout(backlight_gpio, 0);
+       if (omap_rev() > OMAP3430_REV_ES1_0) {
+               t2_out(PM_RECEIVER, 0x0, TWL4030_VPLL2_DEDICATED);
+               t2_out(PM_RECEIVER, 0x0, TWL4030_VPLL2_DEV_GRP);
+               mdelay(4);
+       }
 }
 
 static unsigned long sdp2430_panel_get_caps(struct lcd_panel *panel)