linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/25] Make charlcd device independent
@ 2020-10-29  9:52 poeschel
  2020-10-29  9:52 ` [PATCH v5 01/25] auxdisplay: Use an enum for charlcd backlight on/off ops poeschel
                   ` (3 more replies)
  0 siblings, 4 replies; 30+ messages in thread
From: poeschel @ 2020-10-29  9:52 UTC (permalink / raw)
  To: Miguel Ojeda Sandonis, Willy Tarreau, Ksenija Stanojevic, linux-kernel
  Cc: Lars Poeschel

From: Lars Poeschel <poeschel@lemonage.de>

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 for a modtronix lcd displau  with the last patch.
I submitted this already some time ago, where the wish was so split
this into smaller chunks what I try to do with this patchset.

This is v5 of the patchset. I address a few review comments with this.
I fixed some typos, but more importantly Miguel spotted that I reverted
commit 3f03b6498 ("auxdisplay: charlcd: Reuse hex_to_bin() instead of
custom code") during rebasing. This is corrected now.

As a note to patch 23:
This might slightly change behaviour.
On hd44780 displays with one or two lines the previous implementation
did still write characters to the buffer of the display even if they are
currently not visible. The shift_display command could be used so set
the "viewing window" to a new position in the buffer and then you could
see the characters previously written.
This described behaviour does not work for hd44780 displays with more
than two display lines. There simply is not enough buffer.
So the behaviour was a bit inconsistens across different displays.
The new behaviour is to stop writing character at the end of a visible
line, even if there would be room in the buffer. This allows us to have
an easy implementation, that should behave equal on all supported
displays. This is not hd44780 hardware dependent anymore.

Link: https://lore.kernel.org/lkml/20191016082430.5955-1-poeschel@lemonage.de/
Link: https://lore.kernel.org/lkml/CANiq72kS-u_Xd_m+2CQVh-JCncPf1XNXrXAZ=4z+mze8fwv2kw@mail.gmail.com/

Changes in v5:
- patch 1: Fix a commit message typo: of -> on
- patch 2: Remove some unnecessary newlines
- patch 8: Fix some typos
- patch 14: Fix commit message typo: it's -> its
- patch 15: this patch is squashed together from the former individual
  hd44780_common_ function patches
- patch 16: combined two cleanup patches
- patch 17: I did previously undo commit 3f03b6498 which was a mistake.
  This is now corrected.
- patch 24: Picked up Robs Reviewed-by
- patch 25: use hex_to_bin like in commit 3f03b6498 but for the lcd2s.c
  file

Changes in v4:
- modtronix -> Modtronix in new lcd2s driver
- Kconfig: remove "default n" in new lcd2s driver

Changes in v3:
- Fix some typos in Kconfig stuff
- Fix kernel test robot reported error: Missed EXPORT_SYMBOL_GPL
- new patch to reduce display timeout
- better patch description to why not move cursor beyond end of a line
- Fixed make dt_binding_doc errors

Changes in v2:
- split whole patch into many smaller chunks
- device tree doc in yaml

Lars Poeschel (25):
  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 various hd44780_common_ functions
  auxdisplay: cleanup unnecessary hd44780 code in charlcd
  auxdisplay: Move char redefine code to hd44780_common
  auxdisplay: Call charlcd_backlight in place
  auxdisplay: hd44780_common: Reduce clear_display timeout
  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  |  58 +++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 drivers/auxdisplay/Kconfig                    |  30 ++
 drivers/auxdisplay/Makefile                   |   2 +
 drivers/auxdisplay/charlcd.c                  | 412 +++++-------------
 drivers/auxdisplay/charlcd.h                  |  86 +++-
 drivers/auxdisplay/hd44780.c                  | 120 +++--
 drivers/auxdisplay/hd44780_common.c           | 361 +++++++++++++++
 drivers/auxdisplay/hd44780_common.h           |  33 ++
 drivers/auxdisplay/lcd2s.c                    | 403 +++++++++++++++++
 drivers/auxdisplay/panel.c                    | 180 ++++----
 11 files changed, 1237 insertions(+), 450 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


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2020-11-03  8:46 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-29  9:52 [PATCH 00/25] Make charlcd device independent poeschel
2020-10-29  9:52 ` [PATCH v5 01/25] auxdisplay: Use an enum for charlcd backlight on/off ops poeschel
2020-10-29  9:57 ` [PATCH v5 02/25] auxdisplay: Introduce hd44780_common.[ch] poeschel
2020-10-29  9:57   ` [PATCH v5 03/25] auxdisplay: Move hwidth and bwidth to struct hd44780_common poeschel
2020-10-29  9:57   ` [PATCH v5 04/25] auxdisplay: Move ifwidth " poeschel
2020-10-29  9:57   ` [PATCH v5 05/25] auxdisplay: Move write_data pointer to hd44780_common poeschel
2020-10-29  9:57   ` [PATCH v5 06/25] auxdisplay: Move write_cmd pointers to hd44780 drivers poeschel
2020-10-29  9:57   ` [PATCH v5 07/25] auxdisplay: Move addr out of charlcd_priv poeschel
2020-10-29  9:57   ` [PATCH v5 08/25] auxdisplay: hd44780_common_print poeschel
2020-10-29  9:57   ` [PATCH v5 09/25] auxdisplay: provide hd44780_common_gotoxy poeschel
2020-10-29  9:57   ` [PATCH v5 10/25] auxdisplay: add home to charlcd_ops poeschel
2020-10-29  9:57   ` [PATCH v5 11/25] auxdisplay: Move clear_display to hd44780_common poeschel
2020-10-29  9:57   ` [PATCH v5 12/25] auxdisplay: make charlcd_backlight visible " poeschel
2020-10-29  9:57   ` [PATCH v5 13/25] auxdisplay: Make use of enum for backlight on / off poeschel
2020-10-29  9:57   ` [PATCH v5 14/25] auxdisplay: Move init_display to hd44780_common poeschel
2020-10-29  9:57   ` [PATCH v5 15/25] auxdisplay: implement various hd44780_common_ functions poeschel
2020-10-29  9:57   ` [PATCH v5 16/25] auxdisplay: cleanup unnecessary hd44780 code in charlcd poeschel
2020-10-29  9:57   ` [PATCH v5 17/25] auxdisplay: Move char redefine code to hd44780_common poeschel
2020-10-29  9:57   ` [PATCH v5 18/25] auxdisplay: Call charlcd_backlight in place poeschel
2020-10-29  9:57   ` [PATCH v5 19/25] auxdisplay: hd44780_common: Reduce clear_display timeout poeschel
2020-10-29  9:57   ` [PATCH v5 20/25] auxdisplay: hd44780: Remove clear_fast poeschel
2020-10-29  9:57   ` [PATCH v5 21/25] auxdisplay: charlcd: replace last device specific stuff poeschel
2020-10-29  9:57   ` [PATCH v5 22/25] auxdisplay: Change gotoxy calling interface poeschel
2020-10-29  9:57   ` [PATCH v5 23/25] auxdisplay: charlcd: Do not print chars at end of line poeschel
2020-10-31  9:18     ` Miguel Ojeda
2020-10-31  9:26   ` [PATCH v5 02/25] auxdisplay: Introduce hd44780_common.[ch] Miguel Ojeda
2020-11-03  8:46     ` Lars Poeschel
2020-10-29 10:01 ` [PATCH v5 24/25] auxdisplay: lcd2s DT binding doc poeschel
2020-10-29 10:01   ` [PATCH v5 25/25] auxdisplay: add a driver for lcd2s character display poeschel
2020-10-31  9:30 ` [PATCH 00/25] Make charlcd device independent Miguel Ojeda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).