]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
EXYNOS: display 32bpp bitmap TIZEN logo
authorDonghwa Lee <dh09.lee@samsung.com>
Wed, 9 May 2012 19:23:46 +0000 (19:23 +0000)
committerAnatolij Gustschin <agust@denx.de>
Fri, 25 May 2012 07:15:10 +0000 (09:15 +0200)
This patch supports drawing 32bpp bitmap TIZEN logo in exynos fb.
"tizen_hd_logo.h" data is compressed from trats_logo.bmp to
trats_logo.bmp.gz by gzip and converted to tizen_hd_logo.h header file
format by some application. The logo data is decompressed in the exynos
fb driver by bmp_display().

Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
board/samsung/trats/trats.c
drivers/video/exynos_fb.c
drivers/video/exynos_fb.h
drivers/video/exynos_fimd.c
include/configs/trats.h
include/lcd.h

index 25f5cafc49c09803946085c4965d70bdb03233f7..a0eec75bc5ff974ae29579c970b97b5525471a7e 100644 (file)
@@ -37,6 +37,7 @@
 #include <pmic.h>
 #include <usb/s3c_udc.h>
 #include <max8997_pmic.h>
+#include <libtizen.h>
 
 #include "setup.h"
 
@@ -496,6 +497,13 @@ void init_panel_info(vidinfo_t *vid)
        vid->reset_delay = 0;
        vid->interface_mode = FIMD_RGB_INTERFACE;
        vid->mipi_enabled = 1;
+       vid->logo_on    = 1,
+       vid->resolution = HD_RESOLUTION,
+       vid->rgb_mode   = MODE_RGB_P,
+
+#ifdef CONFIG_TIZEN
+       get_tizen_logo_info(vid);
+#endif
 
        if (hwrevision(2))
                mipi_lcd_device.reverse_panel = 1;
index a1cf44964bf6bbd036f12b0aa89f68cd90cf1fd5..92be4ead36c582e7d0b1d01651780f3f4da33c12 100644 (file)
@@ -67,6 +67,18 @@ static void exynos_lcd_init(vidinfo_t *vid)
        exynos_fimd_lcd_init(vid);
 }
 
+static void draw_logo(void)
+{
+       int x, y;
+       ulong addr;
+
+       x = ((panel_width - panel_info.logo_width) >> 1);
+       y = ((panel_height - panel_info.logo_height) >> 1) - 4;
+
+       addr = panel_info.logo_addr;
+       bmp_display(addr, x, y);
+}
+
 static void lcd_panel_on(vidinfo_t *vid)
 {
        udelay(vid->init_delay);
@@ -118,6 +130,13 @@ void lcd_ctrl_init(void *lcdbase)
 
 void lcd_enable(void)
 {
+       if (panel_info.logo_on) {
+               memset(lcd_base, 0, panel_width * panel_height *
+                               (NBITS(panel_info.vl_bpix) >> 3));
+
+               draw_logo();
+       }
+
        lcd_panel_on(&panel_info);
 }
 
index 66f5da6d46a3f53201a160c4fd9bec3b191aeceb..4ff2efd2bb8a3272b510d5622fde9f2dbae5f39b 100644 (file)
 
 #define MAX_CLOCK      (86 * 1000000)
 
-enum exynos_fb_rgb_mode_t {
-       MODE_RGB_P = 0,
-       MODE_BGR_P = 1,
-       MODE_RGB_S = 2,
-       MODE_BGR_S = 3,
-};
-
 enum exynos_cpu_auto_cmd_rate {
        DISABLE_AUTO_FRM,
        PER_TWO_FRM,
index 6416b90fcc608f8121639d82eeb0ec26f7b8bb18..f07568accae5a1c927f7cc252fe9b9d8a4b4ac54 100644 (file)
@@ -273,7 +273,7 @@ void exynos_fimd_lcd_init(vidinfo_t *vid)
        /* store panel info to global variable */
        pvid = vid;
 
-       rgb_mode = MODE_RGB_P;
+       rgb_mode = vid->rgb_mode;
 
        if (vid->interface_mode == FIMD_RGB_INTERFACE) {
                cfg |= EXYNOS_VIDCON0_VIDOUT_RGB;
index ef6510e67ddaf162ade3165fa3a642ed8e78012f..5e38de2bc82a705a39abc3dda44c2e9c003d2ba4 100644 (file)
@@ -34,6 +34,7 @@
 #define CONFIG_S5P             /* which is in a S5P Family */
 #define CONFIG_EXYNOS4210      /* which is in a EXYNOS4210 */
 #define CONFIG_TRATS           /* working with TRATS */
+#define CONFIG_TIZEN           /* TIZEN lib */
 
 #include <asm/arch/cpu.h>      /* get chip and board defs */
 
 /* LCD */
 #define CONFIG_EXYNOS_FB
 #define CONFIG_LCD
+#define CONFIG_CMD_BMP
+#define CONFIG_BMP_32BPP
 #define CONFIG_FB_ADDR         0x52504000
 #define CONFIG_S6E8AX0
 #define CONFIG_EXYNOS_MIPI_DSIM
-#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (1280 * 720 * 4)
+#define CONFIG_VIDEO_BMP_GZIP
+#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 120 * 4) + (1 << 12))
 
 #endif /* __CONFIG_H */
index a10d8d02651b2cc6bd16ff457e136c68469472a0..ee47247d8ca87162053c93f417634dbcaf0ff107 100644 (file)
@@ -191,6 +191,13 @@ enum {
        FIMD_CPU_INTERFACE = 2,
 };
 
+enum exynos_fb_rgb_mode_t {
+       MODE_RGB_P = 0,
+       MODE_BGR_P = 1,
+       MODE_RGB_S = 2,
+       MODE_BGR_S = 3,
+};
+
 typedef struct vidinfo {
        ushort vl_col;          /* Number of columns (i.e. 640) */
        ushort vl_row;          /* Number of rows (i.e. 480) */
@@ -236,6 +243,12 @@ typedef struct vidinfo {
        unsigned int wr_setup;
        unsigned int wr_act;
        unsigned int wr_hold;
+       unsigned int logo_on;
+       unsigned int logo_width;
+       unsigned int logo_height;
+       unsigned long logo_addr;
+       unsigned int rgb_mode;
+       unsigned int resolution;
 
        /* parent clock name(MPLL, EPLL or VPLL) */
        unsigned int pclk_name;