blob: ba36220d9e1f9ebf814524b2ddeb1e38d725dd6f [file] [log] [blame]
Anatolij Gustschin4e92e602018-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 Gustschin4e92e602018-12-01 10:47:20 +010011#include <video.h>
12
Heinrich Schuchardtbfaa51d2022-02-11 18:11:05 +010013#define CSI "\x1b["
14
Simon Glass09140112020-05-10 11:40:03 -060015static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc,
Anatolij Gustschin4e92e602018-12-01 10:47:20 +010016 char *const argv[])
17{
Heinrich Schuchardtbfaa51d2022-02-11 18:11:05 +010018 __maybe_unused struct udevice *dev;
Anatolij Gustschin4e92e602018-12-01 10:47:20 +010019
Heinrich Schuchardtbfaa51d2022-02-11 18:11:05 +010020 /* Send clear screen and home */
21 printf(CSI "2J" CSI "1;1H");
Heinrich Schuchardt63de2162022-07-14 08:53:46 +020022 if (CONFIG_IS_ENABLED(DM_VIDEO) && !CONFIG_IS_ENABLED(VIDEO_ANSI)) {
23 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 Gustschin4e92e602018-12-01 10:47:20 +010028 return CMD_RET_SUCCESS;
29}
30
31U_BOOT_CMD(cls, 1, 1, do_video_clear, "clear screen", "");