Merge tag 'u-boot-imx-next-20230404' of https://gitlab.denx.de/u-boot/custodians...
[platform/kernel/u-boot.git] / cmd / cls.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * (C) Copyright 2018
4  * DENX Software Engineering, Anatolij Gustschin <agust@denx.de>
5  *
6  * cls - clear screen command
7  */
8 #include <common.h>
9 #include <command.h>
10 #include <dm.h>
11 #include <video_console.h>
12
13 #define CSI "\x1b["
14
15 static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc,
16                           char *const argv[])
17 {
18         __maybe_unused struct udevice *dev;
19
20         /*
21          * Send clear screen and home
22          *
23          * FIXME(Heinrich Schuchardt <xypron.glpk@gmx.de>): This should go
24          * through an API and only be written to serial terminals, not video
25          * displays
26          */
27         printf(CSI "2J" CSI "1;1H");
28         if (IS_ENABLED(CONFIG_VIDEO_ANSI))
29                 return 0;
30
31         if (IS_ENABLED(CONFIG_VIDEO)) {
32                 if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
33                         return CMD_RET_FAILURE;
34                 if (vidconsole_clear_and_reset(dev))
35                         return CMD_RET_FAILURE;
36         }
37
38         return CMD_RET_SUCCESS;
39 }
40
41 U_BOOT_CMD(cls, 1, 1, do_video_clear, "clear screen", "");