[PATCH v2 00/33] Make charlcd device independent

From: poeschel
Date: Mon Sep 21 2020 - 10:47:39 EST


From: Lars Poeschel <poeschel@xxxxxxxxxxx>

This tries to make charlcd device independent. At the moment hd44780
device specific code is contained deep in charlcd. This moves this out
into a hd44780_common module, where the two hd44780 drivers we have at
the moment (hd44780 and panel) can use this from. The goal is that at
the end other drivers can use the charlcd interface.
I add one such driver at the end with the last patch.
I submitted this already some time ago [1], where the wish was so split
this into smaller chunks what I try to do with this new patchset.
Most of the patches pick one specific function in charlcd and move the
device specific code into hd44780_common.

[1] https://marc.info/?l=linux-kernel&m=157121432124507

Lars Poeschel (33):
auxdisplay: Use an enum for charlcd backlight on/off ops
auxdisplay: Introduce hd44780_common.[ch]
auxdisplay: Move hwidth and bwidth to struct hd44780_common
auxdisplay: Move ifwidth to struct hd44780_common
auxdisplay: Move write_data pointer to hd44780_common
auxdisplay: Move write_cmd pointers to hd44780 drivers
auxdisplay: Move addr out of charlcd_priv
auxdisplay: hd44780_common_print
auxdisplay: provide hd44780_common_gotoxy
auxdisplay: add home to charlcd_ops
auxdisplay: Move clear_display to hd44780_common
auxdisplay: make charlcd_backlight visible to hd44780_common
auxdisplay: Make use of enum for backlight on / off
auxdisplay: Move init_display to hd44780_common
auxdisplay: implement hd44780_common_shift_cursor
auxdisplay: Implement hd44780_common_display_shift
auxdisplay: Implement a hd44780_common_display
auxdisplay: Implement hd44780_common_cursor
auxdisplay: Implement hd44780_common_blink
auxdisplay: cleanup unnecessary hd44780 code in charlcd
auxdisplay: Implement hd44780_common_fontsize
auxdisplay: Implement hd44780_common_lines
auxdisplay: Remove unnecessary hd44780 from charlcd
auxdisplay: Move char redefine code to hd44780_common
auxdisplay: Call charlcd_backlight in place
auxdisplay: Move clear_fast to hd44780
auxdisplay: remove naive display clear impl
auxdisplay: hd44780: Remove clear_fast
auxdisplay: charlcd: replace last device specific stuff
auxdisplay: Change gotoxy calling interface
auxdisplay: charlcd: Do not print chars at end of line
auxdisplay: lcd2s DT binding doc
auxdisplay: add a driver for lcd2s character display

.../bindings/auxdisplay/modtronix,lcd2s.yaml | 55 +++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
drivers/auxdisplay/Kconfig | 31 ++
drivers/auxdisplay/Makefile | 2 +
drivers/auxdisplay/charlcd.c | 406 +++++------------
drivers/auxdisplay/charlcd.h | 86 +++-
drivers/auxdisplay/hd44780.c | 120 +++--
drivers/auxdisplay/hd44780_common.c | 367 ++++++++++++++++
drivers/auxdisplay/hd44780_common.h | 34 ++
drivers/auxdisplay/lcd2s.c | 409 ++++++++++++++++++
drivers/auxdisplay/panel.c | 125 ++++--
11 files changed, 1254 insertions(+), 383 deletions(-)
create mode 100644 Documentation/devicetree/bindings/auxdisplay/modtronix,lcd2s.yaml
create mode 100644 drivers/auxdisplay/hd44780_common.c
create mode 100644 drivers/auxdisplay/hd44780_common.h
create mode 100644 drivers/auxdisplay/lcd2s.c

--
2.28.0