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
13 const struct charlcd_ops
*ops
;
14 const unsigned char *char_conv
; /* Optional */
16 int ifwidth
; /* 4-bit or 8-bit (default) */
19 int bwidth
; /* Default set by charlcd_alloc() */
20 int hwidth
; /* Default set by charlcd_alloc() */
22 void *drvdata
; /* Set by charlcd_alloc() */
27 void (*write_cmd
)(struct charlcd
*lcd
, int cmd
);
28 void (*write_data
)(struct charlcd
*lcd
, int data
);
31 void (*write_cmd_raw4
)(struct charlcd
*lcd
, int cmd
); /* 4-bit only */
32 void (*clear_fast
)(struct charlcd
*lcd
);
33 void (*backlight
)(struct charlcd
*lcd
, int on
);
36 struct charlcd
*charlcd_alloc(unsigned int drvdata_size
);
37 void charlcd_free(struct charlcd
*lcd
);
39 int charlcd_register(struct charlcd
*lcd
);
40 int charlcd_unregister(struct charlcd
*lcd
);
42 void charlcd_poke(struct charlcd
*lcd
);
44 #endif /* CHARLCD_H */