samsung: common: Add file for common functions, draw_logo() cleanup.

Changes:

new file:
- board/samsung/common/misc.c
  depends on: CONFIG_MISC_COMMON
- move draw_logo() to misc.c

configs: trats, trats2, universal:
- enable CONFIG_MISC_COMMON,
- enable CONFIG_MISC_INIT_R,
- add misc_init_r() and call draw_logo() in it.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
Przemyslaw Marczak 2014-01-22 11:24:12 +01:00 committed by Minkyu Kang
parent 7f39b06782
commit 679549d180
10 changed files with 91 additions and 29 deletions

View file

@ -8,6 +8,7 @@
obj-$(CONFIG_SOFT_I2C_MULTI_BUS) += multi_i2c.o obj-$(CONFIG_SOFT_I2C_MULTI_BUS) += multi_i2c.o
obj-$(CONFIG_THOR_FUNCTION) += thor.o obj-$(CONFIG_THOR_FUNCTION) += thor.o
obj-$(CONFIG_CMD_USB_MASS_STORAGE) += ums.o obj-$(CONFIG_CMD_USB_MASS_STORAGE) += ums.o
obj-$(CONFIG_MISC_COMMON) += misc.o
ifndef CONFIG_SPL_BUILD ifndef CONFIG_SPL_BUILD
obj-$(CONFIG_BOARD_COMMON) += board.o obj-$(CONFIG_BOARD_COMMON) += board.o

View file

@ -0,0 +1,41 @@
/*
* Copyright (C) 2013 Samsung Electronics
* Przemyslaw Marczak <p.marczak@samsung.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <lcd.h>
#include <libtizen.h>
#include <samsung/misc.h>
#ifdef CONFIG_CMD_BMP
void draw_logo(void)
{
int x, y;
ulong addr;
addr = panel_info.logo_addr;
if (!addr) {
error("There is no logo data.");
return;
}
if (panel_info.vl_width >= panel_info.logo_width) {
x = ((panel_info.vl_width - panel_info.logo_width) >> 1);
} else {
x = 0;
printf("Warning: image width is bigger than display width\n");
}
if (panel_info.vl_height >= panel_info.logo_height) {
y = ((panel_info.vl_height - panel_info.logo_height) >> 1);
} else {
y = 0;
printf("Warning: image height is bigger than display height\n");
}
bmp_display(addr, x, y);
}
#endif /* CONFIG_CMD_BMP */

View file

@ -786,3 +786,14 @@ void init_panel_info(vidinfo_t *vid)
setenv("lcdinfo", "lcd=s6e8ax0"); setenv("lcdinfo", "lcd=s6e8ax0");
} }
#ifdef CONFIG_MISC_INIT_R
int misc_init_r(void)
{
#ifdef CONFIG_CMD_BMP
if (panel_info.logo_on)
draw_logo();
#endif
return 0;
}
#endif

View file

@ -615,6 +615,10 @@ void init_panel_info(vidinfo_t *vid)
#ifdef CONFIG_MISC_INIT_R #ifdef CONFIG_MISC_INIT_R
int misc_init_r(void) int misc_init_r(void)
{ {
#ifdef CONFIG_CMD_BMP
if (panel_info.logo_on)
draw_logo();
#endif
return 0; return 0;
} }
#endif #endif

View file

@ -511,3 +511,14 @@ int board_init(void)
return 0; return 0;
} }
#ifdef CONFIG_MISC_INIT_R
int misc_init_r(void)
{
#ifdef CONFIG_CMD_BMP
if (panel_info.logo_on)
draw_logo();
#endif
return 0;
}
#endif

View file

@ -62,31 +62,6 @@ static void exynos_lcd_init(vidinfo_t *vid)
lcd_set_flush_dcache(1); lcd_set_flush_dcache(1);
} }
#ifdef CONFIG_CMD_BMP
static void draw_logo(void)
{
int x, y;
ulong addr;
if (panel_width >= panel_info.logo_width) {
x = ((panel_width - panel_info.logo_width) >> 1);
} else {
x = 0;
printf("Warning: image width is bigger than display width\n");
}
if (panel_height >= panel_info.logo_height) {
y = ((panel_height - panel_info.logo_height) >> 1) - 4;
} else {
y = 0;
printf("Warning: image height is bigger than display height\n");
}
addr = panel_info.logo_addr;
bmp_display(addr, x, y);
}
#endif
void __exynos_cfg_lcd_gpio(void) void __exynos_cfg_lcd_gpio(void)
{ {
} }
@ -323,9 +298,6 @@ void lcd_enable(void)
if (panel_info.logo_on) { if (panel_info.logo_on) {
memset((void *) gd->fb_base, 0, panel_width * panel_height * memset((void *) gd->fb_base, 0, panel_width * panel_height *
(NBITS(panel_info.vl_bpix) >> 3)); (NBITS(panel_info.vl_bpix) >> 3));
#ifdef CONFIG_CMD_BMP
draw_logo();
#endif
} }
lcd_panel_on(&panel_info); lcd_panel_on(&panel_info);

View file

@ -269,6 +269,11 @@ void universal_spi_sda(int bit);
int universal_spi_read(void); int universal_spi_read(void);
#endif #endif
/* Common misc for Samsung */
#define CONFIG_MISC_COMMON
#define CONFIG_MISC_INIT_R
/* /*
* LCD Settings * LCD Settings
*/ */

View file

@ -306,6 +306,11 @@
#define CONFIG_USB_GADGET_VBUS_DRAW 2 #define CONFIG_USB_GADGET_VBUS_DRAW 2
#define CONFIG_USB_CABLE_CHECK #define CONFIG_USB_CABLE_CHECK
/* Common misc for Samsung */
#define CONFIG_MISC_COMMON
#define CONFIG_MISC_INIT_R
/* LCD */ /* LCD */
#define CONFIG_EXYNOS_FB #define CONFIG_EXYNOS_FB
#define CONFIG_LCD #define CONFIG_LCD

View file

@ -277,7 +277,6 @@
#define CONFIG_EFI_PARTITION #define CONFIG_EFI_PARTITION
#define CONFIG_PARTITION_UUIDS #define CONFIG_PARTITION_UUIDS
#define CONFIG_MISC_INIT_R
#define CONFIG_BOARD_EARLY_INIT_F #define CONFIG_BOARD_EARLY_INIT_F
/* I2C */ /* I2C */
@ -318,6 +317,11 @@ int get_soft_i2c_sda_pin(void);
#define CONFIG_USB_GADGET_VBUS_DRAW 2 #define CONFIG_USB_GADGET_VBUS_DRAW 2
#define CONFIG_USB_CABLE_CHECK #define CONFIG_USB_CABLE_CHECK
/* Common misc for Samsung */
#define CONFIG_MISC_COMMON
#define CONFIG_MISC_INIT_R
/* LCD */ /* LCD */
#define CONFIG_EXYNOS_FB #define CONFIG_EXYNOS_FB
#define CONFIG_LCD #define CONFIG_LCD

8
include/samsung/misc.h Normal file
View file

@ -0,0 +1,8 @@
#ifndef __SAMSUNG_MISC_COMMON_H__
#define __SAMSUNG_MISC_COMMON_H__
#ifdef CONFIG_CMD_BMP
void draw_logo(void);
#endif
#endif /* __SAMSUNG_MISC_COMMON_H__ */