video: Move the console commands to cmd/
Move these commands and the implementation to the cmd/ directory, which is where most commands are kept. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> [agust: keep vidconsole_position_cursor() in vidconsole uclass] Signed-off-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
92fd6a1220
commit
f029f90e7d
12
cmd/Kconfig
12
cmd/Kconfig
@ -2161,6 +2161,18 @@ config CMD_UUID
|
|||||||
The two commands are very similar except for the endianness of the
|
The two commands are very similar except for the endianness of the
|
||||||
output.
|
output.
|
||||||
|
|
||||||
|
config CMD_VIDCONSOLE
|
||||||
|
bool "lcdputs and setcurs"
|
||||||
|
depends on DM_VIDEO
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Enabling this will provide 'setcurs' and 'lcdputs' commands which
|
||||||
|
support cursor positioning and drawing strings on the video
|
||||||
|
console (framebuffer).
|
||||||
|
|
||||||
|
The name 'lcdputs' is a bit of a misnomer, but so named because the
|
||||||
|
video device is often an LCD.
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
source "cmd/ti/Kconfig"
|
source "cmd/ti/Kconfig"
|
||||||
|
@ -178,6 +178,8 @@ obj-$(CONFIG_CMD_WDT) += wdt.o
|
|||||||
obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o
|
obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o
|
||||||
obj-$(CONFIG_CMD_UFS) += ufs.o
|
obj-$(CONFIG_CMD_UFS) += ufs.o
|
||||||
obj-$(CONFIG_CMD_USB) += usb.o disk.o
|
obj-$(CONFIG_CMD_USB) += usb.o disk.o
|
||||||
|
obj-$(CONFIG_CMD_VIDCONSOLE) += video.o
|
||||||
|
|
||||||
obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o
|
obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o
|
||||||
obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o
|
obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o
|
||||||
|
|
||||||
|
61
cmd/video.c
Normal file
61
cmd/video.c
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* video commands
|
||||||
|
*
|
||||||
|
* Copyright 2022 Google LLC
|
||||||
|
* Written by Simon Glass <sjg@chromium.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <command.h>
|
||||||
|
#include <dm.h>
|
||||||
|
#include <video.h>
|
||||||
|
#include <video_console.h>
|
||||||
|
|
||||||
|
static int do_video_setcursor(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
|
char *const argv[])
|
||||||
|
{
|
||||||
|
unsigned int col, row;
|
||||||
|
struct udevice *dev;
|
||||||
|
|
||||||
|
if (argc != 3)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
|
||||||
|
if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
|
||||||
|
return CMD_RET_FAILURE;
|
||||||
|
col = dectoul(argv[1], NULL);
|
||||||
|
row = dectoul(argv[2], NULL);
|
||||||
|
vidconsole_position_cursor(dev, col, row);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int do_video_puts(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
|
char *const argv[])
|
||||||
|
{
|
||||||
|
struct udevice *dev;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (argc != 2)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
|
||||||
|
if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
|
||||||
|
return CMD_RET_FAILURE;
|
||||||
|
ret = vidconsole_put_string(dev, argv[1]);
|
||||||
|
if (!ret)
|
||||||
|
ret = video_sync(dev->parent, false);
|
||||||
|
|
||||||
|
return ret ? CMD_RET_FAILURE : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
U_BOOT_CMD(
|
||||||
|
setcurs, 3, 1, do_video_setcursor,
|
||||||
|
"set cursor position within screen",
|
||||||
|
" <col> <row> in character"
|
||||||
|
);
|
||||||
|
|
||||||
|
U_BOOT_CMD(
|
||||||
|
lcdputs, 2, 1, do_video_puts,
|
||||||
|
"print string on video framebuffer",
|
||||||
|
" <string>"
|
||||||
|
);
|
@ -85,14 +85,6 @@ config BACKLIGHT_GPIO
|
|||||||
it understands the standard device tree
|
it understands the standard device tree
|
||||||
(leds/backlight/gpio-backlight.txt)
|
(leds/backlight/gpio-backlight.txt)
|
||||||
|
|
||||||
config CMD_VIDCONSOLE
|
|
||||||
bool "Enable vidconsole commands lcdputs and setcurs"
|
|
||||||
depends on DM_VIDEO
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
Enabling this will provide 'setcurs' and 'lcdputs' commands which
|
|
||||||
support cursor positioning and drawing strings on video framebuffer.
|
|
||||||
|
|
||||||
config VIDEO_BPP8
|
config VIDEO_BPP8
|
||||||
bool "Support 8-bit-per-pixel displays"
|
bool "Support 8-bit-per-pixel displays"
|
||||||
depends on DM_VIDEO
|
depends on DM_VIDEO
|
||||||
|
@ -617,7 +617,6 @@ int vidconsole_memmove(struct udevice *dev, void *dst, const void *src,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(CMD_VIDCONSOLE)
|
|
||||||
void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row)
|
void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row)
|
||||||
{
|
{
|
||||||
struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
|
struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
|
||||||
@ -629,52 +628,3 @@ void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row)
|
|||||||
y = min_t(short, row * priv->y_charsize, vid_priv->ysize - 1);
|
y = min_t(short, row * priv->y_charsize, vid_priv->ysize - 1);
|
||||||
vidconsole_set_cursor_pos(dev, x, y);
|
vidconsole_set_cursor_pos(dev, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int do_video_setcursor(struct cmd_tbl *cmdtp, int flag, int argc,
|
|
||||||
char *const argv[])
|
|
||||||
{
|
|
||||||
unsigned int col, row;
|
|
||||||
struct udevice *dev;
|
|
||||||
|
|
||||||
if (argc != 3)
|
|
||||||
return CMD_RET_USAGE;
|
|
||||||
|
|
||||||
if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
|
|
||||||
return CMD_RET_FAILURE;
|
|
||||||
col = dectoul(argv[1], NULL);
|
|
||||||
row = dectoul(argv[2], NULL);
|
|
||||||
vidconsole_position_cursor(dev, col, row);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int do_video_puts(struct cmd_tbl *cmdtp, int flag, int argc,
|
|
||||||
char *const argv[])
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (argc != 2)
|
|
||||||
return CMD_RET_USAGE;
|
|
||||||
|
|
||||||
if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
|
|
||||||
return CMD_RET_FAILURE;
|
|
||||||
ret = vidconsole_put_string(dev, argv[1]);
|
|
||||||
if (!ret)
|
|
||||||
ret = video_sync(dev->parent, false);
|
|
||||||
|
|
||||||
return ret ? CMD_RET_FAILURE : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
U_BOOT_CMD(
|
|
||||||
setcurs, 3, 1, do_video_setcursor,
|
|
||||||
"set cursor position within screen",
|
|
||||||
" <col> <row> in character"
|
|
||||||
);
|
|
||||||
|
|
||||||
U_BOOT_CMD(
|
|
||||||
lcdputs, 2, 1, do_video_puts,
|
|
||||||
"print string on video framebuffer",
|
|
||||||
" <string>"
|
|
||||||
);
|
|
||||||
#endif /* CONFIG_IS_ENABLED(CMD_VIDCONSOLE) */
|
|
||||||
|
Loading…
Reference in New Issue
Block a user