1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Character LCD driver for Linux
5 * Copyright (C) 2000-2008, Willy Tarreau <w@1wt.eu>
6 * Copyright (C) 2016-2017 Glider bvba
10 const struct charlcd_ops
*ops
;
11 const unsigned char *char_conv
; /* Optional */
13 int ifwidth
; /* 4-bit or 8-bit (default) */
16 int bwidth
; /* Default set by charlcd_alloc() */
17 int hwidth
; /* Default set by charlcd_alloc() */
19 void *drvdata
; /* Set by charlcd_alloc() */
24 void (*write_cmd
)(struct charlcd
*lcd
, int cmd
);
25 void (*write_data
)(struct charlcd
*lcd
, int data
);
28 void (*write_cmd_raw4
)(struct charlcd
*lcd
, int cmd
); /* 4-bit only */
29 void (*clear_fast
)(struct charlcd
*lcd
);
30 void (*backlight
)(struct charlcd
*lcd
, int on
);
33 struct charlcd
*charlcd_alloc(unsigned int drvdata_size
);
34 void charlcd_free(struct charlcd
*lcd
);
36 int charlcd_register(struct charlcd
*lcd
);
37 int charlcd_unregister(struct charlcd
*lcd
);
39 void charlcd_poke(struct charlcd
*lcd
);