]> git.sur5r.net Git - u-boot/blobdiff - board/esd/common/lcd.c
Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash
[u-boot] / board / esd / common / lcd.c
index 0edc08308a1320d0bc7db82e54d5443988ee7d34..4116838b2886cbddd7af2be30f52cde3c783f0ff 100644 (file)
@@ -24,6 +24,7 @@
  * MA 02111-1307 USA
  */
 
+#include "asm/io.h"
 #include "lcd.h"
 
 
@@ -45,11 +46,10 @@ void lcd_setup(int lcd, int config)
                 */
                out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_LCD0_RST); /* set reset to low */
                udelay(10); /* wait 10us */
-               if (config == 1) {
+               if (config == 1)
                        out32(GPIO0_OR, in32(GPIO0_OR) | CFG_LCD_ENDIAN); /* big-endian */
-               } else {
+               else
                        out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_LCD_ENDIAN); /* little-endian */
-               }
                udelay(10); /* wait 10us */
                out32(GPIO0_OR, in32(GPIO0_OR) | CFG_LCD0_RST); /* set reset to high */
        } else {
@@ -58,11 +58,10 @@ void lcd_setup(int lcd, int config)
                 */
                out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_LCD1_RST); /* set reset to low */
                udelay(10); /* wait 10us */
-               if (config == 1) {
+               if (config == 1)
                        out32(GPIO0_OR, in32(GPIO0_OR) | CFG_LCD_ENDIAN); /* big-endian */
-               } else {
+               else
                        out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_LCD_ENDIAN); /* little-endian */
-               }
                udelay(10); /* wait 10us */
                out32(GPIO0_OR, in32(GPIO0_OR) | CFG_LCD1_RST); /* set reset to high */
        }
@@ -104,12 +103,10 @@ void lcd_bmp(uchar *logo_bmp)
                        printf("Error: malloc in gunzip failed!\n");
                        return;
                }
-               if (gunzip(dst, CFG_VIDEO_LOGO_MAX_SIZE, (uchar *)logo_bmp, &len) != 0) {
+               if (gunzip(dst, CFG_VIDEO_LOGO_MAX_SIZE, (uchar *)logo_bmp, &len) != 0)
                        return;
-               }
-               if (len == CFG_VIDEO_LOGO_MAX_SIZE) {
+               if (len == CFG_VIDEO_LOGO_MAX_SIZE)
                        printf("Image could be truncated (increase CFG_VIDEO_LOGO_MAX_SIZE)!\n");
-               }
 
                /*
                 * Check for bmp mark 'BM'
@@ -152,9 +149,8 @@ void lcd_bmp(uchar *logo_bmp)
                break;
        default:
                printf("LCD: Unknown bpp (%d) im image!\n", bpp);
-               if ((dst != NULL) && (dst != (uchar *)logo_bmp)) {
+               if ((dst != NULL) && (dst != (uchar *)logo_bmp))
                        free(dst);
-               }
                return;
        }
        printf(" (%d*%d, %dbpp)\n", width, height, bpp);
@@ -212,9 +208,8 @@ void lcd_bmp(uchar *logo_bmp)
                }
        }
 
-       if ((dst != NULL) && (dst != (uchar *)logo_bmp)) {
+       if ((dst != NULL) && (dst != (uchar *)logo_bmp))
                free(dst);
-       }
 }
 
 
@@ -229,7 +224,10 @@ void lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
        /*
         * Detect epson
         */
-       if (lcd_reg[0] == 0x1c) {
+       out_8(&lcd_reg[0], 0x00);
+       out_8(&lcd_reg[1], 0x00);
+
+       if (in_8(&lcd_reg[0]) == 0x1c) {
                /*
                 * Big epson detected
                 */
@@ -238,7 +236,7 @@ void lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
                palette_value = 0x1e4;
                lcd_depth = 16;
                puts("LCD:   S1D13806");
-       } else if (lcd_reg[1] == 0x1c) {
+       } else if (in_8(&lcd_reg[1]) == 0x1c) {
                /*
                 * Big epson detected (with register swap bug)
                 */
@@ -247,7 +245,7 @@ void lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
                palette_value = 0x1e5;
                lcd_depth = 16;
                puts("LCD:   S1D13806S");
-       } else if (lcd_reg[0] == 0x18) {
+       } else if (in_8(&lcd_reg[0]) == 0x18) {
                /*
                 * Small epson detected (704)
                 */
@@ -256,7 +254,7 @@ void lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
                palette_value = 0x17;
                lcd_depth = 8;
                puts("LCD:   S1D13704");
-       } else if (lcd_reg[0x10000] == 0x24) {
+             } else if (in_8(&lcd_reg[0x10000]) == 0x24) {
                /*
                 * Small epson detected (705)
                 */
@@ -274,7 +272,7 @@ void lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
        /*
         * Setup lcd controller regs
         */
-       for (i = 0; i<reg_count; i++) {
+       for (i = 0; i < reg_count; i++) {
                s1dReg = regs[i].Index;
                if (reg_byte_swap) {
                        if ((s1dReg & 0x0001) == 0)