summaryrefslogtreecommitdiff
path: root/cmd/font.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-10-30 17:16:35 -0400
committerTom Rini <trini@konsulko.com>2022-10-30 17:16:35 -0400
commit218e2c45af83f2cb7b1374b9023b4ced6eb0bb77 (patch)
treee78dcbb902ebca32f6048b74e67414419dc4edab /cmd/font.c
parent6f02819cceb19c334f1dbd6eccefb4ccfae319f9 (diff)
parentb86986c7b314f1378ca5be8df49310a6ce7302f8 (diff)
Merge tag 'video-20221030' of https://source.denx.de/u-boot/custodians/u-boot-video
- fix [hv]sync active vs back porch in dw_mipi_dsi - simplefb rotation support - support splash as raw image from MMC - enhancements to Truetype console (multiple fonts and sizes) - drop old LCD support
Diffstat (limited to 'cmd/font.c')
-rw-r--r--cmd/font.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/cmd/font.c b/cmd/font.c
new file mode 100644
index 00000000000..3e522f3aaa1
--- /dev/null
+++ b/cmd/font.c
@@ -0,0 +1,81 @@
+// 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_font_list(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ vidconsole_list_fonts();
+
+ return 0;
+}
+
+static int do_font_select(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ struct udevice *dev;
+ const char *name;
+ uint size = 0;
+ int ret;
+
+ if (argc < 2)
+ return CMD_RET_USAGE;
+
+ if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
+ return CMD_RET_FAILURE;
+ name = argv[1];
+ if (argc == 3)
+ size = dectoul(argv[2], NULL);
+ ret = vidconsole_select_font(dev, name, size);
+ if (ret) {
+ printf("Failed (error %d)\n", ret);
+ return CMD_RET_FAILURE;
+ }
+
+ return 0;
+}
+static int do_font_size(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ struct udevice *dev;
+ uint size;
+ int ret;
+
+ if (argc != 2)
+ return CMD_RET_USAGE;
+
+ if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
+ return CMD_RET_FAILURE;
+
+ size = dectoul(argv[1], NULL);
+ ret = vidconsole_select_font(dev, NULL, size);
+ if (ret) {
+ printf("Failed (error %d)\n", ret);
+ return CMD_RET_FAILURE;
+ }
+
+ return 0;
+}
+
+
+#ifdef CONFIG_SYS_LONGHELP
+static char font_help_text[] =
+ "list - list available fonts\n"
+ "font select <name> [<size>] - select font to use\n"
+ "font size <size> - select font size to";
+#endif
+
+U_BOOT_CMD_WITH_SUBCMDS(font, "Fonts", font_help_text,
+ U_BOOT_SUBCMD_MKENT(list, 1, 1, do_font_list),
+ U_BOOT_SUBCMD_MKENT(select, 3, 1, do_font_select),
+ U_BOOT_SUBCMD_MKENT(size, 2, 1, do_font_size));