blob: 40a32eeab638a7a5327d47cbdddcf89a633ac9ee [file] [log] [blame]
Anatolij Gustschine0455a42018-12-01 10:47:20 +01001// 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>
Anatolij Gustschine0455a42018-12-01 10:47:20 +010011#include <video.h>
12
Heinrich Schuchardtced5d412022-02-11 18:11:05 +010013#define CSI "\x1b["
14
Simon Glassed38aef2020-05-10 11:40:03 -060015static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc,
Anatolij Gustschine0455a42018-12-01 10:47:20 +010016 char *const argv[])
17{
Heinrich Schuchardtced5d412022-02-11 18:11:05 +010018 __maybe_unused struct udevice *dev;
Anatolij Gustschine0455a42018-12-01 10:47:20 +010019
Heinrich Schuchardtced5d412022-02-11 18:11:05 +010020 /* Send clear screen and home */
21 printf(CSI "2J" CSI "1;1H");
Simon Glass06c1fd42023-02-05 15:44:28 -070022 if (IS_ENABLED(CONFIG_VIDEO) && !IS_ENABLED(CONFIG_VIDEO_ANSI)) {
Heinrich Schuchardt9c0486b2022-07-14 08:53:46 +020023 if (uclass_first_device_err(UCLASS_VIDEO, &dev))
24 return CMD_RET_FAILURE;
25 if (video_clear(dev))
26 return CMD_RET_FAILURE;
27 }
Anatolij Gustschine0455a42018-12-01 10:47:20 +010028 return CMD_RET_SUCCESS;
29}
30
31U_BOOT_CMD(cls, 1, 1, do_video_clear, "clear screen", "");