All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Reaver <me@davidreaver.com>
To: Hugo Villeneuve <hugo@hugovil.com>
Cc: Miguel Ojeda <ojeda@kernel.org>,
	Hugo Villeneuve <hvilleneuve@dimonoff.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Willy Tarreau <w@1wt.eu>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] auxdisplay: hd44780: move cursor home after clear display command
Date: Wed, 26 Jul 2023 08:12:41 -0700	[thread overview]
Message-ID: <867cqm900q.fsf@davidreaver.com> (raw)
In-Reply-To: <20230722180925.1408885-1-hugo@hugovil.com>


Hugo Villeneuve <hugo@hugovil.com> writes:

> From: Hugo Villeneuve <hvilleneuve@dimonoff.com>
>
> The DISPLAY_CLEAR command on the NewHaven NHD-0220DZW-AG5 display
> does NOT change the DDRAM address to 00h (home position) like the
> standard Hitachi HD44780 controller. As a consequence, the starting
> position of the initial string LCD_INIT_TEXT is not guaranteed to be
> at 0,0 depending on where the cursor was before the DISPLAY_CLEAR
> command.
>
> Extract of DISPLAY_CLEAR command from datasheets of:
>
>     Hitachi HD44780:
>         ... It then sets DDRAM address 0 into the address counter...
>
>     NewHaven NHD-0220DZW-AG5 datasheet:
> 	... This instruction does not change the DDRAM Address
>
> Move the cursor home after sending DISPLAY_CLEAR command to support
> non-standard LCDs.
>
> Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> ---
>  drivers/auxdisplay/hd44780_common.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/auxdisplay/hd44780_common.c b/drivers/auxdisplay/hd44780_common.c
> index 3934c2eebf33..7cbf375b0fa5 100644
> --- a/drivers/auxdisplay/hd44780_common.c
> +++ b/drivers/auxdisplay/hd44780_common.c
> @@ -82,7 +82,15 @@ int hd44780_common_clear_display(struct charlcd *lcd)
>  	hdc->write_cmd(hdc, LCD_CMD_DISPLAY_CLEAR);
>  	/* datasheet says to wait 1,64 milliseconds */
>  	long_sleep(2);
> -	return 0;
> +
> +	/*
> +	 * The Hitachi HD44780 controller (and compatible ones) reset the DDRAM
> +	 * address when executing the DISPLAY_CLEAR command, thus the
> +	 * following call is not required. However, other controllers do not
> +	 * (e.g. NewHaven NHD-0220DZW-AG5), thus move the cursor to home
> +	 * unconditionally to support both.
> +	 */
> +	return hd44780_common_home(lcd);
>  }
>  EXPORT_SYMBOL_GPL(hd44780_common_clear_display);
>
>
> base-commit: d192f5382581d972c4ae1b4d72e0b59b34cadeb9

I tested this on a 16x2 HD44780 on my BeagleBone Black with:

    $ printf '\f' > /dev/lcd
    $ printf 'Hello\nWorld!\n' > /dev/lcd
    $ printf '\x1b[LR' > /dev/lcd
    $ printf '\x1b[LR' > /dev/lcd
    $ printf '\x1b[LR' > /dev/lcd
    $ printf '\f' > /dev/lcd
    $ printf 'Goodbye\nWorld!\n' > /dev/lcd

As expected, "Goodbye World!" was correctly placed left-aligned on the
display, split over both lines.

Tested-by: David Reaver <me@davidreaver.com>

  parent reply	other threads:[~2023-07-26 15:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-22 18:09 [PATCH v2] auxdisplay: hd44780: move cursor home after clear display command Hugo Villeneuve
2023-07-24 16:08 ` Geert Uytterhoeven
2023-07-25 15:13   ` Hugo Villeneuve
2023-07-25 15:21     ` Geert Uytterhoeven
2023-07-25 15:36       ` Willy Tarreau
2023-07-25 15:58         ` Geert Uytterhoeven
2023-07-25 16:42           ` Willy Tarreau
2023-07-26 15:12 ` David Reaver [this message]
2023-08-19 19:58 ` Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=867cqm900q.fsf@davidreaver.com \
    --to=me@davidreaver.com \
    --cc=geert@linux-m68k.org \
    --cc=hugo@hugovil.com \
    --cc=hvilleneuve@dimonoff.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ojeda@kernel.org \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.