]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - cpu/mpc8xx/lcd.c
* Patch by Lutz Dennig, 10 Apr 2003:
[karo-tx-uboot.git] / cpu / mpc8xx / lcd.c
index dbc38e39d6ff755f8a5cb94c0347f49c0eaabd5b..4ef1513a0a3d1295b0c3e06ac3a53114ec7d8115 100644 (file)
 #define CONFIG_LCD_LOGO
 #define LCD_INFO               /* Display Logo, (C) and system info    */
 #endif
+
+#ifdef CONFIG_V37
+#undef CONFIG_LCD_LOGO
+#undef LCD_INFO
+#endif
+
 /* #define LCD_TEST_PATTERN */ /* color backgnd for frame/color adjust */
 /* #define CFG_INVERT_COLORS */        /* Not needed - adjust vl_dp instead    */
 /************************************************************************/
@@ -171,6 +177,8 @@ static vidinfo_t panel_info = {
 /*
  * Sharp LQ057Q3DC02 display. Active, color, single scan.
  */
+#define LCD_DF 12
+
 static vidinfo_t panel_info = {
     320, 240, 0, 0, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH,
     3, 0, 0, 1, 1, 15, 4, 0, 3
@@ -190,6 +198,18 @@ static vidinfo_t panel_info = {
                /* wbl, vpw, lcdac, wbf */
 };
 #endif /* CONFIG_SHARP_LQ64D341 */
+
+#ifdef CONFIG_SHARP_LQ084V1DG21
+/*
+ * Sharp LQ084V1DG21 display, 640x480. Active, color, single scan.
+ */
+static vidinfo_t panel_info = {
+    640, 480, 171, 129, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_LOW,
+    3, 0, 0, 1, 1, 160, 3, 0, 48
+               /* wbl, vpw, lcdac, wbf */
+};
+#endif /* CONFIG_SHARP_LQ084V1DG21 */
+
 /*----------------------------------------------------------------------*/
 
 #ifdef CONFIG_HLD1045
@@ -242,11 +262,11 @@ static vidinfo_t panel_info = {
  * Emerging Display Technologies 320x240. Passive, monochrome, single scan.
  */
 #define LCD_BPP                LCD_MONOCHROME
-#define LCD_DF         20
+#define LCD_DF         10
 
 static vidinfo_t panel_info = {
     320, 240, 0, 0, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_LOW,
-    LCD_BPP,  0, 0, 0, 0, 0, 15, 0, 0
+    LCD_BPP,  0, 0, 0, 0, 33, 0, 0, 0
 };
 #endif
 /*----------------------------------------------------------------------*/
@@ -947,20 +967,30 @@ static void lcd_enable (void)
        /* Enable the LCD panel */
        immr->im_siu_conf.sc_sdcr |= (1 << (31 - 25));          /* LAM = 1 */
        lcdp->lcd_lccr |= LCCR_PON;
+
+#ifdef CONFIG_V37
+       /* Turn on display backlight */
+       immr->im_cpm.cp_pbpar |= 0x00008000;
+       immr->im_cpm.cp_pbdir |= 0x00008000;
+#endif
+
 #if defined(CONFIG_LWMON)
     {  uchar c = pic_read (0x60);
        c |= 0x07;      /* Power on CCFL, Enable CCFL, Chip Enable LCD */
        pic_write (0x60, c);
     }
-#elif defined(CONFIG_R360MPI)
+#endif /* CONFIG_LWMON */
+
+#if defined(CONFIG_R360MPI)
     {
-       extern void r360_pwm_write (uchar reg, uchar val);
+       extern void r360_i2c_lcd_write (uchar data0, uchar data1);
 
-       r360_pwm_write(8, 1);
-       r360_pwm_write(0, 4);
-       r360_pwm_write(1, 6);
+       r360_i2c_lcd_write(0x10, 0x01);
+       r360_i2c_lcd_write(0x20, 0x01);
+       r360_i2c_lcd_write(0x3F, 0xFF);
+       r360_i2c_lcd_write(0x47, 0xFF);
     }
-#endif /* CONFIG_LWMON */
+#endif /* CONFIG_R360MPI */
 }
 
 /*----------------------------------------------------------------------*/
@@ -978,10 +1008,12 @@ static void lcd_disable (void)
     }
 #elif defined(CONFIG_R360MPI)
     {
-       extern void r360_pwm_write (uchar reg, uchar val);
+       extern void r360_i2c_lcd_write (uchar data0, uchar data1);
 
-       r360_pwm_write(0, 0);
-       r360_pwm_write(1, 0);
+       r360_i2c_lcd_write(0x10, 0x00);
+       r360_i2c_lcd_write(0x20, 0x00);
+       r360_i2c_lcd_write(0x30, 0x00);
+       r360_i2c_lcd_write(0x40, 0x00);
     }
 #endif /* CONFIG_LWMON */
        /* Disable the LCD panel */