mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:24:31 +01:00
auxdisplay: charlcd: Add support for 4-bit interfaces
In 4-bit mode, 8-bit commands and data are written using two raw writes to the data interface: high nibble first, low nibble last. This must be handled by the low-level driver. However, as we don't know in which mode (4-bit or 8-bit) nor 4-bit phase the LCD was left, initialization must always be handled using raw writes, and needs to configure the LCD for 8-bit mode first. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
39f8ea4672
commit
ac201479cc
2 changed files with 32 additions and 6 deletions
|
|
@ -14,6 +14,7 @@ struct charlcd {
|
|||
const struct charlcd_ops *ops;
|
||||
const unsigned char *char_conv; /* Optional */
|
||||
|
||||
int ifwidth; /* 4-bit or 8-bit (default) */
|
||||
int height;
|
||||
int width;
|
||||
int bwidth; /* Default set by charlcd_alloc() */
|
||||
|
|
@ -28,6 +29,7 @@ struct charlcd_ops {
|
|||
void (*write_data)(struct charlcd *lcd, int data);
|
||||
|
||||
/* Optional */
|
||||
void (*write_cmd_raw4)(struct charlcd *lcd, int cmd); /* 4-bit only */
|
||||
void (*clear_fast)(struct charlcd *lcd);
|
||||
void (*backlight)(struct charlcd *lcd, int on);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue