blob: d0119fca3862208356a7a2d6d05f26c221972441 [file] [log] [blame]
Brian Murphy1f21d2b2007-08-21 22:34:16 +02001/*
2 * Picvue PVC160206 display driver
3 *
4 * Brian Murphy <brian.murphy@eicon.com>
5 *
6 */
Brian Murphy1f21d2b2007-08-21 22:34:16 +02007struct pvc_defs {
8 volatile u32 *reg;
9 u32 data_shift;
10 u32 data_mask;
11 u32 e;
12 u32 rw;
13 u32 rs;
14};
15
16extern struct pvc_defs *picvue;
17
18#define PVC_NLINES 2
19#define PVC_DISPMEM 80
20#define PVC_LINELEN PVC_DISPMEM / PVC_NLINES
21#define PVC_VISIBLE_CHARS 16
22
23void pvc_write_string(const unsigned char *str, u8 addr, int line);
24void pvc_write_string_centered(const unsigned char *str, int line);
25void pvc_dump_string(const unsigned char *str);
26
27#define BM_SIZE 8
28#define MAX_PROGRAMMABLE_CHARS 8
29int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE]);
30
31void pvc_dispcnt(u8 cmd);
Ralf Baechle70342282013-01-22 12:59:30 +010032#define DISP_OFF 0
33#define DISP_ON (1 << 2)
34#define CUR_ON (1 << 1)
35#define CUR_BLINK (1 << 0)
Brian Murphy1f21d2b2007-08-21 22:34:16 +020036
37void pvc_move(u8 cmd);
Ralf Baechle70342282013-01-22 12:59:30 +010038#define DISPLAY (1 << 3)
39#define CURSOR 0
40#define RIGHT (1 << 2)
41#define LEFT 0
Brian Murphy1f21d2b2007-08-21 22:34:16 +020042
43void pvc_clear(void);
44void pvc_home(void);