]>
git.ipfire.org Git - thirdparty/u-boot.git/blob - drivers/video/vidconsole_internal.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (c) 2015 Google, Inc
5 * Bernecker & Rainer Industrieelektronik GmbH - http://www.br-automation.com
6 * (C) Copyright 2023 Dzmitry Sankouski <dsankouski@gmail.com>
9 #include <video_font.h> /* Get font data, width and height */
11 #define VIDEO_FONT_BYTE_WIDTH ((VIDEO_FONT_WIDTH / 8) + (VIDEO_FONT_WIDTH % 8 > 0))
13 #define FLIPPED_DIRECTION 1
14 #define NORMAL_DIRECTION 0
17 * Checks if bits per pixel supported.
19 * @param bpix framebuffer bits per pixel.
21 * @returns 0, if supported, or else -ENOSYS.
23 int check_bpix_support(int bpix
);
26 * Fill 1 pixel in framebuffer, and go to next one.
28 * @param dstp a pointer to pointer to framebuffer.
29 * @param value value to write to framebuffer.
30 * @param pbytes framebuffer bytes per pixel.
31 * @param step framebuffer pointer increment. Usually is equal to pbytes,
32 * and may be negative to control filling direction.
34 void fill_pixel_and_goto_next(void **dstp
, u32 value
, int pbytes
, int step
);
37 * Fills 1 character in framebuffer vertically. Vertically means we're filling char font data rows
40 * @param pfont a pointer to character font data.
41 * @param line a pointer to pointer to framebuffer. It's a point for upper left char corner
42 * @param vid_priv driver private data.
43 * @param direction controls character orientation. Can be normal or flipped.
44 * When normal: When flipped:
45 *|-----------------------------------------------|
54 *| stepping -> | line stepping |
55 *|---!!we're starting from upper left char corner|
56 *|-----------------------------------------------|
58 * @returns 0, if success, or else error code.
60 int fill_char_vertically(uchar
*pfont
, void **line
, struct video_priv
*vid_priv
,
64 * Fills 1 character in framebuffer horizontally.
65 * Horizontally means we're filling char font data columns across the lines.
67 * @param pfont a pointer to character font data.
68 * @param line a pointer to pointer to framebuffer. It's a point for upper left char corner
69 * @param vid_priv driver private data.
70 * @param direction controls character orientation. Can be normal or flipped.
71 * When normal: When flipped:
72 *|-----------------------------------------------|
73 *| * | line stepping |
77 *| line stepping | * |
79 *| stepping -> | <- stepping |
80 *|---!!we're starting from upper left char corner|
81 *|-----------------------------------------------|
83 * @returns 0, if success, or else error code.
85 int fill_char_horizontally(uchar
*pfont
, void **line
, struct video_priv
*vid_priv
,
89 * console probe function.
91 * @param dev a pointer to device.
93 * @returns 0, if success, or else error code.
95 int console_probe(struct udevice
*dev
);