1/*
2 * Picvue PVC160206 display driver
3 *
4 * Brian Murphy <brian.murphy@eicon.com>
5 *
6 */
7#include <asm/semaphore.h>
8
9struct pvc_defs {
10	volatile u32 *reg;
11	u32 data_shift;
12	u32 data_mask;
13	u32 e;
14	u32 rw;
15	u32 rs;
16};
17
18extern struct pvc_defs *picvue;
19
20#define PVC_NLINES		2
21#define PVC_DISPMEM		80
22#define PVC_LINELEN		PVC_DISPMEM / PVC_NLINES
23#define PVC_VISIBLE_CHARS	16
24
25void pvc_write_string(const unsigned char *str, u8 addr, int line);
26void pvc_write_string_centered(const unsigned char *str, int line);
27void pvc_dump_string(const unsigned char *str);
28
29#define BM_SIZE			8
30#define MAX_PROGRAMMABLE_CHARS	8
31int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE]);
32
33void pvc_dispcnt(u8 cmd);
34#define  DISP_OFF	0
35#define  DISP_ON	(1 << 2)
36#define  CUR_ON		(1 << 1)
37#define  CUR_BLINK	(1 << 0)
38
39void pvc_move(u8 cmd);
40#define  DISPLAY	(1 << 3)
41#define  CURSOR		0
42#define  RIGHT		(1 << 2)
43#define  LEFT		0
44
45void pvc_clear(void);
46void pvc_home(void);
47
48extern struct semaphore pvc_sem;
49