mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +08:00
lcd: split configuration_get_cmap
configuration_get_cmap() is multiple platform-specific functions stuffed into one function. Split it into multiple versions, and move each version to the appropriate driver to reduce the #ifdef complexity. Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Bo Shen <voice.shen@atmel.com> Tested-by: Josh Wu <josh.wu@atmel.com> Cc: Bo Shen <voice.shen@atmel.com> Cc: Simon Glass <sjg@chromium.org> Cc: Anatolij Gustschin <agust@denx.de>
This commit is contained in:

committed by
Anatolij Gustschin

parent
baaa7dd706
commit
38b550877f
19
common/lcd.c
19
common/lcd.c
@ -383,25 +383,6 @@ int lcd_getbgcolor(void)
|
|||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* ** Chipset depending Bitmap / Logo stuff... */
|
/* ** Chipset depending Bitmap / Logo stuff... */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
static inline ushort *configuration_get_cmap(void)
|
|
||||||
{
|
|
||||||
#if defined CONFIG_CPU_PXA
|
|
||||||
struct pxafb_info *fbi = &panel_info.pxa;
|
|
||||||
return (ushort *)fbi->palette;
|
|
||||||
#elif defined(CONFIG_MPC823)
|
|
||||||
immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
|
|
||||||
cpm8xx_t *cp = &(immr->im_cpm);
|
|
||||||
return (ushort *)&(cp->lcd_cmap[255 * sizeof(ushort)]);
|
|
||||||
#elif defined(CONFIG_ATMEL_LCD)
|
|
||||||
return (ushort *)(panel_info.mmio + ATMEL_LCDC_LUT(0));
|
|
||||||
#elif !defined(CONFIG_ATMEL_HLCD) && !defined(CONFIG_EXYNOS_FB)
|
|
||||||
return panel_info.cmap;
|
|
||||||
#elif defined(CONFIG_LCD_LOGO)
|
|
||||||
return bmp_logo_palette;
|
|
||||||
#else
|
|
||||||
return NULL;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_LCD_LOGO
|
#ifdef CONFIG_LCD_LOGO
|
||||||
void bitmap_plot(int x, int y)
|
void bitmap_plot(int x, int y)
|
||||||
|
@ -13,6 +13,10 @@
|
|||||||
#include <lcd.h>
|
#include <lcd.h>
|
||||||
#include <atmel_hlcdc.h>
|
#include <atmel_hlcdc.h>
|
||||||
|
|
||||||
|
#if defined(CONFIG_LCD_LOGO)
|
||||||
|
#include <bmp_logo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* configurable parameters */
|
/* configurable parameters */
|
||||||
#define ATMEL_LCDC_CVAL_DEFAULT 0xc8
|
#define ATMEL_LCDC_CVAL_DEFAULT 0xc8
|
||||||
#define ATMEL_LCDC_DMA_BURST_LEN 8
|
#define ATMEL_LCDC_DMA_BURST_LEN 8
|
||||||
@ -37,6 +41,15 @@ void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue)
|
|||||||
panel_info.mmio + ATMEL_LCDC_LUT(regno));
|
panel_info.mmio + ATMEL_LCDC_LUT(regno));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ushort *configuration_get_cmap(void)
|
||||||
|
{
|
||||||
|
#if defined(CONFIG_LCD_LOGO)
|
||||||
|
return bmp_logo_palette;
|
||||||
|
#else
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void lcd_ctrl_init(void *lcdbase)
|
void lcd_ctrl_init(void *lcdbase)
|
||||||
{
|
{
|
||||||
unsigned long value;
|
unsigned long value;
|
||||||
|
@ -29,6 +29,11 @@
|
|||||||
#define lcdc_readl(mmio, reg) __raw_readl((mmio)+(reg))
|
#define lcdc_readl(mmio, reg) __raw_readl((mmio)+(reg))
|
||||||
#define lcdc_writel(mmio, reg, val) __raw_writel((val), (mmio)+(reg))
|
#define lcdc_writel(mmio, reg, val) __raw_writel((val), (mmio)+(reg))
|
||||||
|
|
||||||
|
ushort *configuration_get_cmap(void)
|
||||||
|
{
|
||||||
|
return (ushort *)(panel_info.mmio + ATMEL_LCDC_LUT(0));
|
||||||
|
}
|
||||||
|
|
||||||
void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue)
|
void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_ATMEL_LCD_BGR555)
|
#if defined(CONFIG_ATMEL_LCD_BGR555)
|
||||||
|
@ -37,6 +37,15 @@ vidinfo_t panel_info = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ushort *configuration_get_cmap(void)
|
||||||
|
{
|
||||||
|
#if defined(CONFIG_LCD_LOGO)
|
||||||
|
return bmp_logo_palette;
|
||||||
|
#else
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
|
static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
|
||||||
{
|
{
|
||||||
unsigned long palette_size;
|
unsigned long palette_size;
|
||||||
|
@ -357,6 +357,13 @@ lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
|
|||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
ushort *configuration_get_cmap(void)
|
||||||
|
{
|
||||||
|
immap_t *immr = (immap_t *)CONFIG_SYS_IMMR;
|
||||||
|
cpm8xx_t *cp = &(immr->im_cpm);
|
||||||
|
return (ushort *)&(cp->lcd_cmap[255 * sizeof(ushort)]);
|
||||||
|
}
|
||||||
|
|
||||||
void lcd_enable (void)
|
void lcd_enable (void)
|
||||||
{
|
{
|
||||||
volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
|
volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
|
||||||
|
@ -342,6 +342,12 @@ static int pxafb_init (vidinfo_t *vid);
|
|||||||
/* --------------- PXA chipset specific functions ------------------- */
|
/* --------------- PXA chipset specific functions ------------------- */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
|
ushort *configuration_get_cmap(void)
|
||||||
|
{
|
||||||
|
struct pxafb_info *fbi = &panel_info.pxa;
|
||||||
|
return (ushort *)fbi->palette;
|
||||||
|
}
|
||||||
|
|
||||||
void lcd_ctrl_init (void *lcdbase)
|
void lcd_ctrl_init (void *lcdbase)
|
||||||
{
|
{
|
||||||
pxafb_init_mem(lcdbase, &panel_info);
|
pxafb_init_mem(lcdbase, &panel_info);
|
||||||
|
@ -60,8 +60,15 @@ typedef struct vidinfo {
|
|||||||
|
|
||||||
void *priv; /* Pointer to driver-specific data */
|
void *priv; /* Pointer to driver-specific data */
|
||||||
} vidinfo_t;
|
} vidinfo_t;
|
||||||
|
|
||||||
|
static __maybe_unused ushort *configuration_get_cmap(void)
|
||||||
|
{
|
||||||
|
return panel_info.cmap;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ushort *configuration_get_cmap(void);
|
||||||
|
|
||||||
extern vidinfo_t panel_info;
|
extern vidinfo_t panel_info;
|
||||||
|
|
||||||
/* Video functions */
|
/* Video functions */
|
||||||
|
Reference in New Issue
Block a user