Hi all, The Holtek HT16K33 LED controller is not only used for driving dot-matrix displays, but also for driving segment displays. The current auxdisplay driver is limited to dot-matrix displays, which are exposed as a frame buffer device. This patch series extends the driver to 4-digit 7-segment and quad 14-segment alphanumeric displays, allowing the user to display and scroll text messages. List of patches: - Patch 1 provides font data for displaying ASCII characters on 14-segment displays, - Patch 2 updates the HT16K33 DT bindings for segment displays, - Patches 3-5 contain a bug fix and small improvements for the Imagination Technologies ASCII LCD Display driver, - Patch 6 extracts the character line display core support from the Imagination Technologies ASCII LCD Display driver, for reuse, - Patches 7-8 contain cleanups and improvements for the character line display core driver, - Patches 9-15 contain cleanups and improvements for the HT16K33 driver, to prepare for segment display support, - Patch 16 adds support for 7/14-segment displays to the HT16K33 driver, - Patch 17 adds segment display LED support to the HT16K33 driver, to make use of hardware blinking, and to expose display color. This series has been tested using an Adafruit 0.54" Quad Alphanumeric Red FeatherWing Display, plugged into an OrangeCrab ECP5-based FPGA board running linux-on-litex-vexriscv. 7-segment display support is based purely on schematics, and has not been tested on actual hardware. The changes to img-ascii-lcd.c are also untested, due to lack of hardware. Thanks for your comments! Geert Uytterhoeven (17): uapi: Add <linux/map_to_14segment.h> dt-bindings: auxdisplay: ht16k33: Document Adafruit segment displays auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string auxdisplay: img-ascii-lcd: Add helper variable dev auxdisplay: img-ascii-lcd: Convert device attribute to sysfs_emit() auxdisplay: Extract character line display core support auxdisplay: linedisp: Use kmemdup_nul() helper auxdisplay: linedisp: Add support for changing scroll rate auxdisplay: ht16k33: Use HT16K33_FB_SIZE in ht16k33_initialize() auxdisplay: ht16k33: Remove unneeded error check in keypad probe() auxdisplay: ht16k33: Convert to simple i2c probe function auxdisplay: ht16k33: Add helper variable dev auxdisplay: ht16k33: Move delayed work auxdisplay: ht16k33: Extract ht16k33_brightness_set() auxdisplay: ht16k33: Extract frame buffer probing auxdisplay: ht16k33: Add support for segment displays auxdisplay: ht16k33: Add segment display LED support .../bindings/auxdisplay/holtek,ht16k33.yaml | 22 +- drivers/auxdisplay/Kconfig | 8 + drivers/auxdisplay/Makefile | 1 + drivers/auxdisplay/ht16k33.c | 451 ++++++++++++++---- drivers/auxdisplay/img-ascii-lcd.c | 199 +------- drivers/auxdisplay/line-display.c | 261 ++++++++++ drivers/auxdisplay/line-display.h | 43 ++ include/uapi/linux/map_to_14segment.h | 240 ++++++++++ 8 files changed, 961 insertions(+), 264 deletions(-) create mode 100644 drivers/auxdisplay/line-display.c create mode 100644 drivers/auxdisplay/line-display.h create mode 100644 include/uapi/linux/map_to_14segment.h -- 2.25.1 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds