1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * video commands 4 * 5 * Copyright 2022 Google LLC 6 * Written by Simon Glass <sjg@chromium.org> 7 */ 8 9#include <common.h> 10#include <command.h> 11#include <dm.h> 12#include <video.h> 13#include <video_console.h> 14 15static int do_video_setcursor(struct cmd_tbl *cmdtp, int flag, int argc, 16 char *const argv[]) 17{ 18 unsigned int col, row; 19 struct udevice *dev; 20 21 if (argc != 3) 22 return CMD_RET_USAGE; 23 24 if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) 25 return CMD_RET_FAILURE; 26 col = dectoul(argv[1], NULL); 27 row = dectoul(argv[2], NULL); 28 vidconsole_position_cursor(dev, col, row); 29 30 return 0; 31} 32 33static int do_video_puts(struct cmd_tbl *cmdtp, int flag, int argc, 34 char *const argv[]) 35{ 36 struct udevice *dev; 37 int ret; 38 39 if (argc != 2) 40 return CMD_RET_USAGE; 41 42 if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) 43 return CMD_RET_FAILURE; 44 ret = vidconsole_put_string(dev, argv[1]); 45 if (!ret) 46 ret = video_sync(dev->parent, false); 47 48 return ret ? CMD_RET_FAILURE : 0; 49} 50 51U_BOOT_CMD( 52 setcurs, 3, 1, do_video_setcursor, 53 "set cursor position within screen", 54 " <col> <row> in character" 55); 56 57U_BOOT_CMD( 58 lcdputs, 2, 1, do_video_puts, 59 "print string on video framebuffer", 60 " <string>" 61); 62