dm: video: use constants to refer to colors

Use constants to refer to colors.
Adjust initialization of foreground and background color to avoid
setting reserved bits.
Consistently u32 instead of unsigned for color bit mask.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Heinrich Schuchardt 2018-02-08 21:47:11 +01:00 committed by Anatolij Gustschin
parent d7a75d3cd7
commit 5c30fbb8ec
4 changed files with 89 additions and 31 deletions

View file

@ -7,11 +7,29 @@
#ifndef __video_console_h
#define __video_console_h
#include <video.h>
#define VID_FRAC_DIV 256
#define VID_TO_PIXEL(x) ((x) / VID_FRAC_DIV)
#define VID_TO_POS(x) ((x) * VID_FRAC_DIV)
/*
* The 8 colors supported by the console
*/
enum color_idx {
VID_BLACK = 0,
VID_RED,
VID_GREEN,
VID_YELLOW,
VID_BLUE,
VID_MAGENTA,
VID_CYAN,
VID_WHITE,
VID_COLOR_COUNT
};
/**
* struct vidconsole_priv - uclass-private data about a console device
*
@ -196,4 +214,21 @@ int vidconsole_put_char(struct udevice *dev, char ch);
void vidconsole_position_cursor(struct udevice *dev, unsigned col,
unsigned row);
#ifdef CONFIG_DM_VIDEO
/**
* vid_console_color() - convert a color code to a pixel's internal
* representation
*
* The caller has to guarantee that the color index is less than
* VID_COLOR_COUNT.
*
* @priv private data of the console device
* @idx color index
* @return color value
*/
u32 vid_console_color(struct video_priv *priv, unsigned int idx);
#endif
#endif