Re: [PATCH] auxdisplay: hd44780: move cursor home after clear display command

From: Hugo Villeneuve
Date: Thu Jul 06 2023 - 15:49:48 EST


On Thu, 6 Jul 2023 21:33:05 +0200
Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx> wrote:

> On Thu, Jul 6, 2023 at 8:51 PM Hugo Villeneuve <hugo@xxxxxxxxxxx> wrote:
> >
> > The "clear display" 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 clear display
> > command.
> >
> > Extract of CLEAR_DISPLAY 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 clear display command to support
> > non-standard LCDs.
> >
> > Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>
>
> Thanks! Sounds good to me, as long the extra command does not
> introduce some issue with the actual HD44780 -- can we double-check
> the HD44780 still works as expected?
>
> Cc'ing Lars and Geert since they may be able to give it a quick test.

Hi Miguel,
I do not have a standard Hitachi controller to test it on, so lets wait
for feedback from Lars and Geert or others.

> > + /*
> > + * Some LCDs (ex: NewHaven) do not reset the DDRAM address when
> > + * executing the CLEAR_DISPLAY command. Explicitely move cursor
> > + * to home position to account for these non-standard LCDs:
> > + */
> > + return hd44780_common_home(lcd);
>
> Few nits:
>
> - Explicitely -> Explicitly.
> - Isn't the command `DISPLAY_CLEAR` instead of `CLEAR_DISPLAY`? (at
> least the identifier above is `LCD_CMD_DISPLAY_CLEAR`).

Yes, I have also modified the commit log message to be consistent with
the code.

> - `:` -> `.`.
> What about something like:
>
> 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.

Ok, changed comments to that.

Thank you,
Hugo.