video: Move the console commands to cmd/
Move these commands and the implementation to the cmd/ directory, which is where most commands are kept. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> [agust: keep vidconsole_position_cursor() in vidconsole uclass] Signed-off-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
		
							parent
							
								
									92fd6a1220
								
							
						
					
					
						commit
						f029f90e7d
					
				
							
								
								
									
										12
									
								
								cmd/Kconfig
								
								
								
								
							
							
						
						
									
										12
									
								
								cmd/Kconfig
								
								
								
								
							|  | @ -2161,6 +2161,18 @@ config CMD_UUID | ||||||
| 	  The two commands are very similar except for the endianness of the | 	  The two commands are very similar except for the endianness of the | ||||||
| 	  output. | 	  output. | ||||||
| 
 | 
 | ||||||
|  | config CMD_VIDCONSOLE | ||||||
|  | 	bool "lcdputs and setcurs" | ||||||
|  | 	depends on DM_VIDEO | ||||||
|  | 	default y | ||||||
|  | 	help | ||||||
|  | 	  Enabling this will provide 'setcurs' and 'lcdputs' commands which | ||||||
|  | 	  support cursor positioning and drawing strings on the video | ||||||
|  | 	  console (framebuffer). | ||||||
|  | 
 | ||||||
|  | 	  The name 'lcdputs' is a bit of a misnomer, but so named because the | ||||||
|  | 	  video device is often an LCD. | ||||||
|  | 
 | ||||||
| endmenu | endmenu | ||||||
| 
 | 
 | ||||||
| source "cmd/ti/Kconfig" | source "cmd/ti/Kconfig" | ||||||
|  |  | ||||||
|  | @ -178,6 +178,8 @@ obj-$(CONFIG_CMD_WDT) += wdt.o | ||||||
| obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o | obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o | ||||||
| obj-$(CONFIG_CMD_UFS) += ufs.o | obj-$(CONFIG_CMD_UFS) += ufs.o | ||||||
| obj-$(CONFIG_CMD_USB) += usb.o disk.o | obj-$(CONFIG_CMD_USB) += usb.o disk.o | ||||||
|  | obj-$(CONFIG_CMD_VIDCONSOLE) += video.o | ||||||
|  | 
 | ||||||
| obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o | obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o | ||||||
| obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o | obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,61 @@ | ||||||
|  | // SPDX-License-Identifier: GPL-2.0+
 | ||||||
|  | /*
 | ||||||
|  |  * video commands | ||||||
|  |  * | ||||||
|  |  * Copyright 2022 Google LLC | ||||||
|  |  * Written by Simon Glass <sjg@chromium.org> | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include <common.h> | ||||||
|  | #include <command.h> | ||||||
|  | #include <dm.h> | ||||||
|  | #include <video.h> | ||||||
|  | #include <video_console.h> | ||||||
|  | 
 | ||||||
|  | static int do_video_setcursor(struct cmd_tbl *cmdtp, int flag, int argc, | ||||||
|  | 			      char *const argv[]) | ||||||
|  | { | ||||||
|  | 	unsigned int col, row; | ||||||
|  | 	struct udevice *dev; | ||||||
|  | 
 | ||||||
|  | 	if (argc != 3) | ||||||
|  | 		return CMD_RET_USAGE; | ||||||
|  | 
 | ||||||
|  | 	if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) | ||||||
|  | 		return CMD_RET_FAILURE; | ||||||
|  | 	col = dectoul(argv[1], NULL); | ||||||
|  | 	row = dectoul(argv[2], NULL); | ||||||
|  | 	vidconsole_position_cursor(dev, col, row); | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static int do_video_puts(struct cmd_tbl *cmdtp, int flag, int argc, | ||||||
|  | 			 char *const argv[]) | ||||||
|  | { | ||||||
|  | 	struct udevice *dev; | ||||||
|  | 	int ret; | ||||||
|  | 
 | ||||||
|  | 	if (argc != 2) | ||||||
|  | 		return CMD_RET_USAGE; | ||||||
|  | 
 | ||||||
|  | 	if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) | ||||||
|  | 		return CMD_RET_FAILURE; | ||||||
|  | 	ret = vidconsole_put_string(dev, argv[1]); | ||||||
|  | 	if (!ret) | ||||||
|  | 		ret = video_sync(dev->parent, false); | ||||||
|  | 
 | ||||||
|  | 	return ret ? CMD_RET_FAILURE : 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | U_BOOT_CMD( | ||||||
|  | 	setcurs, 3,	1,	do_video_setcursor, | ||||||
|  | 	"set cursor position within screen", | ||||||
|  | 	"    <col> <row> in character" | ||||||
|  | ); | ||||||
|  | 
 | ||||||
|  | U_BOOT_CMD( | ||||||
|  | 	lcdputs, 2,	1,	do_video_puts, | ||||||
|  | 	"print string on video framebuffer", | ||||||
|  | 	"    <string>" | ||||||
|  | ); | ||||||
|  | @ -85,14 +85,6 @@ config BACKLIGHT_GPIO | ||||||
| 	  it understands the standard device tree | 	  it understands the standard device tree | ||||||
| 	  (leds/backlight/gpio-backlight.txt) | 	  (leds/backlight/gpio-backlight.txt) | ||||||
| 
 | 
 | ||||||
| config CMD_VIDCONSOLE |  | ||||||
| 	bool "Enable vidconsole commands lcdputs and setcurs" |  | ||||||
| 	depends on DM_VIDEO |  | ||||||
| 	default y |  | ||||||
| 	help |  | ||||||
| 	  Enabling this will provide 'setcurs' and 'lcdputs' commands which |  | ||||||
| 	  support cursor positioning and drawing strings on video framebuffer. |  | ||||||
| 
 |  | ||||||
| config VIDEO_BPP8 | config VIDEO_BPP8 | ||||||
| 	bool "Support 8-bit-per-pixel displays" | 	bool "Support 8-bit-per-pixel displays" | ||||||
| 	depends on DM_VIDEO | 	depends on DM_VIDEO | ||||||
|  |  | ||||||
|  | @ -617,7 +617,6 @@ int vidconsole_memmove(struct udevice *dev, void *dst, const void *src, | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if CONFIG_IS_ENABLED(CMD_VIDCONSOLE) |  | ||||||
| void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row) | void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row) | ||||||
| { | { | ||||||
| 	struct vidconsole_priv *priv = dev_get_uclass_priv(dev); | 	struct vidconsole_priv *priv = dev_get_uclass_priv(dev); | ||||||
|  | @ -629,52 +628,3 @@ void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row) | ||||||
| 	y = min_t(short, row * priv->y_charsize, vid_priv->ysize - 1); | 	y = min_t(short, row * priv->y_charsize, vid_priv->ysize - 1); | ||||||
| 	vidconsole_set_cursor_pos(dev, x, y); | 	vidconsole_set_cursor_pos(dev, x, y); | ||||||
| } | } | ||||||
| 
 |  | ||||||
| static int do_video_setcursor(struct cmd_tbl *cmdtp, int flag, int argc, |  | ||||||
| 			      char *const argv[]) |  | ||||||
| { |  | ||||||
| 	unsigned int col, row; |  | ||||||
| 	struct udevice *dev; |  | ||||||
| 
 |  | ||||||
| 	if (argc != 3) |  | ||||||
| 		return CMD_RET_USAGE; |  | ||||||
| 
 |  | ||||||
| 	if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) |  | ||||||
| 		return CMD_RET_FAILURE; |  | ||||||
| 	col = dectoul(argv[1], NULL); |  | ||||||
| 	row = dectoul(argv[2], NULL); |  | ||||||
| 	vidconsole_position_cursor(dev, col, row); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static int do_video_puts(struct cmd_tbl *cmdtp, int flag, int argc, |  | ||||||
| 			 char *const argv[]) |  | ||||||
| { |  | ||||||
| 	struct udevice *dev; |  | ||||||
| 	int ret; |  | ||||||
| 
 |  | ||||||
| 	if (argc != 2) |  | ||||||
| 		return CMD_RET_USAGE; |  | ||||||
| 
 |  | ||||||
| 	if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) |  | ||||||
| 		return CMD_RET_FAILURE; |  | ||||||
| 	ret = vidconsole_put_string(dev, argv[1]); |  | ||||||
| 	if (!ret) |  | ||||||
| 		ret = video_sync(dev->parent, false); |  | ||||||
| 
 |  | ||||||
| 	return ret ? CMD_RET_FAILURE : 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| U_BOOT_CMD( |  | ||||||
| 	setcurs, 3,	1,	do_video_setcursor, |  | ||||||
| 	"set cursor position within screen", |  | ||||||
| 	"    <col> <row> in character" |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| U_BOOT_CMD( |  | ||||||
| 	lcdputs, 2,	1,	do_video_puts, |  | ||||||
| 	"print string on video framebuffer", |  | ||||||
| 	"    <string>" |  | ||||||
| ); |  | ||||||
| #endif /* CONFIG_IS_ENABLED(CMD_VIDCONSOLE) */ |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue