cmd: add clear screen 'cls' command

Add common clear screen command for configurations
CONFIG_DM_VIDEO, CONFIG_LCD and CONFIG_CFB_CONSOLE.

Remove the existing cls command implementation from
lcd.c code and activate the command for all boards
enabling CONFIG_LCD for compatibility reasons.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Tested-by: Patrick.Delaunay <patrick.delaunay@free.fr>
This commit is contained in:
Anatolij Gustschin 2018-12-01 10:47:20 +01:00
parent 06696ebe67
commit 4e92e60d35
4 changed files with 44 additions and 8 deletions

View file

@ -1380,6 +1380,14 @@ config CMD_CONITRACE
Enable the 'conitrace' command which displays the codes received Enable the 'conitrace' command which displays the codes received
from the console input as hexadecimal numbers. from the console input as hexadecimal numbers.
config CMD_CLS
bool "Enable clear screen command 'cls'"
depends on CFB_CONSOLE || DM_VIDEO || LCD || VIDEO
default y if LCD
help
Enable the 'cls' command which clears the screen contents
on video frame buffer.
config CMD_DISPLAY config CMD_DISPLAY
bool "Enable the 'display' command, for character displays" bool "Enable the 'display' command, for character displays"
help help

View file

@ -32,6 +32,7 @@ obj-$(CONFIG_CMD_BTRFS) += btrfs.o
obj-$(CONFIG_CMD_CACHE) += cache.o obj-$(CONFIG_CMD_CACHE) += cache.o
obj-$(CONFIG_CMD_CBFS) += cbfs.o obj-$(CONFIG_CMD_CBFS) += cbfs.o
obj-$(CONFIG_CMD_CLK) += clk.o obj-$(CONFIG_CMD_CLK) += clk.o
obj-$(CONFIG_CMD_CLS) += cls.o
obj-$(CONFIG_CMD_CONFIG) += config.o obj-$(CONFIG_CMD_CONFIG) += config.o
obj-$(CONFIG_CMD_CONITRACE) += conitrace.o obj-$(CONFIG_CMD_CONITRACE) += conitrace.o
obj-$(CONFIG_CMD_CONSOLE) += console.o obj-$(CONFIG_CMD_CONSOLE) += console.o

35
cmd/cls.c Normal file
View file

@ -0,0 +1,35 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2018
* DENX Software Engineering, Anatolij Gustschin <agust@denx.de>
*
* cls - clear screen command
*/
#include <common.h>
#include <command.h>
#include <dm.h>
#include <lcd.h>
#include <video.h>
static int do_video_clear(cmd_tbl_t *cmdtp, int flag, int argc,
char *const argv[])
{
#if defined(CONFIG_DM_VIDEO)
struct udevice *dev;
if (uclass_first_device_err(UCLASS_VIDEO, &dev))
return CMD_RET_FAILURE;
if (video_clear(dev))
return CMD_RET_FAILURE;
#elif defined(CONFIG_CFB_CONSOLE)
video_clear();
#elif defined(CONFIG_LCD)
lcd_clear();
#else
return CMD_RET_FAILURE;
#endif
return CMD_RET_SUCCESS;
}
U_BOOT_CMD(cls, 1, 1, do_video_clear, "clear screen", "");

View file

@ -242,14 +242,6 @@ void lcd_clear(void)
lcd_sync(); lcd_sync();
} }
static int do_lcd_clear(cmd_tbl_t *cmdtp, int flag, int argc,
char *const argv[])
{
lcd_clear();
return 0;
}
U_BOOT_CMD(cls, 1, 1, do_lcd_clear, "clear screen", "");
static int lcd_init(void *lcdbase) static int lcd_init(void *lcdbase)
{ {
debug("[LCD] Initializing LCD frambuffer at %p\n", lcdbase); debug("[LCD] Initializing LCD frambuffer at %p\n", lcdbase);