Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3498968pxf; Mon, 22 Mar 2021 07:50:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJykQYeczwDqk4LESY4c2Bw/6VwpnCOf8i7v2v6QzTxjoej18bBtiwlLAMuN2dDocu4YqFeT X-Received: by 2002:a17:906:684b:: with SMTP id a11mr86573ejs.329.1616424637505; Mon, 22 Mar 2021 07:50:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616424637; cv=none; d=google.com; s=arc-20160816; b=eHWxZb+qnKDFUG3C/BqOwH7Li3nXmjxFyMLYw4Jg2ajHnarLm2f9bx+50tjdZoQ/nJ qaqesoI1EaPQ7FRDnQWLJ6jNqSk2XWxWG2jLrbTUU4C6php2mvvsjHh3CzVUUFLGHLr+ cwO6vcoQ7l3fZDooKW2mGsAzt35551HZYQNcSgfxqKgqm3mR0Y1cLl2NDCca2V8yns0Q M9bPQey+ijbvX2Rm9aU8v9o6COxhZiRT8BtLIN4YuAHd1FQ8mr+cUAfQYBX1rW4o2oGn JuHYDu8HXM7wR5JWE5p/K6t/jKoDxC6uxVkktP+PyKqcaT4OGNId6np069px74puUUgi V38g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=LJ3O0gX2w5OqpzFXk+mGEFEG8cmdYQjlz4aw9pBrB3A=; b=Y7FvnD5/TuY8hQ3qXQ9coQsDXm2prWKYz5oVmEiUNk57NNvXD/IZ9fxtb1+z9/CtMX Ovpyp8K9KFW2WOMbFK9YOwSZnR2CA4OhugNHdUIrRA88wT5rcHpcPa3TuIIPKcPB13pq oB3pRj9hrkibWhfO0kAo4zAtORQsClad+hFWZVuq+1xc2sdYJ3Z64havP7BmRvZ5BFY8 0jLemiBHwe7DV1T6037HyATyjlAclY4uZqzVHr8mn2GgDsowH7wvHiOeXkrJ3Lztd6BS U30qNp2Qh/vvclcKDZZXQbDI9p9TGwm46A32rYKk2zTJD5gGCPqS2rm0apOvBcqnm2DS PGtw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r15si11573217edq.306.2021.03.22.07.50.14; Mon, 22 Mar 2021 07:50:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230448AbhCVOtV (ORCPT + 99 others); Mon, 22 Mar 2021 10:49:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229547AbhCVOsz (ORCPT ); Mon, 22 Mar 2021 10:48:55 -0400 Received: from laurent.telenet-ops.be (laurent.telenet-ops.be [IPv6:2a02:1800:110:4::f00:19]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D0F0C061574 for ; Mon, 22 Mar 2021 07:48:54 -0700 (PDT) Received: from ramsan.of.borg ([IPv6:2a02:1810:ac12:ed20:250b:f16c:c5e2:505d]) by laurent.telenet-ops.be with bizsmtp id jSos2400M2HDxaV01Sosfq; Mon, 22 Mar 2021 15:48:52 +0100 Received: from rox.of.borg ([192.168.97.57]) by ramsan.of.borg with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1lOLrQ-009ZW8-5x; Mon, 22 Mar 2021 15:48:52 +0100 Received: from geert by rox.of.borg with local (Exim 4.93) (envelope-from ) id 1lOLrP-004T5Y-BW; Mon, 22 Mar 2021 15:48:51 +0100 From: Geert Uytterhoeven To: Robin van der Gracht , Rob Herring , Miguel Ojeda , Paul Burton , Greg Kroah-Hartman Cc: devicetree@vger.kernel.org, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH 00/17] auxdisplay: ht16k33: Add character display support Date: Mon, 22 Mar 2021 15:48:31 +0100 Message-Id: <20210322144848.1065067-1-geert@linux-m68k.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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@linux-m68k.org 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