diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/video.h | 13 | ||||
-rw-r--r-- | include/video_console.h | 43 | ||||
-rw-r--r-- | include/video_font_4x6.h | 4 | ||||
-rw-r--r-- | include/video_font_data.h | 2 |
4 files changed, 58 insertions, 4 deletions
diff --git a/include/video.h b/include/video.h index 61ff6531215..ddc2eeb5a95 100644 --- a/include/video.h +++ b/include/video.h @@ -67,6 +67,7 @@ enum video_log2_bpp { * @flush_dcache: true to enable flushing of the data cache after * the LCD is updated * @cmap: Colour map for 8-bit-per-pixel displays + * @fg_col_idx: Foreground color code (bit 3 = bold, bit 0-2 = color) */ struct video_priv { /* Things set up by the driver: */ @@ -84,10 +85,11 @@ struct video_priv { void *fb; int fb_size; int line_length; - int colour_fg; - int colour_bg; + u32 colour_fg; + u32 colour_bg; bool flush_dcache; ushort *cmap; + u8 fg_col_idx; }; /* Placeholder - there are no video operations at present */ @@ -183,6 +185,13 @@ int video_get_ysize(struct udevice *dev); */ void video_set_flush_dcache(struct udevice *dev, bool flush); +/** + * Set default colors and attributes + * + * @priv device information + */ +void video_set_default_colors(struct video_priv *priv); + #endif /* CONFIG_DM_VIDEO */ #ifndef CONFIG_DM_VIDEO diff --git a/include/video_console.h b/include/video_console.h index 9dce234bd92..7621a189d2a 100644 --- a/include/video_console.h +++ b/include/video_console.h @@ -7,11 +7,37 @@ #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 16 colors supported by the console + */ +enum color_idx { + VID_BLACK = 0, + VID_RED, + VID_GREEN, + VID_BROWN, + VID_BLUE, + VID_MAGENTA, + VID_CYAN, + VID_LIGHT_GRAY, + VID_GRAY, + VID_LIGHT_RED, + VID_LIGTH_GREEN, + VID_YELLOW, + VID_LIGHT_BLUE, + VID_LIGHT_MAGENTA, + VID_LIGHT_CYAN, + VID_WHITE, + + VID_COLOR_COUNT +}; + /** * struct vidconsole_priv - uclass-private data about a console device * @@ -196,4 +222,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 diff --git a/include/video_font_4x6.h b/include/video_font_4x6.h index 6aeed092ad4..64c5ed2eda4 100644 --- a/include/video_font_4x6.h +++ b/include/video_font_4x6.h @@ -1,5 +1,5 @@ -/* Hand composed "Minuscule" 4x6 font, with binary data generated using - * Perl stub. +/* Hand composed "Minuscule" 4x6 font for code page 437, with binary data + * generated using Perl stub. * * Use 'perl -x mini_4x6.c < mini_4x6.c > new_version.c' to regenerate * binary data. diff --git a/include/video_font_data.h b/include/video_font_data.h index 346a162f56f..d52526a63c8 100644 --- a/include/video_font_data.h +++ b/include/video_font_data.h @@ -3,6 +3,8 @@ * Paolo Scaffardi, AIRVENT SAM s.p.a - RIMINI(ITALY), arsenio@tin.it * * SPDX-License-Identifier: GPL-2.0+ + * + * This file contains an 8x16 bitmap font for code page 437. */ #ifndef _VIDEO_FONT_DATA_ |