]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/video/mpc8xx_lcd.c
odroid: remove CONFIG_DM_I2C_COMPAT config
[people/ms/u-boot.git] / drivers / video / mpc8xx_lcd.c
index f54b4834ff6e30d37d3a32633bbbfbbc28dbcec2..b08576eab203f3ef6a6f6ab4ab348128fdff38da 100644 (file)
@@ -2,7 +2,7 @@
  * (C) Copyright 2001-2002
  * Wolfgang Denk, DENX Software Engineering -- wd@denx.de
  *
- * SPDX-License-Identifier:    GPL-2.0+ 
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /************************************************************************/
@@ -15,7 +15,6 @@
 #include <common.h>
 #include <command.h>
 #include <watchdog.h>
-#include <version.h>
 #include <stdarg.h>
 #include <lcdvideo.h>
 #include <linux/types.h>
 #define CONFIG_LCD_INFO                /* Display Logo, (C) and system info    */
 #endif
 
-#if defined(CONFIG_V37) || defined(CONFIG_EDT32F10)
-#undef CONFIG_LCD_LOGO
-#undef CONFIG_LCD_INFO
-#endif
-
 /*----------------------------------------------------------------------*/
 #ifdef CONFIG_KYOCERA_KCS057QV1AJ
 /*
@@ -224,20 +218,6 @@ vidinfo_t panel_info = {
 };
 #endif /* CONFIG_OPTREX_BW */
 
-/*-----------------------------------------------------------------*/
-#ifdef CONFIG_EDT32F10
-/*
- * Emerging Display Technologies 320x240. Passive, monochrome, single scan.
- */
-#define LCD_BPP                LCD_MONOCHROME
-#define LCD_DF         10
-
-vidinfo_t panel_info = {
-    320, 240, 0, 0, CONFIG_SYS_HIGH, CONFIG_SYS_HIGH, CONFIG_SYS_HIGH, CONFIG_SYS_HIGH, CONFIG_SYS_LOW,
-    LCD_BPP,  0, 0, 0, 0, 33, 0, 0, 0
-};
-#endif
-
 /************************************************************************/
 /* ----------------- chipset specific functions ----------------------- */
 /************************************************************************/
@@ -268,11 +248,6 @@ void lcd_ctrl_init (void *lcdbase)
         * the controller.
         */
 
-#ifdef CONFIG_RPXLITE
-       /* This is special for RPXlite_DW Software Development Platform **[Sam]** */
-       panel_info.vl_dp = CONFIG_SYS_LOW;
-#endif
-
        lccrtmp  = LCDBIT (LCCR_BNUM_BIT,
                   (((panel_info.vl_row * panel_info.vl_col) * (1 << LCD_BPP)) / 128));
 
@@ -297,9 +272,6 @@ void lcd_ctrl_init (void *lcdbase)
 
        /* Initialize LCD controller bus priorities.
         */
-#ifdef CONFIG_RBC823
-       immr->im_siu_conf.sc_sdcr = (immr->im_siu_conf.sc_sdcr & ~0x0f) | 1;    /* RAID = 01, LAID = 00 */
-#else
        immr->im_siu_conf.sc_sdcr &= ~0x0f;     /* RAID = LAID = 0 */
 
        /* set SHFT/CLOCK division factor 4
@@ -313,21 +285,6 @@ void lcd_ctrl_init (void *lcdbase)
        immr->im_clkrst.car_sccr &= ~0x1F;
        immr->im_clkrst.car_sccr |= LCD_DF;     /* was 8 */
 
-#endif /* CONFIG_RBC823 */
-
-#if defined(CONFIG_RBC823)
-       /* Enable LCD on port D.
-        */
-       immr->im_ioport.iop_pddat &= 0x0300;
-       immr->im_ioport.iop_pdpar |= 0x1CFF;
-       immr->im_ioport.iop_pddir |= 0x1CFF;
-
-       /* Configure LCD_ON, VEE_ON, CCFL_ON on port B.
-        */
-       immr->im_cpm.cp_pbdat &= ~0x00005001;
-       immr->im_cpm.cp_pbpar &= ~0x00005001;
-       immr->im_cpm.cp_pbdir |=  0x00005001;
-#elif !defined(CONFIG_EDT32F10)
        /* Enable LCD on port D.
         */
        immr->im_ioport.iop_pdpar |= 0x1FFF;
@@ -337,14 +294,6 @@ void lcd_ctrl_init (void *lcdbase)
         */
        immr->im_cpm.cp_pbpar |= 0x00005001;
        immr->im_cpm.cp_pbdir |= 0x00005001;
-#else
-       /* Enable LCD on port D.
-        */
-       immr->im_ioport.iop_pdpar |= 0x1DFF;
-       immr->im_ioport.iop_pdpar &= ~0x0200;
-       immr->im_ioport.iop_pddir |= 0x1FFF;
-       immr->im_ioport.iop_pddat |= 0x0200;
-#endif
 
        /* Load the physical address of the linear frame buffer
         * into the LCD controller.
@@ -395,9 +344,7 @@ lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
        colreg = ((red   & 0x0F) << 8) |
                 ((green & 0x0F) << 4) |
                  (blue  & 0x0F) ;
-#ifdef CONFIG_SYS_INVERT_COLORS
-       colreg ^= 0x0FFF;
-#endif
+
        *cmap_ptr = colreg;
 
        debug ("setcolreg: reg %2d @ %p: R=%02X G=%02X B=%02X => %02X%02X\n",
@@ -409,22 +356,34 @@ lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
 
 /*----------------------------------------------------------------------*/
 
-#if LCD_BPP == LCD_MONOCHROME
-static
-void lcd_initcolregs (void)
+ushort *configuration_get_cmap(void)
 {
-       volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
-       volatile cpm8xx_t *cp = &(immr->im_cpm);
-       ushort regno;
+       immap_t *immr = (immap_t *)CONFIG_SYS_IMMR;
+       cpm8xx_t *cp = &(immr->im_cpm);
+       return (ushort *)&(cp->lcd_cmap[255 * sizeof(ushort)]);
+}
 
-       for (regno = 0; regno < 16; regno++) {
-               cp->lcd_cmap[regno * 2] = 0;
-               cp->lcd_cmap[(regno * 2) + 1] = regno & 0x0f;
-       }
+#if defined(CONFIG_MPC823)
+void fb_put_byte(uchar **fb, uchar **from)
+{
+       *(*fb)++ = (255 - *(*from)++);
 }
 #endif
 
-/*----------------------------------------------------------------------*/
+#ifdef CONFIG_LCD_LOGO
+#include <bmp_logo.h>
+void lcd_logo_set_cmap(void)
+{
+       int i;
+       ushort *cmap;
+       immap_t *immr = (immap_t *)CONFIG_SYS_IMMR;
+       cpm8xx_t *cp = &(immr->im_cpm);
+       cmap = (ushort *)&(cp->lcd_cmap[BMP_LOGO_OFFSET * sizeof(ushort)]);
+
+       for (i = 0; i < BMP_LOGO_COLORS; ++i)
+               *cmap++ = bmp_logo_palette[i];
+}
+#endif
 
 void lcd_enable (void)
 {
@@ -432,117 +391,10 @@ void lcd_enable (void)
        volatile lcd823_t *lcdp = &immr->im_lcd;
 
        /* Enable the LCD panel */
-#ifndef CONFIG_RBC823
        immr->im_siu_conf.sc_sdcr |= (1 << (31 - 25));          /* LAM = 1 */
-#endif
        lcdp->lcd_lccr |= LCCR_PON;
-
-#ifdef CONFIG_V37
-       /* Turn on display backlight */
-       immr->im_cpm.cp_pbpar |= 0x00008000;
-       immr->im_cpm.cp_pbdir |= 0x00008000;
-#elif defined(CONFIG_RBC823)
-       /* Turn on display backlight */
-       immr->im_cpm.cp_pbdat |= 0x00004000;
-#endif
-
-#if defined(CONFIG_LWMON)
-    {  uchar c = pic_read (0x60);
-#if defined(CONFIG_LCD) && defined(CONFIG_LWMON) && (CONFIG_POST & CONFIG_SYS_POST_SYSMON)
-       /* Enable LCD later in sysmon test, only if temperature is OK */
-#else
-       c |= 0x07;      /* Power on CCFL, Enable CCFL, Chip Enable LCD */
-#endif
-       pic_write (0x60, c);
-    }
-#endif /* CONFIG_LWMON */
-
-#if defined(CONFIG_R360MPI)
-    {
-       extern void r360_i2c_lcd_write (uchar data0, uchar data1);
-       unsigned long bgi, ctr;
-       char *p;
-
-       if ((p = getenv("lcdbgi")) != NULL) {
-               bgi = simple_strtoul (p, 0, 10) & 0xFFF;
-       } else {
-               bgi = 0xFFF;
-       }
-
-       if ((p = getenv("lcdctr")) != NULL) {
-               ctr = simple_strtoul (p, 0, 10) & 0xFFF;
-       } else {
-               ctr=0x7FF;
-       }
-
-       r360_i2c_lcd_write(0x10, 0x01);
-       r360_i2c_lcd_write(0x20, 0x01);
-       r360_i2c_lcd_write(0x30 | ((bgi>>8) & 0xF), bgi & 0xFF);
-       r360_i2c_lcd_write(0x40 | ((ctr>>8) & 0xF), ctr & 0xFF);
-    }
-#endif /* CONFIG_R360MPI */
-#ifdef CONFIG_RBC823
-       udelay(200000); /* wait 200ms */
-       /* Turn VEE_ON first */
-       immr->im_cpm.cp_pbdat |= 0x00000001;
-       udelay(200000); /* wait 200ms */
-       /* Now turn on LCD_ON */
-       immr->im_cpm.cp_pbdat |= 0x00001000;
-#endif
-#ifdef CONFIG_RRVISION
-       debug ("PC4->Output(1): enable LVDS\n");
-       debug ("PC5->Output(0): disable PAL clock\n");
-       immr->im_ioport.iop_pddir |=  0x1000;
-       immr->im_ioport.iop_pcpar &= ~(0x0C00);
-       immr->im_ioport.iop_pcdir |=   0x0C00 ;
-       immr->im_ioport.iop_pcdat |=   0x0800 ;
-       immr->im_ioport.iop_pcdat &= ~(0x0400);
-       debug ("PDPAR=0x%04X PDDIR=0x%04X PDDAT=0x%04X\n",
-              immr->im_ioport.iop_pdpar,
-              immr->im_ioport.iop_pddir,
-              immr->im_ioport.iop_pddat);
-       debug ("PCPAR=0x%04X PCDIR=0x%04X PCDAT=0x%04X\n",
-              immr->im_ioport.iop_pcpar,
-              immr->im_ioport.iop_pcdir,
-              immr->im_ioport.iop_pcdat);
-#endif
 }
 
-/*----------------------------------------------------------------------*/
-
-#if defined (CONFIG_RBC823)
-void lcd_disable (void)
-{
-       volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
-       volatile lcd823_t *lcdp = &immr->im_lcd;
-
-#if defined(CONFIG_LWMON)
-    {  uchar c = pic_read (0x60);
-       c &= ~0x07;     /* Power off CCFL, Disable CCFL, Chip Disable LCD */
-       pic_write (0x60, c);
-    }
-#elif defined(CONFIG_R360MPI)
-    {
-       extern void r360_i2c_lcd_write (uchar data0, uchar data1);
-
-       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 */
-       lcdp->lcd_lccr &= ~LCCR_PON;
-#ifdef CONFIG_RBC823
-       /* Turn off display backlight, VEE and LCD_ON */
-       immr->im_cpm.cp_pbdat &= ~0x00005001;
-#else
-       immr->im_siu_conf.sc_sdcr &= ~(1 << (31 - 25)); /* LAM = 0 */
-#endif /* CONFIG_RBC823 */
-}
-#endif /* NOT_USED_SO_FAR || CONFIG_RBC823 */
-
-
 /************************************************************************/
 
 #endif /* CONFIG_LCD */