xref: /linux/drivers/auxdisplay/hd44780_common.h (revision 01ec46dfa633a52ccfe38d4a194460d6adb2ba00)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #define DEFAULT_LCD_BWIDTH      40
4 #define DEFAULT_LCD_HWIDTH      64
5 
6 struct hd44780_common {
7 	int ifwidth;			/* 4-bit or 8-bit (default) */
8 	int bwidth;			/* Default set by hd44780_alloc() */
9 	int hwidth;			/* Default set by hd44780_alloc() */
10 	unsigned long hd44780_common_flags;
11 	void (*write_data)(struct hd44780_common *hdc, int data);
12 	void (*write_cmd)(struct hd44780_common *hdc, int cmd);
13 	/* write_cmd_raw4 is for 4-bit connected displays only */
14 	void (*write_cmd_raw4)(struct hd44780_common *hdc, int cmd);
15 	void *hd44780;
16 };
17 
18 int hd44780_common_print(struct charlcd *lcd, int c);
19 int hd44780_common_gotoxy(struct charlcd *lcd);
20 int hd44780_common_home(struct charlcd *lcd);
21 int hd44780_common_clear_display(struct charlcd *lcd);
22 int hd44780_common_init_display(struct charlcd *lcd);
23 struct hd44780_common *hd44780_common_alloc(void);
24